cifs文件系统之samba协议, nfs文件系统

关于samba:
samba协议用来提供cifs协议,实现linux和windows系统的文件共享

samba 提供samba服务的主命令;samba-common 提供管理命令;samba-client 提供测试服务

1.SMB文件共享

在服务端:

<1>yum install samba samba-client samba-common -y

<2>systemctl start smb

<3>systemctl enable  smb

<4>systemctl stop firewalld

<5> netstat -antlupe | grep  smb       #查看samba的端口

          

<6> id student                 #id看到的用户才可以在samba中建立

<7>useradd westos             #添加westos用户

<8> id westos                 #查看添加成功

uid=1001(westos) gid=1001(westos) groups=1001(westos)

<9>smbpasswd -a student      #在samba中建立student用户

<10>smbpasswd -a westos

New SMB password:

Retype new SMB password:

Added user westos.

<11> pdbedit -L    #查看samba的用户

student:1000:Student User

westos:1001:

<12> pdbedit -x westos   #删除samba中的westos用户

<13>pdbedit -L    #查看成功删除

<14> smbpasswd -a westos

<15> getsebool -a | grep samba     #slinux中没有开启samba服务,因此在客户端查看时被拒绝

<16>setsebool -P samba_enable_home_dirs on    #开启服务

<17>getsebool -a | grep samba

在客户端:

<1>yum install samba-client.x86_64  -y

<2>smbclient -L //172.25.254.238     #匿名登陆服务端,并查看信息

<3> smbclient -L //172.25.254.238 -U student    #用建立的用户查看信息

<4> smbclient  //172.25.254.238/student -U student    #用建立的用户登陆,但查看不到信息

<6>smb: \> ls                            #在服务端开启后,就可以查看服务端的东西了

2.上传文件

在客户端:

前提:  smbclient  //172.25.254.238/student -U  student

<1>smb: \> put /etc/passwd   #上传失败,因为没有切换到被上传文件中

<2>smb: \> quit

<3>cd /etc

<4>smbclient  //172.25.254.238/student -U student       #可以上传

在服务端查看:

 

上述方法上传文件比较麻烦,下面用挂载的方法,会方便很多,直接在被挂载的目录上操作,客户端就会有效果

 

在客户端:

<1>mount //172.25.254.238/student /mnt/ -o username=student,password=123  #临时挂载

<2>cd /mnt

<3>touch file{1..3}   #成功建立文件

<4>rm -fr file*  #成功删除文件

<5>cd

<6>umount /mnt

<7>vim /etc/fatab  #但此种方法不好,如果服务端未开启的话,客户端就会起不来

写入:

//172.25.254.238/student  /mnt  cifs  defaults,username=student,password=123 0 0

<8>mount -a

<9>df

<10>cd

<11>umount  /mnt

看完效果后记得把添加的内容删掉,不然开机会有影响

<12>vim /etc/rc.d/rc.local  #用这种方法比较方便,服务端不影响客户端

写入:

<13> chmod +x /etc/rc.d/rc.local

<14>reboot

<15>df         #查看成功挂载

在服务端查看效果:

3.配置文件的修改

在服务端

<1>rpm -qc samba-common    #查看smd的配置文件

/etc/logrotate.d/samba

/etc/samba/lmhosts

/etc/samba/smb.conf

/etc/sysconfig/samba

<2> vim /etc/samba/smb.conf   #改完之后在客户端登录查看

改完之后在客户端登录查看
改之前:

改之后:

<3>vim /etc/samba/smb.conf   #设置访问白名单,138这台主机可以查看,其他主机不行

<4>systemctl restart smb

 测试:

138这台主机上

在其他主机上:

 

<5>vim /etc/samba/smb.conf          #设置访问黑名单,138这台主机不可以查看,其他主机可以查看

<6>systemctl restart smb


测试:

138这台主机上

在其他主机上

做完实验后,记得把文件里的内容改回来

4.共享文件

 1 共享自己建立的文件,

在服务端:

<1>mkdir /westos

<2>semanage fcontext -a -t samba_share_t '/westos(/.*)?'#修改建立文件的安全上下文类型为samba_share_t,时使之可以共享

