NFS 文件共享
NFS是Network File System 的缩写,主要功能是通过网络让不同的机器彼此之间共享文件或目录,可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到NFS客户端本地中。NFS协议有多个版本:Linux支持版本4、版本3和版本2,而大多数系统管理员熟悉的是NFSv3
nfs在不同主机的共享
在服务机上的设置:
[root@nfs-clinent ~]# vim /etc/exports
[root@nfs-client mnt]# mkdir /westosshare
[root@nfs-client mnt]# touch /westosshare/westosfile{1..3}
[root@nfs-client mnt]# exportfs -rv
exporting 172.25.254.19:/westosshare
vim /etc/exports
**在另一台主机上
[root@foundation19 mnt]# showmount -e 172.25.254.119
Export list for 172.25.254.119:
/westosshare 172.25.254.19
[root@foundation19 mnt]# mount 172.25.254.119:/westosshare /mnt/
[root@foundation19 mnt]# ls
westosfile1 westosfile2 westosfile3
可以看到mnt下的创建的三个文件,挂载实现的目录共享。
默认目录自动挂载
客户端安装软件
[root@nfs-clinent ~]# yum install autofs -y
[root@nfs-clinent ~]# systemctl restart autifs.server
[root@nfs-clinent ~]# cd /net
[root@nfs-clinent ~]# cd 172.25.254.119
[root@nfs-clinent ~]# ls
westos
[root@nfs-clinent ~]# cd /westosshare
这样就可以看到他的共享目录下面的内容,而且是自动挂载,退出目录后默认5分钟自动卸载。他可以修改
在/etc/autofs.conf中可以修改。
4、 指定目录的自动挂载
在客户端修改配置文件
[root@nfs-clinent ~]# vim /etc/auto.master
添加一行,/nfs是指共享目录的第一层目录,/etc/auto.nfs他是master的子文件
/westosshare /etc/auto.nfs
[root@nfs-clinent ~]#vim /etc/auto.nfs
共享目录的第二层目录
* 172.25.254.119:/&
这个意思是前面的第二层目录和第一层目录是一致的,如果你挂载了就表示你 自动挂载的目录为/westosshare
**
samba
**
*samba 服务器的安装及调试
[root@samba Desktop]# yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64 -y #安装软件
[root@samba Desktop]# systemctl start smb #开启服务
[root@samba Desktop]# systemctl stop firewalld.service #关闭火墙
[root@samba Desktop]# getsebool -a | grep samba #查看samba服务状态
[root@samba Desktop]# pdbedit -L #列出 samba 用户
[root@samba Desktop]# smbpasswd -a student 添加samba用户(此用户必须是存在的
查看smb的共享目录
查看自己的共享目录,添加目录后默认共享家目录
[root@smbserver ~]# smbclient -L //172.25.254.119 -U student
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
student Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
SMBSERVER Samba Server Version 4.1.1
Workgroup Master
--------- -------
MYGROUP SMBSERVER
登陆smb 的共享目录
[root@smbserver ~]# smbclient //172.25.254.119/student -U student
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
smb: \>
此时ls的时候看不到smb的共享目录,是因为selinux中的samba_enable_home_dirs没有打开
**同时还需要在配置文件中设定smb用户可以访问自己的家目录
就是/etc/samba/smb.conf中第30行*
进行如下操作:
getsebool -a | grep samba
**此方式修改针对所有的目录,一但开放,selinux 不保护目录**
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off #只读
samba_export_all_rw --> off #可读可写
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
setsebool -P samba_enable_home_dirs on #允许进入家目录
vim /etc/samba/smb.conf
vim /etc/samba/smb.conf
然后再次进入查看的时候就会有显示内容
[root@smbserver ~]# smbclient //172.25.254.119/student -U student
params.c:Parameter() - Ignoring badly formed line in configuration file: setsebool -P samba_enable_home_dirs on
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Fri Aug 18 04:32:16 2017
.. D 0 Fri Aug 18 04:55:08 2017
.bash_logout H 18 Wed Jan 29 07:45:18 2014
.bash_profile H 193 Wed Jan 29 07:45:18 2014
.bashrc H 231 Wed Jan 29 07:45:18 2014
.ssh DH 0 Thu Jul 10 18:19:10 2014
.config DH 0 Fri Aug 18 04:07:03 2017
.cache DH 0 Fri Aug 18 04:07:03 2017
mail D 0 Fri Aug 18 04:31:14 2017
.bash_history H 259 Fri Aug 18 04:32:16 2017
共享目录的基本设定
[root@smbserver ~]# vim /etc/samba/smb.conf
[root@smbserver ~]# mkdir /linux
[root@smbserver ~]# touch /linux/file{1..5}
[root@smbserver ~]# vim /etc/samba/smb.conf
[root@smbserver ~]# systemctl restart smb.service
vim /etc/samba/smb.conf
workgroup = linux #修改工作组(MYGROUP——>linux)
[DATA]
common = local directory linux #共享说明
path = /linux #共享文件路径
这时需要对linux的安全上下文作更改。
[root@smbserver ~]# ls -Z /linux
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 file1
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 file2
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 file3
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 file4
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 file5
[root@smbserver ~]# semanage fcontext -a -t samba_share_t '/linux(/.*)?'
[root@smbserver ~]# restorecon -FvvR /linux/刷新安全上下文
再次登陆查看:
就会发现在linux下建立的五个文件可以显示,
*匿名用户访问
map to guest = bad user #允许匿名用户访问
guest ok = yes #允许匿名用户访问
mount //172.25.254.119/linux /mnt -o username=guest #挂载
[root@smbserver mnt]# vim /etc/fstab开机自动挂载
samba 共享目录参数管理
[DATA]
common = local directory linux
path = /linux
guest ok = yes
writable = yes #所有用户可写
write list = tom | +/@tom #tom | tom组可写
valid user = tom #tom | tom组可登陆
browseable = no #是否允许浏览
admin user = student #student以超级用户的身份登陆
[root@samba linux]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@samba linux]# id tom
uid=1001(tom) gid=1001(tom) groups=1001(tom)
[root@samba linux]# usermod -G tom student #将 student 用户放入 tom 组里
[root@samba linux]# id student
uid=1000(student) gid=1000(student) groups=1000(student),1001(tom)
测试:
错误1:NT_STATUS_NO_SUCH_FILE listing -fr #系统没有开放权限
错误2:rm: cannot remove ‘file1’: Permission denied #文件权限不够
访问控制
hosts allow = #仅允许
hosts deny = #仅拒绝
valid users = #当前共享的有效用户
valid users = westos #当前共享的有效用户为westos
valid users = @westos #当前共享的有效用户为westos组
valid users = +westos #当前共享的有效用户为westos组
读写控制
所有用户均可写
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 #共享的超级用户指定
smb多用户共享
1.保护服务器信息
[root@foundation19~]# yum install cifs-utils -y
[root@foundation19 ~]# vim /root/smbpassfile
[root@foundation19 ~]# cat /root/smbpassfile
username=kiosk
password=redhat
[root@foundation19 ~]# mount //172.25.254.119/DATA /mnt -o credentialss=/root/smbpassfile,multiuser,sec=ntlmssp
这样挂载之后,访问的用户需要通过认证
[root@foundation19 ~]# smbpasswd -a kiosk
将 kiosk 加入到samba 用户里面
New SMB password:
Retype new SMB password:
Added user kiosk.
[root@foundation19 ~]# su - kiosk
Last login: Sat Mar 18 08:22:58 CST 2017 on :0
[kiosk@foundation19 ~]cd/mnt[kiosk@foundation30mnt] ls
ls: reading directory .: Permission denied
**[kiosk@foundation19 mnt]$ cifscreds add 172.25.254.119
#认证用户**
Password:
[kiosk@foundation19 mnt]$ ls
file2 file3 file4 file5
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-8cccb36679.css" rel="stylesheet">
</div>
</article>