数据共享服务器配置(即:Windows中的网上邻居)
一、相关名词:
samba:软件名称
smb和nmb:smb是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb
服务器的话,只能通过IP来访问(如:在windows的我的电脑中,输入"\\10.0.0.1")。nmb是解析用的,
就是把Linux机器所共享的工作组及在此工作组下的netbios name解析出来。打开了nmb,才能用机器名
(如:在windows的我的电脑中,输入"\\centos")来访问。
二、安装samba(smb、nmb)服务:
yum install samba
三、启动、关闭samba服务:
1、/etc/init.d/smb start (stop reload restart等)
/etc/init.d/nmb start (stop reload restart等)
2、service smb start (stop restart等)
service nmb start (stop restart等)
3、设置开机启动:
chkconfig smb on
chkconfig nmb on
四、查看samba(smbd、nmdd)服务是否在运行:
1、pstree | grep smbd
pstree | grep nmbd
2、pgrep smbd
pgrep nmbd
3、netstat -nuptl | grep smbd
netstat -nuptl | grep nmbd
五、有关的配置文件:
/etc/samba/smb.conf 主配置文件
可使用:testparm对配置文件进行测试。
六、常见考核点:(有关配置参见下载的文档)
主要考核文件夹权限的设置:
1、指定用户可以访问哪些文件夹:
如:tom用户,可以访问data、share文件夹。
2、指定用户具备何种权限:
如:tom用户,对data文件夹具备写权限,但对share文件夹不具备写权限。
3、指定用户是否可以访问自己的家文件夹。
4、打印机共享。
七、samba相关常用工具:
1、smbpasswd:设置共享密码。
默认情况下,密码文件存放在:/var/lib/samba/private下。
2、smbclient:smbclient 是Samba 的Linux 客户端,在Linux机器上用来查看服务器上的共享资源,
也可以象FTP一样,用户可以登录Samba服务器,也可以上传put和下载get文件,对中文支持不友好;
使用方法:
smbclient -L //ip地址或计算机名 查看服务器上的资源。
smbclient -L //ip地址或计算机名 [-U 用户名] 如果您的Samba服务器配置为user模式,就要加
"-U 用户名",如果是share模式,可以省略。如:
smbclient -L //192.168.1.3 -U sir01
Password: 请输入用户sir01的密码
如果您是用share模式,就可以不必理会用户和密码,直接用;
smbclient -L //192.168.1.3
Password: 直接按回车
以用户身份登录共享后,能象FTP用户一样,下传和下载文件;用put表示上传,用get表示下载;如:
smbclient //IP地址/共享文件夹 -U 用户
说明:共享文件夹是我们在smb.conf中定义的[共享文件夹],比如[sir01]。-U 用户名表示Samba的用户;比如:
smbclient //192.168.1.3/sir01 -U sir01
Password:
Domain=[LINUXSIR] OS=[Unix] Server=[Samba 3.0.21b-2]
smb: \> ls
说明:登录到Samba服务器上,就可以用smbclient的一些指令,可以象用FTP指令一样上传和下载文件;
smbclient 命令说明
命令 说明
?或help [command] 提供关于帮助或某个命令的帮助
![shell command] 执行所用的SHELL命令,或让用户进入 SHELL提示符
cd[目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录
lcd [目录] 切换到客户端指定的目录;
dir或ls 列出当前目录下的文件;
exit或quit 退出smbclient
get file1[file2] 从服务器上下载file1,并以文件名file2存在本地机上;如果不想改名,可以把file2省略
mget file1 [file2 file3 filen] 从服务器上下载多个文件;
md或mkdir 目录 在服务器上创建目录
rd或rmdir 目录 删除服务器上的目录
put file1[file2] 向服务器上传一个文件file1,传到服务器上改名为file2;
mput file1 [file2 filen] 向服务器上传多个文件
3、在Linux中smbfs文件系统的挂载:可以使用mount和smbmount。
mount的方法:mount -t cifs -o username=xxx,password=xxx //hostname/dir /mnt/dir
注意:老版本的Linux中,文件系统格式是smbfs,新版本已经不用了,而是用cifs。
4、开机自动挂载,需要在/etc/fstab中加入:
//server/share /mount/point cifs username=[username],password=[password] 0 0
server是Samba服务器的名称或者IP地址。
share是Samba的共享目录。
/mount/point是本机挂载的目录。
username和passow是访问Samba服务器的用户名和密码。
八、配置示例:
要求:将文件夹/share和/data共享,其中用户tom和jack,可以访问/data文件夹,但只能进行读操作;
用户alice和jack,可以访问/share文件夹,并用可以执行写操作;所有用户都可以访问自己的主文件夹。
具体配置:
1、新建两个组:data和share。目的是控制文件夹所在的组,同时将用户加到指定组中,以实现权限控制。
groupadd data
groupadd share
2、新建三个用户,并指定到不同组中。目的是通过用户组,控制用户权限,以实现对相应文件夹的访问。
useradd -g data tom 新建用户tom,同时加入data组。
useradd -g share -G data jack 新建用户jack,同时加入share组,并加入data组。即:jack属于两个组。
useradd -g share alice 新建用户alice,同时加入share组。
passwd tom
passwd jack
passwd alice 设置三个用户的密码
3、新建需要共享的两个文件夹,并指定文件夹所属的组及权限。
mkdir /data
mkdir /share
chgrp data /data 指定所属的组,目的是控制相应组的权限。
chgrp share /share
chmod 770 /share
chmod 750 /data 修改改组的权限,目的是控制相关用户的操作权限。
4、修改smb.conf。注意:默认的smb.conf中已经设置了用户可以访问自己的主目录([homes]段)。
添加:
[share]
comment = Public Share
path = /share 共享文件夹的路径
public = no
valid users = @share 有效的用户,这儿用@表示后面是一个组,即share组中的所有用户。
writable = yes 可写
create mask = 0764
[data]
comment = Public Data
path = /data 共享文件夹的路径
public = no
valid users = @data 有效的用户,这儿用@表示后面是一个组,即data组中的所有用户。
writeable = no 只读
5、修改smb账号的密码。
smbpasswd -a tom -a是添加新的密码行的意思,如果已经有了这个用户对应的密码,则自动忽略。
smbpasswd -a jack
smbpasswd -a alice
6、可以用testparm测试一下配置文件是否有效。
7、启动smb服务。
service smb start (或restart)
service nmb start (或restart)
8、测试:
a、在windows下,打开我的电脑输入“\\IP地址或机器名”即可访问。
用不同的用户登录,看看哪些文件夹可以访问。
b、在fedora下,输入smbclient -L //ip地址或计算机名 -U 用户名,即可看到有关共享的信息。