<3>semanage fcontext -l | grep /westos  #查看/westos的安全上下文类型

<4>restorecon -RvvF /westos  #刷新/westos目录安全上下文的列表

<5>vim /etc/samba/smb.conf

        [DIR]              #可以看到的共享目录的名称

        comment= westos dir  #说明

        path = /westos       #共享位置

<6>systemctl restart smb.service

<7>touch /westos/file{1..3}

在客户端:

 2 共享系统的文件(不能修改安全上下文,/mnt还要被其他程序查看,如果改的话,就只能被samba一个查看了)

<1>vim /etc/samba/smb.conf

 

<2>systemctl restart smb.service

<3> touch /mnt/linux{1..3}

但此时在客户端看不到建立的文件:

<5> setenforce 0

设置成警告模式之后可以看到,但不安全:

<6>setenforce 1      #改成强制模式

<7>setsebool -P samba_export_all_ro on #打开只读访问权限该权限比修改文件安全上下文权力大,但是不够安全

setsebool -P samba_export_all_rw on #打开文件访问读写权限

在客户端查看

5. smb权限管理

 1 隐藏共享文件

在服务端:

<1>vim /etc/samba/smb.conf

320     [DIR]

321     comment= westos dir

322     path = /westos

323     browseable = no      #隐藏共享文件

在客户端测试(查看不到DIR文件):

 2 所有用户可写

在服务端修改配置文件:

<1>vim /etc/samba/smb.conf

320         [DIR]

321         comment= westos dir

322         path = /westos

323         browseable = no

324         writable = yes   #所有用户可写

<2>systemctl restart smb

在客户端测试:

<1> mount //172.25.254.238/DIR /mnt -o username=student,password=123

<2>cd /mnt

<3>touch file   #此时建立不成功,因为没有可写权限

touch: cannot touch ‘file’: Permission denied

在服务端:

<1>chmod 777 /westos/  #这种方法不安全,可以用特殊权限来修改

在客户端:

<1> touch file

<2>cd

<3>umount /mnt   

 3 student组的用户可写

在服务端:

<1>vim /etc/samba/smb.conf

320         [DIR]

321         comment= westos dir

322         path = /westos

323         browseable = no

324         #writable = yes

325         write list=@student   #只student组的用户可写

<2>systemctl restart smb

<3>id westos

uid=1001(westos) gid=1001(westos) groups=1001(westos)    #westos属于westos组,不属于student组

在客户端测试:

<1>mount //172.25.254.238/DIR /mnt -o username=westos,password=234

在服务端

<2>usermod -G student westos        #把student添加到westos组中

<3>id westos

<4>再次在客户端测试:touch  file1

 4 设置westos为root用户(必须是可写开启)

在服务端

<1>vim /etc/samba/smb.conf

        [DIR]

        comment= westos dir

        path = /westos

        browseable = no

        writable = yes

        #write list=@student

        admin users = westos   #指定该共享的管理员,即westos用户身份共享时,是以超级用户身份共享的,此功能与writable=yes并存,当可写权力被关闭时,该功能无效

<2>systemctl restart smb

<3>chmod 755 /westos/

在客户端测试:

<1>touch /mnt/file2 #westos在没有可写权限的情况下可写

<2>ls /mnt         #成功建立

<3>#student不是root用户,在不可写的条件下就不能建立

6.smb多用户挂载,认证设置(在客户端)

所有的用户都可以看到之前在root用户下建立的文件,,这样不安全

<1>useradd test

<2>su - test

<3>ls /mnt

file  file1  file2  file4

认证设置,使得查看时认证一下,提高安全性

<4>yum install cifs-utils -y

<5>vim /root/smbpass  #根据挂载规则编写认证文件

<6>mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.238/DIR /mnt

 #credentials查看时登陆的服务端smb用户,sec=ntlmssp登陆时密码的方式,multiuser多用户登陆

<7>cd /mnt

<8>ls

<9>su - test

<10>cd /mnt

<11>ls

<12>cifscreds add -u westos 172.25.254.238 #客户端普通用户test通过smb的westos用户登陆,认证

<13>touch file3

<14>ls -l /mnt

