本文共 3567 字,大约阅读时间需要 11 分钟。
1.安装软件包
rpm -q samba samba-common samba-client cifs-utilsyum -y install samba samba-common samba-client cifs-utilssmbd 管理Samba主机共享的目录,文件与打印机等。使用TCP 139 445进行可靠的数据传递
nmbd 管理工作组、NetBIOS Name等解析,使用UDP 137 138来负责名称解析的任务2.修改主配置文件security
share 不需要密码可以访问user 需要密码(默认)smbclient -L 服务器ip smbclient -U 账户名 //服务器ip/共享名useradd nick
useradd huntersmbpasswd -a nick 等于 pdbedit -a nick 设置密码cd /etc/samba/[root@test01 samba]# cp smb.conf smb.conf.bak[root@test01 samba]# vim smb.confworkgroup = Tarena 工作组server string = Windows Server 2008 链接时的提示(建议改掉默认)[tools]path = /usr/src //指定共享路径public = no //不对所有人开放read only = yes //默认的权限为只读valid users = nick,hunter //指定合法用户write list = hunter //用户hunter可读可写3.启动服务[root@test01 samba]# testparm 检测配置命令[root@test01 samba]# service smb,nmb restart; chkconfig nmb,smb on[root@test01 samba]# netstat -tulnp | grep smbtcp 0 0 0.0.0.0:139 0.0.0.0: LISTEN 1489/smbd tcp 0 0 0.0.0.0:445 0.0.0.0: LISTEN 1489/smbd tcp 0 0 :::139 ::: LISTEN 1489/smbd tcp 0 0 :::445 ::: LISTEN 1489/smbd4.设置权限
[root@test01 ~]# setfacl -m u:hunter:rwx /usr/src/[root@test01 ~]# getfacl /usr/src/5.测试Windows:UNC路径 \192.168.10.10Linux:[root@test02 ~]# yum -y install samba-client[root@test02 ~]# smbclient -L 192.168.10.10[root@test02 ~]# smbclient -U nick //192.168.10.10/toolssmb: \> !lsanaconda-ks.cfg anon.txt install.log.syslog local.tgzanon.tgz install.log lisi.txtsmb: \> put install.logsmb: \> quit[root@test02 ~]# smbclient -U hunter //192.168.10.10/toolssmb: \> lssmb: \> put install.logsmb: \> lssmb: \> quit[root@test02 ~]# mkdir /mnt/smbdir[root@test02 ~]# mount -o username=nick,password=redhat //192.168.10.10/tools /mnt/smbdir/ 7不支持-o密码的设置了,只能手动6.设置开机自动挂载[root@test02 ~]# grep smbdir /etc/fstab //192.168.10.10/tools /mnt/smbdir cifs defaults,username=nick,password=redhat 0 0 还可以调用文件credentials=文件 文件权限600[root@test02 ~]# mount -a[root@test02 ~]# df -hT试验二:Samba账户别名与访问地址控制
1.修改Samba用户别名文件
[root@test01 ~]# vim /etc/samba/smbusersroot = administrator admin
nobody = guest pcguest smbguesthunter = hijack2.修改主配置文件[root@localhost ~]# vim /etc/samba/smb.conf username map = /etc/samba/smbusers 别名[tools]
path = /usr/srcpublic = novalid users = nick,hunter 有效用户write list = hunter 可写用户hosts allow = 192.168.10.20 访问控制3.客户端测试[root@test02 ~]# smbclient -U hijack //192.168.10.10/toolsEnter hijack's password: Domain=[TARENA] OS=[Unix] Server=[Samba 3.6.9-164.el6]smb: \> ls针对RHEL7
设置防火墙等
Firewall-cmd --permanent --add-service=samba; firewall-cmd --reloadsemanage fcontext -a -t samba_share_t '/smb1(/.*)?' (chcon -R -t samba_share_t /smb1) smb1为共享目录restorecon -RFvv /smb1/semanage fcontext -l | grep smb1 查看内核默认上下文
//ip/smb1 /mnt/smb1 cifs defaults,credentials=/root/smb1.passwd 0 0
Chmod 600 /root/smb1.passwd//ip/smb2 /mnt/smb2 cifs defaults,credentials=/root/smb2.passwd,multiuser,sec=ntlmssp 0 0
/root/smb2.passwd 写任意一个能访问的 chmod 600 /root/smb2.passwd基于多用户安全su - 用户cifscreds add server0(服务器) 分层管理,,(针对多用户,有的可读,有的可写)例子
多用户挂载读写 setfacl -m u:ldapuser5:rwx /smb2Vim /etc/samba/smb.conf[smb2]Path = /smb2Valid users = user1, user2, @hrWrite list = user2Systemctl enable nmb smb;systemctl restart nmb smbsemanage fcontext -a -t samba_share_t '/smb2(/.*)?' (chcon -R -t samba_share_t /smb1)restorecon -RFvv /smb2/客户端Vim /etc/fstab//ip/smb2 /mnt/smb2 cifs defaults,credentials=/root/smb2.passwd,multiuser,sec=ntlmssp 0 0
/root/smb2.passwd 写任意一个能访问的 chmod 600 /root/smb2.passwdcifscreds add server0
转载于:https://blog.51cto.com/13272050/2050214