CIFS
1.CIFS文件的存储
172.25.254.132 reset hostnamectl set-hostname client.example.com
172.25.254.232 reset hostnamectl set-hostname server.example.com
1>SMB文件共享
用Internet文件系统(CIFS)也称为服务器,是适用于MicrosoftWindows服务器和客户端的标准文件和打印机共享系统信息块(SMB)
Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享
服务端
1 yum install samba samba-client samba-common -y
2 systemctl start smb
3 systemctl enable smb.service
4 systemctl stop firewalld
5 systemctl disable firewalld
6 netstat -antlupe | grep smb #查看smb端口,有445,139
客户端 client 匿名登陆查看172.25.254.132中的samba服务端的信息
1>yum install samba-client -y #安装samba-client客户端访问安装包
2>smbclient -L //172.25.254.232
2>SMB用户
smbpasswd
如果你没有Samba密码服务器,则必须在本地计算机上创建身份验证数据。使用smboasswd创建Samba账户和密码
服务端新建samba用户,新建用户必须为系统中真实存在的用户
1 smbpasswd -a student #添加student用户,该用户密码与系统中student用户密码无关
2 smbpasswd -a westos #添加westos用户,失败,因为系统中没有该用户
3 useradd westos #新建westos用户
4 smbpasswd -a westos #添加westos,成功
5 pdbedit -L #列出samba的所有用户
6 pdbedit -x westos #删除westos用户在samba用户列表中
7 smbpasswd -a westos #添加
8 pdbedit -L
3>保护SMB
1>samba_enable_home_dirs
布尔值允许本地Linux主目录作为CIFS文件共享至其他系统
2>use_samba_home_dirs
布尔值允许挂载远程CIFS文件共享并将其用作本地Linux主目录
smb共享目录的selinux安全上下文
3>samba_share_t
客户端查看student用户信息
1>smbclient -L //172.25.254.232 -U student
2>smbclient //172.25.254.232/student -U student #客户端登陆student用户并查看该用户信息,访问被拒绝,应该是内核加强型防火墙把服务关掉了
在服务端开启该服务
9 getsebool -a | grep smb
10 getsebool -a | grep samba
11 setsebool -P samba_enable_home_dirs on
再次查看此时可以登陆服务端
3>smbclient //172.25.254.232/student -U student
4>cifs文件系统管理
1 smbclient -L //172.25.254.232 -U student
2 cd /etc/#切换到/etc时,只能上传/etc里面的文件
3 smbclient //172.25.254.232/student -U student
>!ls #查看当前切换路径下的文件
>put passwd #只能上传当前目录下的文件
不能在登陆界面创建文件,因为没有该命令,因为student是个disk,可以挂载,所以可以把他挂载在设备下面进行操作
1 cd /mnt/
挂载命令
2 mount //172.25.254.232/student /mnt/ -o username=student,password=student
3 df #查看挂载是否成功
在/mnt目录下创建文件或者删除,服务端家目录都可以看到
4 touch file{1..5}
服务端家目录
1>cd /home/student
2>ls
5>开机自动挂载
方法一:
1>umount /mnt/
2>vim /etc/fstab
//172.25.254.232/student /mnt cifs defaults,username=student,password=student 0 0
3>reboot
vim /etc/fstab #开机自动挂载
方法二:
1>cd
2>umount /mnt/
3>vim /etc/fstab
#//172.25.254.232/student /mnt cifs defaults,username=student,password=student 0 0
4>vim /etc/rc.d/rc.local
5>mount //172.25.254.232/student /mnt/ -o username=student,password=student
6>chmod +x /etc/rc.d/rc.local
7>reboot
8>df
vim /etc/rc.d/rc.local
二.samba部署管理
1>修改工作组
1 rpm -qc samba-common #查看samba-common配置主文件
2 vim /etc/samba/smb.conf
89 workgroup = WESTOS #修改工作组
3 systemctl restart smb.service
4 smbclient -L //172.25.254.232 #访问查看
2>黑白名单
1 vim /etc/samba/smb.conf
98 hosts allow =172.25.254.132 #编辑白名单,除了132,其他都不能访问
2 systemctl restart smb.service
1> smbclient -L //172.25.254.232
3 vim /etc/samba/smb.conf
98 hosts deny =172.25.254.132 #编辑黑名单,除了132,其他都能访问
4 systemctl restart smb.service
2>smbclient -L //172.25.254.232 #访问测试
hosts allow
hosts deny
3>samba文件共享
3.1>共享自己建立的文件
1 mkdir /westos
2 vim /etc/samba/smb.conf
[DIR]
comment=westos dir
path=/westos
3 systemctl restart smb.service
1>smbclient -L //172.25.254.232 -U student
可以看到修改的文件类型
4 semanage fcontext -a -t samba_share_t '/westos(/.*)?' #修改建立文件的安全上下文类型为samba_share_t,时使之可以共享
5 restorecon -RvvF /westos #刷新/westos目录安全上下文的列表
6 ls -Zd grep /westos #查看/westos的安全上下文类型
2>smbclient //172.25.254.232/DIR -U student#登陆访问
修改/westos安全上下文,使其可以共享
2>共享系统文件,因为系统文件不能因为这一个服务去修改安全上下文,所以需要打开selinux的权限
1 touch /mnt/file{1..5}
2 vim /etc/samba/smb.conf #修改文件类型
[mnt]
comment=/mnt dir
path=/mnt
3 systemctl restart smb.service
4 setsebool -P samba_export_all_ro on #打开只读访问权限该权限比修改文件安全上下文权力大,但是不够安全
#setsebool -P samba_export_all_rw on #打开文件访问读写权限
smbclient //172.25.254.232/mnt -U student #可以访问系统文件
3.3>共享目录的参数设置
隐藏共享目录
chmod 777 /westos #修改该目录的权限
vim /etc/samba/smb.con
[DIR]
comment=westos dir
path=/westos
browseable = no #隐藏/westos目录
smbclient -L //172.25.254.232/看不到该目录
目录可写
1 vim /etc/samba/smb.con
[DIR]
comment=westos dir
path=/westos
writable=yes #该权限打开,任何用户都可写
2 systemctl restart smb.service
3 mount //172.25.254.232/DIR /mnt -o username=student,password=student
4 cd /mnt
5 touch file1
可写列表
1 vim /etc/samba/smb.con
[DIR]
comment=westos dir
path=/westos
write list=+student #可写用户列表,+student/@student都表示student组即只要登陆用户在student组中都可写
write list=student #可写用户为student,除了student用户和超级用户其他人都不能访问
2 mount //172.25.254.232/DIR /mnt -o username=westos,password=westos
3 cd /mnt
4 touch /mnt/file2 #被拒绝
将westos用户组改为student组就可以,usermod -g student westos
5 id westos
6 touch /mnt/file2
指定westos为[DIR]管理员
1 vim /etc/samba/smb.con
[DIR]
comment=westos dir
path=/westos
writable=yes
write list=+student
admin users=westos #指定该共享的管理员,即westos用户身份共享时,是以超级用户身份共享的,此功能与writable=yes并存,当可写权力被关闭时,该功能无效
2 systemctl restart smb.service
3 mount //172.25.254.232/DIR /mnt -o username=westos,password=redhat
4 mount //172.25.254.232/DIR /mnt -o username=student,password=student
都可以共享
3.4>允许匿名用户访问
1 vim /etc/samba/smb.conf
124 security = user
125 passdb backend = tdbsam
126 * map to guest=bad user #匿名用户身份映射
322 [DIR]
323 comment=westos dir
324 path=/westos
325 writable=yes
326 write list=+student
327 admin users=westos
328 * guest ok=yes #允许匿名访问
2 systemctl restart smb.service
客户端匿名登陆访问
smbclient //172.25.254.232/DIR #匿名登陆
3 mount //172.25.254.232/DIR /mnt -o username=guest,password="" #匿名挂载
4 df
5 cd /mnt
6 ls
7 touch file
4>多用户挂载 是在客户端进行的操作
1 useradd linux
2 passwd linux
3 yum install cifs-utils -y
4 vim /root/smbpass
username=student
password=student
5 mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.232/DIR /mnt #credentials查看时登陆的服务端smb用户,sec=ntlmssp登陆时密码的方式,multiuser多用户登陆
6 cd /mnt
7 ls
8 su - linux
9 cd /mnt
10 ls
11 cifscreds add -u westos 172.25.254.232 #客户端普通用户linux通过smb的westos用户登陆,认证
12 touch file3
13 ls -l /mnt
file3文件所用人为root,因为westos在[DIR]中是以管理员身份登陆的,所在组为linux
14 ls
# cifscreds cleanall #清除所有缓存
# cifscreds update -u username [-d] <host|domain> 更新