源码安装samba的详细过程。
题外话:去书城转了一圈,所有的linux书所讲解的都是rmp安装,或者最狗屁的yum在线安装。并且所有的linux书的目录大多相同。实乃天下文章一大抄。
此问题纠结我长达一个星期之久,我对linux的基本命令不算是完全掌握,个人认为单独的去学习枯燥的命令并没有很好的效果,在简单学习了一部分命令后就开始了samba的
源码安装 架设。期间碰到问题时在去解决,遇到不理解的命令再去查找。个人认为这种方式比较好些。
本篇内容的形成,也是参考了众多的资料修改润色而成,欢迎转载,但请切勿注明转自何处。
基于vmware构架的samba服务器。首先可以通过基于vmware的XP来确定你的本机和网络是否相通。
首先可以通过U盘将源文件copy至服务器,现在的linux都已经可以支持U盘的即插即用,mount挂载命令用处已经不大。
cp /media/disk
在这里可以发现U盘,可以将源文件拷出。不过似乎需要进入图形界面后才能认出。
这里采用的是samba-3.3.2.tar.gz,这里要注意,linux不要采用最新版的软件,最新版的samba目录下有source3
和source4两个文件夹,又都可以进行正常安装,在这里我用了两
三天的时间,硬着头皮去看全英文的readme.去看howto4.去看howto4.pdf.但是关于源码安装讲的也不是很详细。并且我只想能让samba能用,不想太过于去关注其它。所以最终决
定采用较低的版本。
这并不是一个最终完成版的安装过程,有的资料还没做最终整理,昨晚做到1点,今天终于做好了。
磨刀不误破柴工,如果不是vmware的centos运行如此之慢,也不至于如此。所以今晚剩余时间重新装一下centos。
好的,现在写安装过程。
1:tar -xzvf samba.tar.gz 解压文件。创建文件:tar -xcvf samba.tar.gz
2:cd samba 进入目录
3:find /var/samba -name configure 找configure文件在哪里。
4:cd source
5: ./configure && make && make install 解释:&&只有上一条命令顺利执行完成后才会执行下一条命令。
6:将/etc/ld.so.conf 中加入 /usr/local/samba/lib 然后运行 ldconfig, 源码安装需要手动挂载lib库。在这里许多人栽了跟斗。
7:/usr/local/samba/sbin/smbd -D /usr/local/samba/sbin/nmbd
-D 启动samba服务。
8:#ps -aux | grep smb
ps -aux |grep nmb
[root@localhost home]# ps -aux | grep smb
Warning: bad syntax, perhaps a bogus '-'? See
/usr/share/doc/procps-3.2.7/FAQ
root
1145 0.0 0.6
14980 2628
?
Ss
12:42 0:00
/usr/local/samba/sbin/smbd -D
root
1146 0.0 0.2
14980 984
?
S
12:42 0:00
/usr/local/samba/sbin/smbd -D
root
1178 0.0
0.1
3888 680
pts/0
S+
12:42 0:00 grep smb
[root@localhost home]# ps -aux | grep nmb
Warning: bad syntax, perhaps a bogus '-'? See
/usr/share/doc/procps-3.2.7/FAQ
root
1143 0.0 0.3
10564 1492
?
Ss
12:42 0:00
/usr/local/samba/sbin/nmbd -D
root
1180 0.0
0.1
3892 684
pts/0
S+
12:42 0:00 grep nmb
这是一个服务已经正常启动的例子。
9: 自启动:
echo "/usr/local/samba/sbin/smbd start"
>>/etc/rc.d/rc.local
echo "/usr/local/samba/sbin/nmbd start "
>>/etc/rc.d/rc.local
此处也可以通过vi rc.local来做自启动,另需要注意,网上的不少文档此处写的是/etc/rc.local.是错误的。
10:cp samba/examples/smb.conf.default
/usr/local/samba/lib/smb.conf
我看过的所有的关于samba的文档全部有这条命令,而我在进行testparm进行测试samba的时候,加载smb.conf的路径确明显是
显示/etc/samba/smb.conf,因此个人认为这样写的,全是错的。
至此,samba的源码安装就告一段落。剩下的就是配置smb.conf了。
11:vi /etc/samba/smb.conf
mkdir linuxsir
mkdir sir01 sir02 sir03 sir04 sirshare sir0104rw sirallrw
/opt/linuxsir 这是管理员目录,负责管理其下所有目录;
/opt/linuxsir/sir01
是sir01的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sir02
是sir02的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sir03
是sir03的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sir04
是sir04的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sirshare 所用用户(除了linuxsir有权限写入外)只读目录
/opt/linuxsir/sir0104rw 是用于sir01到sir04用户可读可写共用目录,但匿名用户不能读写;
/opt/linuxsir/sirallrw 用于所有用户(包括匿名用户)的可读可写;
[root@localhost ~]# /usr/sbin/groupadd linuxsir
[root@localhost ~]# /usr/sbin/groupadd sir01
[root@localhost ~]# /usr/sbin/groupadd sir02
[root@localhost ~]# /usr/sbin/groupadd sir03
[root@localhost ~]# /usr/sbin/groupadd sir04
[root@localhost ~]# /usr/sbin/groupadd sir0104
[root@cuc03 ~]# adduser -g sir01 -G sir0104 -d /var/samba/linuxsir/sir01 -s /sbin/nologin sir01
用户sir01 添加到sir01组和 sir0104 组,且指定目录,并且禁止本地登录。
[root@cuc03 ~]# adduser -g sir02 -G sir0104 -d /var/samba/linuxsir/sir02 -s /sbin/nologin sir02
[root@cuc03 ~]# useradd -g sir03 -G sir0104 -d /var/samba/linuxsir/sir03 -s /sbin/nologin sir03
[root@cuc03 ~]# adduser -g sir04 -G sir0104 -d /var/samba/linuxsir/sir04 -s /sbin/nologin sir04
[root@cuc03 ~]# adduser -g linuxsir -d /var/samba/linuxsir -G linuxsir,sir01,sir02,sir03,sir04,sir0104 -d /var/samba/linuxsir -s /sbin/nologin linuxsir
more /etc/passwd
smbpasswd -a linuxsir
[root@cl samba]# ls -ld linuxsir/
drwxr-xr-x 9 root root 4096 07-07 11:22 linuxsir/
[root@cuc03 ~]# chmod 755 /opt/linuxsir 保证此文件夹用户所有者权限为7,其用户权限为rx ,用以确定其它用户有进入此目录的权限。
[root@cl samba]# chmod 755 linuxsir/
[root@cl samba]# ls -ld linuxsir/
drwxr-xr-x 9 root root 4096 07-07 11:22 linuxsir/
[root@cuc03 ~]# chown linuxsir:linuxsir /opt/linuxsir 更改文件假用户所有者。
[root@cl samba]# chown linuxsir:linuxsir linuxsir/
[root@cl samba]# ls -ld linuxsir/
drwxr-xr-x 9 linuxsir linuxsir 4096 07-07 11:22 linuxsir/
[root@cl linuxsir]# ls -l
drwxr-xr-x 2 root root 4096 07-07 11:22 sir01
drwxr-xr-x 2 root root 4096 07-07 11:22 sir0104rw
drwxr-xr-x 2 root root 4096 07-07 11:22 sir02
drwxr-xr-x 2 root root 4096 07-07 11:22 sir03
drwxr-xr-x 2 root root 4096 07-07 11:22 sir04
drwxr-xr-x 2 root root 4096 07-07 11:22 sirallrw
drwxr-xr-x 2 root root 4096 07-07 11:22 sirshare
[root@cuc03 ~]# cd /opt/linuxsir
[root@cuc03 ~]# chmod 2770
sir0*
[root@cl linuxsir]# chmod 2770 sir0* 等价于chomod g+s sir0*
[root@cl linuxsir]# ls -l
drwxrws--- 2 root root 4096 07-07 11:22
sir01
组权限加了一个W是因为7的缘故。
drwxrws--- 2 root root 4096 07-07 11:22 sir0104rw
drwxrws--- 2 root root 4096 07-07 11:22 sir02
drwxrws--- 2 root root 4096 07-07 11:22 sir03
drwxrws--- 2 root root 4096 07-07 11:22 sir04
drwxr-xr-x 2 root root 4096 07-07 11:22 sirallrw
drwxr-xr-x 2 root root 4096 07-07 11:22 sirshare
[root@cuc03 ~]# chown sir01.linuxsir sir01
[root@cuc03 ~]# chown sir02.linuxsir sir02
[root@cuc03 ~]# chown sir03.linuxsir sir03
[root@cuc03 ~]# chown sir04.linuxsir sir04
[root@cuc03 ~]# chown linuxsir.sir0104 sir0104rw
[root@cl linuxsir]# ls -l
drwxrws--- 2
sir01
linuxsir 4096 07-07 11:22
sir01
用户sir01,
用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxrws--- 2 linuxsir sir0104 4096 07-07 11:22
sir0104rw 用户linuxsir,用户组sir0104
具有全部权限。注:sir0104组含sir01--sir04用户。
drwxrws--- 2
sir02
linuxsir 4096 07-07 11:22
sir02
用户sir02,
用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxrws--- 2
sir03
linuxsir 4096 07-07 11:22 sir03
用户sir03,
用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxrws--- 2
sir04
linuxsir 4096 07-07 11:22 sir04
用户sir04,
用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxr-xr-x 2
root
root
4096 07-07 11:22 sirallrw
drwxr-xr-x 2
root
root
4096 07-07 11:22 sirshare
[root@cuc03 ~]# chown linuxsir.linuxsir sirshare
[root@cuc03 ~]# chmod 755
sirshare
sirshare文件夹只有 用户linuxsir具有全部权限,并是文件夹拥有者,其他用户只有读权限
------------------------------------
[root@cl linuxsir]# chown linuxsir.linuxsir sirshare
[root@cl linuxsir]# chmod 755 sirshare
[root@cl linuxsir]# ls -l
drwxrws--- 2
sir01
linuxsir 4096 07-07 11:22 sir01
drwxrws--- 2 linuxsir sir0104 4096 07-07 11:22
sir0104rw
drwxrws--- 2
sir02
linuxsir 4096 07-07 11:22 sir02
drwxrws--- 2
sir03
linuxsir 4096 07-07 11:22 sir03
drwxrws--- 2
sir04
linuxsir 4096 07-07 11:22 sir04
drwxr-xr-x 2
root
root
4096 07-07 11:22 sirallrw
drwxr-xr-x 2 linuxsir linuxsir 4096 07-07 11:22 sirshare
[root@cuc03 ~]# chown linuxsir:linuxsir sirallrw
[root@cuc03 ~]# chmod 3777
sirallrw
这个三应改是代表着2+1,即组id和防删除位。
[root@cl linuxsir]# chown linuxsir:linuxsir sirallrw
[root@cl linuxsir]# chmod 3777 sirallrw
[root@cl linuxsir]# ls -l
drwxrws--- 2
sir01
linuxsir 4096 07-07 11:22 sir01
drwxrws--- 2 linuxsir sir0104 4096 07-07 11:22
sir0104rw
drwxrws--- 2
sir02
linuxsir 4096 07-07 11:22 sir02
drwxrws--- 2
sir03
linuxsir 4096 07-07 11:22 sir03
drwxrws--- 2
sir04
linuxsir 4096 07-07 11:22 sir04
drwxrwsrwt 2 linuxsir linuxsir 4096 07-07 11:22 sirallrw
drwxr-xr-x 2 linuxsir linuxsir 4096 07-07 11:22 sirshare
[linuxsir]
comment = linuxsiradmin
path =
/var/samba/linuxsir
create mask = 0664
directory mask = 0775
browseable = yes
writable = yes
valid users = linuxsir
[sirshare]
comment = sirshare
path =
/var/samba/linuxsir/sirshare
browseable = yes
writable = yes
guest ok = yes
[sirallrw]
comment = sirallrw
path =
/var/samba/linuxsir/sirallrw
browseable = yes
writable = yes
guest ok = yes
[sir0104rw]
comment = sir0104rw
path =
/var/samba/linuxsir/sir0104rw
create mask = 0664
directory mask = 0775
browseable = yes
writable = yes
valid users =
linuxsir,@sir0104rw
[sir01]
comment = sir01
path =
/var/samba/linuxsir/sir01
create mask = 0664
directory mask = 0775
browseable = yes
writable = yes
valid users =
sir01,@sir0104rw
[sir02]
comment = sir02
path =
/var/samba/linuxsir/sir02
create mask = 0664
directory mask = 0775
browseable = yes
writable = yes
valid users =
sir02,@sir0104rw
[sir03]
comment = sir03
path =
/var/samba/linuxsir/sir03
create mask = 0664
directory mask = 0775
browseable = yes
writable = yes
valid users =
sir03,@sir0104rw
[sir04]
comment = sir04
path =
/var/samba/linuxsir/sir04
create mask = 0664
directory mask = 0775
browseable = yes
writable = yes
valid users =
sir04,@sir0104rw
---------------------------------------
一:
./configure --help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE
cache test results in FILE
--help
print this message
--no-create
do not create output files
--quiet,
--silent
do not print `checking...' messages
--version
print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX
install architecture-independent files in PREFIX
[/usr/local/samba]
此处可以看到默认的安装路径。
二:另外一个例子。
vi ese u /
groupadd sales
groupadd tech
useradd -g sales -s /bin/false tom
useradd -g sales -s /bin/false jack
useradd -g tech -s /bin/false red
useradd -g tech -s /bin/flase blue
groupadd finance
groupadd ceo
useradd -g finance -s /bin/false money
useradd -g ceo -s /bin/flase master
for user in tom jack red blue money master
123
[sales]
path = /home/sales
comment = sales
public = no
valid user = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
path = /home/tech
comment = tech
public = no
valid users = @tech
write list = @tech
create mask = 0770
directory mask = 0770
三:另一个例子。
groupadd caiwu
groupadd network
groupadd lingdao
useradd caiwu01 -g caiwu
useradd caiwu02 -g caiwu
useradd network01 -g network
useradd network02 -g network
useradd lingdao01 -g lingdao
useradd lingdao02 -g lingdao
smbpasswd -a caiwu01
smbpasswd -a caiwu02
smbpasswd -a network01
smbpasswd -a network02
smbpasswd -a lingdao01
smbpasswd -a lingdao02
mkdir /home/samba
mkdir /home/samba/caiwu
mkdir /home/samba/lingdao
mkdir /home/samba/exchange
mkdir /home/samba/public
cd /home
chmod 777 *
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
[caiwu]
comment = caiwu
path = /home/samba/caiwu
public = no
valid users = @caiwu,@lingdao,network02
write list = caiwu01
printable = no
[lingdao]
comment = lingdao
path = /home/samba/lingdao
public = no
browseable = no
valid users = @lingdao,network02
printable = no
[exchage]
comment = Exchange File Directory
path = /home/samba/exchange
public = yes
writable = yes
[public]
comment = Read Only Public
path = /home/samba/public
public = yes
read only = yes
四:3、配置smb.conf
#vi smb.conf
workgroup=workgroup(我的windows机子的工作组名,有三台win机,都是"workgroup"
工作组)
增加:unix charset=cp936
dos charset=cp936
display charset=cp936
; 这三条设置的目的是在win机上使用“网络邻居“共享到linux上的文件夹和文件时,显示汉字。
、增加smb用户
一般linux机子上都有很多用户,比如有一个用户名是bill,那么:/usr/local/samba/bin/smbpasswd -a
bill,就把bill增加为smb用户了。
5、启动smb服务
#service iptables stop
#service network restart
#/usr/local/samba/sbin/smbd -D
#/usr/local/samba/sbin/nmbd -D
6:
使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。
方法如下:
1、命令模式下输入“/字符串”,例如“/Section 3”。
2、如果查找下一个,按“n”即可
7:1)samba用户管理使用smbpasswd和pdbedit命令
(2)samba认证使用的用户和组首先要在本地系统中存在
(3)samba只存储独立于本地系统的用户和口令信息,组则使用本地系统的组信息
可以使用pdbedit -L列出现有samba用户清单, 如果清单中有新加入的用户名, 则说明用户
8:通过netstat -an看到服务端口已处理监听状态