samba服务的安装
yum install samba samba-client samba-common -y
systemctl start smb
systemctl stop firewalld.service
vim /etc/sysconfig/selinux ##关闭selinux,重启虚拟机
samba基本命令
vim /etc/hosts ##添加本地域名解析
172.25.254.114 cifs.example.com ##ip为主机ip,域名为主机名
smbclient -L //172.25.254.114 ##匿名查看此ip共享目录
smbpasswd -a student ##创建smb用户,smb用户必须为本地用户
pdbedit -x student ##删除smb用户
pdbedit -L ##查看smb用户
smbclient -L //172.25.254.114/student -U student ##查看student用户的共享目录
smbclient //172.25.254.114/student -U student ##访问student用户的共享目录
ls查看共享文件,!ls查看访问共享目录前所在目录文件
在共享目录中只能上传访问共享目录前所在目录文件
由于不能在共享目录中直接建立文件,可以先挂载到本机然后在挂载点建立即可
mount //172.25.254.114/student /mnt/ -o username=student,password=123 ##挂载共享目录
vim /etc/fstab
//172.25.254.114/student /mnt/ cifs defaults,username=student,password=123 0 0
cd /mnt/
touch file{1..5}
umount /mnt/
smbclient //172.25.254.114/student -U student ##可以看到刚才建立的文件
开机自动挂载
vim /etc/fstab
//172.25.254.114/student /mnt/ cifs defaults,username=student,password=123 0 0
客户端主机查看共享目录
yum install samba-client.x86_64 -y
匿名查看
查看student用户的共享目录
访问student用户的共享目录
samba的配置参数
配置文件:/etc/samba/smb.conf
匿名用户访问
guest ok = yes
map to guest = bad user
访问控制
hosts allow = ##只允许
hosts deny = ##只拒绝
valid users = westos ##当前共享的有效用户为westos
valid users = @westos ##当前共享的有效用户为westos组
valid users = +westos ##当前共享的有效用户为westos组
browseable = yes ##隐藏共享目录
读写控制
所有用户可写:
chmod o+w /mnt
setsebool -P samba_export_all_rw on
vim /etc/samba/smb.conf
writable = yes
指定用户可写:
write list = student ##可写用户
write list = +student ##可写用户组
write list = @student ##@和+均表示用户组
admin users = westos ##共享的超级用户指定
当selinux打开时共享新建目录和系统目录
相关设置可参考/etc/samba/smb.conf文件20到60行
设定允许访问权限:
vim /etc/samba/smb.conf
workgroup = WESTOS ##修改组信息
hosts allow = 172.25.254.14 ##只允许此ip查看访问
systemctl restart smb.service
当selinux打开时访问共享目录需打开bool值
setsebool -P samba_create_home_dirs on
setsebool -P samba_enable_home_dirs on
getsebool -a | grep sam
测试:只有14主机可以查看
新建目录共享:
mkdir /westos
touch /westos/file{1..3}
vim /etc/samba/smb.conf
[linux]
comment = dir from westos
path = /westos
systemctl restart smb.service
semanage fcontext -a -t samba_share_t '/westos(/.*)?' ##修改westos目录及其子目录安全上下文
restorecon -RvvF /westos/ ##刷新
客户端访问查看:
smbclient -L //172.25.254.114 -U student
smbclient //172.25.254.114/linux -U student
系统目录共享:
setsebool -P samba_export_all_ro on ##打开此bool值后权力过大,之后新建目录共享不用改更安全上下文也可查看访问
vim /etc/samba/smb.conf
map to guest = bad user
[mnt]
comment = dir from mnt
path = /mnt
write list = student
guest ok = yes
systemctl restart smb.service
客户端访问查看:
smbclient -L //172.25.254.114 -U student
smbclient //172.25.254.114/mnt -U student
samba多用户挂载
服务端:
vim /etc/samba/smb.conf
[linux]
comment = dir from westos
path = /westos
writable = yes
guest ok = yes
browseable = no
mkdir /westos
chmod 777 /westos
客户端:
yum install cifs-utils.x86_64 -y
普通挂载:
超级用户挂载共享目录:
mount //172.25.254.114/linux /mnt/ -o username=student,password=123
touch /mnt/file4 ##超级用户建立
touch /mnt/file5 ##普通用户建立
可以看到此时超级用户与普通用户建立的文件uid,gid均与服务端文件uid,gid相同
多用户挂载:
vim /root/sambauth
username=student
password=123
超级用户挂载共享目录:
mount //172.25.254.114/linux /mnt/ -o multiuser,credentials=/root/sambauth,sec=ntlmssp
touch /mnt/file6
此时普通用户为不能再/mnt/建立文件,需添加用户认证,切换至普通用户,若是添加认证时密码输错,可以删除认真再次添加,认证添加后不论密码输入对错不删除用户认证都不能再次添加
cifscreds add -u westos 172.25.254.114
cifscreds clear -u westos 172.25.254.114
touch /mnt/file7
可以看到root建立的文件uid,gid与/root/sambauth文件中所写的用户在服务端uid,gid相同,普通用户建立的文件uid,gid与认证的用户在服务端uid,gid相同