本次为centos系统samba的搭建
关闭selinux,关闭或者放开iptables中samba使用的端口(TCP 139、445,UDP 137、138)
使用yum安装samba服务的相关组件
yum -y install samba*
rpm -qa |grep samba
1、配置无需密码任何人可直接访问的samba服务
先备份samba原配置文件,然后再修改配置文件
vi /etc/samba/smb.conf
[global] 全局配置
workgroup = LINUXSIR Windows中显示的工作组
netbios name = LinuxSir01 Windows中显示出来的计算机名
server string = Linux Samba Server TestServer Samba服务器说明
security = share 验证和登录方式,使用share模式便可不用输入用户名和密码
[linuxsir] 在windows中显示出的共享目录
path = /opt/linuxsir 共享目录路径
writeable = yes 是否可写
browseable = yes 是否可以浏览
guest ok = yes 匿名用户以guest身份登录
再创建共享目录,并修改该目录的权限
mkdir /opt/linuxsir
chmod -R 777 /opt/linuxsir
启动samba服务
service smb start
2、配置需用户名和密码登录的samba服务(不使用samba虚拟用户)
创建系统用户并设置密码
useradd test1
useradd test2
passwd test1
passwd test2
将创建的系统用户添加为samba用户,同时设置密码(此密码为使用连接samba时所用密码)
smbpasswd -a test1
smbpasswd -a test2
pdbedit -L 查看samba用户
修改配置文件内容
vi /etc/samba/smb.conf
[global] 全局配置
workgroup = LINUXSIR Windows中显示的工作组
netbios name = LinuxSir01 Windows中显示出来的计算机名
server string = Linux Samba Server TestServer Samba服务器说明
security = user 验证和登录方式,使用user模式需输入用户名和密码
[linuxsir] 在windows中显示出的共享目录
path = /opt/linuxsir 共享目录路径
writeable = yes 是否可写
browseable = yes 是否可以浏览
valid users = test1,test2 设置允许访问的用户
创建共享目录并开设权限
启动samba服务
3、在windows和linux系统中访问samba的方式
windows中,打开我的电脑-映射网络驱动器,按照步骤输入samba服务器的ip地址,选择共享文件夹
linux中,客户端需安装samba-client
yum -y install samba-client
yum -y install cifs-utils
smbclient -L 192.168.137.2 查看samba服务器的共享目录
mount -t cifs //192.168.137.2/linuxsir /mnt 注意挂载时samba服务器ip后跟共享目录的名字而非路径
mount.cifs //192.168.93.128/www /mnt -o username=smb,password=wang123
附:samba的软件结构及配置文件中其他选项的功能
/etc/samba/smb.conf samba服务的主要配置文件
/etc/samba/lmhosts samba服务的域名设定,主要设置IP地址对应的域名,类似linux系统的/etc/hosts
/etc/samba/smbusers samba服务设置samba虚拟用户的配置文件
/var/log/samba samba服务存放日志文件
/var/lib/samba/private/{passdb.tdb,secrets.tdb} 存放samba的用户账号和密码数据库文档
[global]
workgroup = WORKGROUP 工作组名称
server string = Samba Server Version %v 主机的简易说明
netbios name = MYSERVER 主机的netBIOS名称,如果不填写则默认服务器DNS的一部分,workgroup和netbios name名字不要设置成一样
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 设置samba服务器监听网卡,可以写网卡名称或IP地址,默认注释
hosts allow = 127. 192.168.12. 192.168.13. 设置允许连接到samba服务器的客户端,默认注释
hosts deny =192.168.12.0/255.255.255.0 设置不允许连接到samba服务器的客户端,默认注释
log level =1 日志文件安全级别,0~10级别,默认0
log file = /var/log/samba/%m 产生日志文件的命名,默认以访问者IP地址命名
max log size = 50 日志文件最大容量50,默认50,单位为KB,0表示不限制
security = share 设置用户访问samba服务器的验证方式 ,一共四种验证方式:
1、share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2、user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3、server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户
和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4、domain:域安全级别,使用主域控制器(PDC)来完成认证。
passdb backend = tdbsam 定义用户后台类型
1、smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码
2、tdbsam:创建数据库文件并使用pdbedit建立SMB独立用户,smbpasswd –a username建立samba用户并设置密码,不过建立samba用户必须先建立系统用户,也可以使用pdbedit命令来建立samba用户:
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。
3、ldapsam:基于LDAP服务进行账户验证
username map = /etc/samba/smbusers 配合/etc/samba/smbusers文件设置虚拟用户
load printers = no 关闭打印共享功能
[share] 自定义共享名称
comment = This is share software 共享描述
path = /home/testfile 共享目录路径
browseable = yes/no 设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
writable = yes/no 设置共享是否具有可写权限
read only = yes/no 设置共享是否具有只读权限
admin users = root 设置共享的管理员,如果security =share 时,该项无效,多用户中间使用逗号隔开,例如admin users = root,user1,user2
valid users = username 设置允许访问共享的用户,例如valid users = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)
invalid users = username 设置不允许访问共享的用户
write list = username 设置在共享具有写入权限的用户,例如例如write list = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)
public = yes/no 设置共享是否允许guest账户访问
guest ok = yes/no 功能同public 一样
create mask = 0700 创建的文件权限为700
directory mode = 0700 创建的文件目录为 700