CIFS文件系统的存储SAMBA共享部署管理

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> 更新





猜你喜欢

转载自blog.csdn.net/dreamer_xixixi/article/details/80599750