前置条件:SAMBA服务(CIFS)已安装
如果没安装,安装以下两个包即可:
yum install samba
yum install samba-client
1)匿名只读共享:
vi /etc/samba/smb.conf
- 变成匿名登录:
修改security = share
注释掉passdb backend = tdbsama
2.增加需要共享的目录:
例如:
[alldir]
path=/
browseable = yes
guest ok = yes
这样登录进samba后,就看到有一个alldir目录。匿名可以读写。
如果需要限制用户,可以参考缺省的homes,增加valid users即可。
2)授权用户读写共享:
1.修改类型为user验证
security = user
# passdb backend = tdbsam
passdb backend = smbpasswd
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
2.修改目录为root用户读写
[root]
path=/
writable = yes
browseable = yes
valid users = root
write list = @ root
create mode = 0644
3.新建用户和配置文件
smbpasswd -a root
#也可以这样,不同系统存在差异
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
smbpasswd root
其他:
1.允许读取系统目录
setsebool -P samba_enable_home_dirs on
setsebool -P samba_export_all_rw on
2.启动Smb共享
service smb start
chkconfig smb on
3.如果防火墙没关,需要额外加防火墙例外。
iptables -I INPUT -p udp --dport 137 -j ACCEPT
iptables -I INPUT -p udp --dport 138 -j ACCEPT
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables-save >> /etc/sysconfig/iptables
如果是CentOS7,因为防火墙命令改变,因此是:
firewall-cmd --add-port=137/udp
firewall-cmd --add-port=138/udp
firewall-cmd --add-port=139/tcp
firewall-cmd --add-port=445/tcp
firewall-cmd --runtime-to-permanent
4.SMB客户端配置
查看共享
smbclient -L //hosts/sharename 或 (IP 地址)
smbclient -L //hosts/sharename -U username
访问(挂载)共享
mount -t smb //hosts/sharename /挂载点
mount -t smb -o username=name,password=passwd //hosts/sharename
5.其他命令
查看服务器配置
testparm
如果提示:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
解决方法:
vi /etc/security/limits.conf
add line:
root - nofile 16384
\\ "root"是一个用户,如果是想所有用户生效的话换成"*";
reboot
查看服务器使用状况
smbstatus -b