Samba服务的配置与应用
通过SMB协议,客户端应用程序可以在各个网络环境下读,写服务器上的文件,以及对服务器程序提出服务请求。
软件包:
Samba-conmmon -Samba的支持文件
Samba-clinent -客户端应用程序
samba -服务器应用程序
服务名称:smb nmb
服务端口:通常使用TCP/445进行所有的连接。
主配置文件:/etc/samba/smb.conf
1.安装
yum install samba-common.x86_64 ##Samba的支持文件
yum install samba.x86_64 ###服务器应用程序
yum install samba-client ##客户端应用程序
systemctl start smb.service ##开启服务
【示例】
2.应用
[root@route ~]# getsebool -a | grep samba ##查看samba的所有开关
[root@route ~]# setsebool -P samba_enable_home_dirs on ###关闭samba用户访问限制
[root@route ~]# smbpasswd -a student ##建一个smb用户,此用户必须是系统用户
[root@route ~]# systemctl restart smb.service ##重启服务
【示例】
【测试】
[root@foundation22 ~]# yum install samba-client ##安装客户端
[root@foundation22 ~]# mount -o username=student,password=123 //172.25.254.122/student /mnt/ ##挂载测试
[root@foundation22 ~]# smbclient //172.25.254.122/student -U student ##用户家目录
3.修改主配置文件
##更改工作组
[root@route ~]# vim /etc/samba/smb.conf ##更改主配置文件
89 workgroup = westos ##更改工作组
[root@route ~]# systemctl restart smb.service ##重启服务
[root@route ~]# semanage fcontext -a -t samba_share_t '/westos(/.*)?' ##设置文件的强制级别
[root@route ~]# restorecon -FvvR /westos/ ##刷新
【示例】
【工作组名称改变】
##更改黑白名单##
【95行为白名单,黑名单行为】
##共享文件夹##
[DATA] ##名称可自定义
comment=qq data ##注释为qq data为自定义的
path=/westos ##路径
【示例】
##匿名用户可登陆##
[root@route ~]# vim /etc/samba/smb.conf #主配置文件
125 map to guest = bad user #没有信息的用户都为guest
324 guest ok = yes ##给权力
[root@route ~]# systemctl restart smb.service ##重启
客户端测试:
smbclient //172.25.254.122/DATA -U guest
[root@foundation22 mnt]# mount //172.25.254.122/DATA /mnt -o username=guest,password=""
【示例】
##用户可写##
[root@route ~]# useradd admin
[root@route ~]# smbpasswd -a westos ##添加samba用户
New SMB password:
Retype new SMB password:
Added user westos.
[root@route ~]# smbpasswd -a admin ##添加samba用户
New SMB password:
Retype new SMB password:
Added user admin.
[root@route ~]# setfacl -m g:student:rwx /westos/ ##本地文件加组权限
[root@route ~]# usermod -G student westos ##把westos用户添加到student组里
[root@route ~]# vim /etc/samba/smb.conf
325 writable=yes ##服务允许可以写入
326 write list=student ##允许写入的用户,325行不存在也可以
326 write list=@|+student ##允许写入的组
327 admin users=admin ##此设定后admin用户对本地文件拥有超户权限,(服务自带)不需要执行chmod给此用户文件权限;325行得存在
[root@route ~]# systemctl restart smb.service
[root@foundation22 ~]# mount //172.25.254.122/DATA /mnt -o username=student,password=123
[root@foundation22 ~]# mount //172.25.254.122/DATA /mnt -o username=admin,password=123
[root@foundation22 mnt]# touch file1 ##可以建立文件
[root@foundation22 mnt]# ls -l file1
-rw-r--r-- 1 root 1002 0 Dec 3 15:11 file1
##可见及可利用##
[root@route ~]# vim /etc/samba/smb.conf
328 browseable=no ##客户端不能看见共享目录的名称
329 valid users=student ##只对某用户
[root@route ~]# systemctl restart smb.service
测试:
[root@foundation22 ~]# mount //172.25.254.122/DATA /mnt -o username=westos,password=123
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
[root@foundation22 ~]# smbclient -L //172.25.254.122
【示例】
4.####多用户挂载####(客户端做)
[root@foundation22 ~]# yum install cifs-utils
[root@foundation22 ~]# vim /root/smbfile
[root@foundation22 ~]# chmod 600 /root/smbfile ##限制其他用户权限
[root@foundation22 ~]# mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.122/DATA /mnt ###multiuser多用户登录的形式, sec=ntlmssp 登录时密码的方式,credentials查看时登录的服务端smb用户
[root@foundation22 mnt]# su - kiosk
[kiosk@foundation22 ~]$ cifscreds add -u westos 172.25.254.122 ##客户端普通用户通过服务端smb的westos用户登录
[kiosk@foundation22 ~]$ exit ##保证环境再卸载
[root@foundation22 ~]# umount /mnt
【/root/文件内容】