file3文件所用人为root,因为westos在[DIR]中是以管理员身份登陆的,所在组为 test

<15>ls

7.匿名用户的访问

在客户端:

<1> smbclient  //172.25.254.238/DIR  #匿名用户不能登陆

在服务端:

<1>vim /etc/samba/smb.conf

124         map to guest = bad user

327         guest ok = yes

<2>systemctl restart smb

在客户端测试

nfs文件系统

systemctl stop firewalld   #关闭服务端和客户端的火墙

1.文件共享

在服务务端:
<1> yum install nfs-utils -y
<2>systemctl start nfs

<3> vim /etc/exports

/mnt       *(sync,ro)  #同步更新,共享对所有人开放,并且为只读共享,
注:
/mnt            #共享目录,
*(sync,ro)      #共享方式,*代表任何用户
sync            #实时同步
ro              #以只读方式共享
rw                        #以读写方式共享
<4> exportfs -rv

exporting *:/mnt

在客户端测试:

<1>umount /mnt

<2>mount 172.25.254.238:/mnt/  /mnt/

<3>cd /mnt

<4>ls

linux1  linux2  linux3

<5>touch file   #建立不了,因为是只读

在服务端:

<1>vim /etc/exports

/mnt       *(sync,rw)   #读写共享

<2>exportfs -rv   #刷新共享列表

<3>在客户端还是不能建立,因为没有权限

<4>chmod 777 /mnt/    #给共享目录权限

在客户端测试:

在服务端:

<5> vim /etc/exports

/mnt       *(sync,rw,no_root_squash) #客户端用root访问该共享文件时,不映射root用户,即建立的文件还是root建立

<6>exportfs -rv

exporting *:/mnt

在客户端测试:

<7>vim /etc/exports

/mnt       *(sync,rw,anonuid=1000,anongid=1000)#将客户端的用户映射到指定的本地用户id将客户端的用户映射到指定的本地组id

 

在客户端:

<8>vim /etc/exports

/mnt       *(sync,rw,anonuid=1000,anongid=1000)

/westos 172.25.254.0/24(sync) 172.25.254.138(sync,rw)#/westos只针对172.25.254.0这个网端开放,对172.25.254.138这个客户端共享时为读写共享
<9>chmod  777   /westos

<10>exportfs -rv

在客户端测试(138):

在客户端测试(78):

 2.自动挂载和卸载(使用时自动挂载,不使用时自动卸载,节省空间)

前提:在服务端和客户端打开nfs服务,关闭火墙

先在服务端查看共享文件:

<1>showmount -e 172.25.254.238        #如果没有,就先共享

Export list for 172.25.254.238:

/mnt    *

/westos 172.25.254.0/24

<2>vim /etc/exports  #共享

/mnt       *(sync,rw,anonuid=1000,anongid=1000)

/wstos 172.25.254.0/24(sync) 172.25.254.138(sync,rw)

<3>exportfs -rv   #共享成功

exporting 172.25.254.138:/westos

exporting 172.25.254.0/24:/westos

exporting *:/mnt

在客户端:

<1>yum install autofs -y

<2>systemctl start autofs

<3>cd /net

<4>cd 172.25.254.238

<5>ls       #查看共享文件

mnt  westos

<6>cd westos/

<7> ls   

file2  file3

<8>df   #因为在使用westos,所以会自动挂载

<8>vim /etc/sysconfig/autofs  #修改自动卸载时间

13 TIMEOUT=5

<9>systemctl restart  autofs.service

<10>cd   #退出共享文件,即停止使用

<11>df  #5秒之后在查看,已经自动卸载

3.设定自动挂载点的位置(客户端)

<1>cd

<2>vim /etc/auto.master         #主配置文件

8行  /nfs    /etc/auto.westos     #设定最终挂载点的上层目录/nfs

<3> vim /etc/auto.westos  #子策略文件,此目录之前不存在

westos  -ro  172.25.254.238:/westos  #设定挂载点名称,挂载参数以及挂载设备

<4>systemctl restart autofs.service

<5>cd /nfs

<6> cd westos

<7>df

<8> mount     #可以查看挂载参数

猜你喜欢

转载自blog.csdn.net/wzt888_/article/details/80603362