NFS介绍
network file system 网络文件系统,将文件共享给其他客户端挂载使用
nfs只能做linux之间的共享
特点
(1)提供透明文件访问以及文件传输
(2)容易扩充新的资源或软件,不需要改变现有的工作环境
(3) 高性能,可灵活配置
安装配置
安装软件: nfs-utils.x86_64 1:1.3.0-0.68.el7.2
配置文件: /etc/exports
启动服务: systemctl restart rpcbind;systemctl start nfs
端口: 2049
[root@nfsserver ~]# mkdir /nfs_dir
[root@nfsserver ~]# echo 123 > /nfs_dir/aa.txt
[root@nfsserver ~]# vim /etc/exports
/nfs_dir *(ro) # * 所有主机; ro read only
/nfs_dir 192.168.206.0/24(ro) #授权网段
/nfs_dir 192.168.206.10/24(ro) #授权ip
/nfs_dir 192.168.206.10/24(ro) 172.17.206.0/24(rw) #授权ip和网段
[root@nfsserver ~]# systemctl restart rpcbind
[root@nfsserver ~]# systemctl restart nfs
客户端:
[root@client ~]# showmount -e 192.168.206.20 查看服务端共目录
Export list for 192.168.206.20:
/nfsdir *
[root@client ~]# yum install nfs-utils
[root@client ~]# mount -t nfs 192.168.206.20:/nfs_dir/ /mnt
[root@client mnt]# cat /mnt/aa.txt
123
客户端可以读写
方法1:
客户端可以读写
方法1:
[root@nfsserver ~]# vim /etc/exports
/nfs_dir *(rw)
[root@client ~]# touch /mnt/bb.txt
touch: 无法创建"/mnt/bb.txt": 权限不够
[root@nfsserver ~]# chmod o+w /nfs_dir/
[root@client ~]# touch /mnt/bb.txt
方法2:
[root@nfsserver ~]# vim /etc/exports
/nfs_dir *(rw,no_root_squash,sync)
#no_root_squash 挂载没有root用户身份切换
#sync 同步写 async 异步写
二.NAS
1) vim /etc/rc.local
[root@client ~]# mount -t nfs 192.168.206.20:/nfs_dir /mnt/
2)[root@client ~]# vim /etc/fstab
192.168.206.20:/nfs_dir /mnt nfs defaults 0 0
3).[root@client ~]# vim /etc/auto.master
/nfsdir /etc/auto.nfsdir
[root@client ~]# vim /etc/auto.nfsdir
test -fstype=nfs 192.168.206.20:/nfs_dir
二.samba
samba既可以linux之间,有linux给windows提供存储
软件安装: samba.x86_64 0:4.10.16-15.el7_9.rpm #yum install -y samba
samba-client.x86_64 0:4.10.16-15.el7_9.rpm
配置文件: /etc/samba/smb.conf
启动服务: systemctl restart smb
匿名方式共享
[root@smbserver ~]# vim /etc/samba/smb.conf
security = user
security = user
map to guest = bad user #匿名访问
[smb_dir]
comment = test smb #描述 共享目录作用
path = /smb_dir #真实共享路径
writable = yes #是否可写
browseable = yes #是否可见
public = yes #公共共享
guest ok = yes #来宾用户
[root@smbserver ~]# mkdir /smb_dir
[root@smbserver ~]# systemctl restart smb
客户端
[root@smbclient ~]# yum install -y samba-client
[root@smbclient ~]# smbclient -L //192.168.10.250
Enter SAMBA\root's password: #匿名登陆没有密码直接回车就行
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
smb_dir Disk test smb
IPC$ IPC IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
登录
[root@smbclient ~]# smbclient //192.168.206.20/smb_dir
Enter SAMBA\root's password: #无密码直接回车
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Mon Nov 22 10:35:30 2021
.. D 0 Mon Nov 22 10:35:30 2021
17811456 blocks of size 1024. 14982044 blocks available
不能写.添加权限
[root@smbserver ~]# chmod o+w /smb_dir/
客户端挂载:
[root@nfsserver ~]# yum install cifs-utils
[root@nfsserver ~]# mount -t cifs //192.168.10.250/smb_dir /mnt
windows
地址栏: \\192.168.206.20
用户方式共享:
[user_dir]
comment = test smb user
path = /user_dir
writable = yes
valid users = robin tong @test
[root@smbserver ~]# mkdir /user_dir
[root@smbserver ~]# chmod o+w /user_dir/
[root@smbserver ~]# systemctl restart smb
[root@smbserver ~]# useradd robin
[root@smbserver ~]# useradd zorro
[root@smbserver ~]# smbpasswd -a robin
[root@smbserver ~]# smbpasswd -a zorro 添加samba用户
[root@smbserver ~]# smbpasswd -x zorro 删除samba用户
查询smb用户
[root@smbserver ~]# pdbedit -L
robin:1000:
tong:1003:
测试:
查询
[root@smbclient ~]# smbclient -L //192.168.10.250
[root@smbclient ~]# smbclient -U robin%123 //192.168.10.250/user_dir
[root@smbclient ~]# mount -o username=robin,password=123 //192.168.10.250/user_dir /mnt/
robin可写,tong和test组成员只读
[user_dir]
comment = test smb user
path = /user_dir
write list = robin
valid users = robin tong @test
robin只读,tong和test组成员读写
[user_dir]
comment = test smb user
path = /user_dir
writable = yes
read list = robin
valid users = robin tong @test
自动挂载
一.3种方式挂载smb 匿名 和 user模式
1) vim /etc/rc.local
mount -t cifs -o username=boss,password=123 //192.168.206.20/hr /mnt/
2)[root@client /]# vim /etc/fstab
//192.168.206.20/hr /mnt cifs username=king,password=123 0 0
3)[root@client /]# vim /etc/auto.master
/smb /etc/auto.smb
[root@client /]# vim /etc/auto.smbdir
test -fstype=cifs,username=king,password=123 ://192.168.206.20/hr
三.ftp
ftp: file transfer protocol 文件传输协议
vsftpd: 服务名
lftp: 客户端名
软件安装: vsftpd-3.0.2-29.el7_9.x86_64.rpm
lftp-4.4.8-12.el7_8.1.x86_64.rpm
配置文件: /etc/vsftpd/vsftpd.conf
启动服务: systemctl restart vsftpd
端口: 被动模式 21 随机端口 端口模式: 21 20
服务器数据目录: /var/ftp/ (该目录全必须是755)
匿名模式
[root@nfsserver ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 匿名模式开启
write_enable=YES 可以写
anon_upload_enable=YES 允许上传
anon_mkdir_write_enable=YES 允许创建
anon_umask=022 允许上传文件下载
anon_max_rate=20000 限制现在速度20KB
anon_root=/ftp #更改数据目录
mkdir /ftp
mkdir /ftp/pub
chmod o+x /ftp/pub
[root@nfsserver ~]# lftp 192.168.206.20
lftp 192.168.206.20:~> ls
-rw-r--r-- 1 0 0 2307 Aug 19 06:16 passwd
drwxr-xr-x 2 0 0 6 Jun 09 16:15 pub
lftp 192.168.206.20:/> get passwd #下载文件
2307 bytes transferred
lftp 192.168.206.20:/> mirror pub/ #下载目录
Total: 1 directory, 0 files, 0 symlinks
lftp 192.168.206.20:~> lcd /tmp/ #本地系统切换目录
lftp 192.168.206.20:/> cd pub
lftp 192.168.206.20:/pub> put /root/distroy.sh #上传文件
lftp 192.168.206.20:/pub> mirror -R /boot/ #上传目录
lftp 192.168.206.20:/> exit
用户模式
[root@nfsserver ~]# useradd luci
[root@nfsserver ~]# useradd tong
[root@nfsserver ~]# passwd luci
[root@nfsserver ~]# passwd tong
[root@nfsserver ~]# lftp -u luci,123 192.168.206.20
[root@nfsserver ~]# lftp -u tong,123 192.168.206.20
[root@client ftp]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
local_max_rate=40000
local_root = #修改本地用户登录位置
不允许本地用户随意切换目录
[root@client ftp]# vim /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES #允许可以写的情况下 开启chroot
chroot_local_user=YES #限制所有用户都不能切换到其他目录
chroot_list_enable=YES #白名单
chroot_list_file=/etc/vsftpd/chroot_list 写入该列表的用户可以切换目录
[root@client ftp]# vim /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES #允许可以写的情况下 开启chroot
chroot_local_user=NO #不限制用户都不能切换到其他目录
chroot_list_enable=YES #黑名单
chroot_list_file=/etc/vsftpd/chroot_list 写入该列表的用户不可以切换目录
控制用户登录
写入该文件的用户不能登录ftp
[root@client ~]# vim /etc/vsftpd/ftpusers
登录的黑白名单
黑名单
userlist_enable=YES
userlist_deny=YES
/etc/vsftpd/user_list 写入该文件用户不能登录
白名单
userlist_enable=YES
userlist_deny=NO
/etc/vsftpd/user_list 写入该文件用户可以登录,否则不能登录
vsftpd的工作模式
端口模式:21: 控制端口 控制客户端与服务器建立连接 20:数据端口 建立连接后传输数据
默认: 服务器两种模式都是开放的,由客户端选择链接模式
客户端配置文件:/etc/lftp.conf
set ftp:passive-mode off 主动模式
set ftp:passive-mode on 被动模式 默认注释 默认被动
虚拟帐号:
1.建立用户数据库文件
vim /etc/vsftpd/vipuser.txt
user111
pass111
user222
pass222
2.安装数据库转换工具
yum install libdb-utils
db_load -T -t hash -f /etc/vsftpd/vipuser.txt /etc/vsftpd/vsftpd_vipuser.db
如果需要添加先账号 需要重新转换用户文件
3.建立验证模式文件
# mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
# vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vipuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vipuser
4.建立一个所有虚拟用户使用的系统用户
# useradd -d /home/vsftp virtual
# chmod 755 /home/vsftp
5.修改配置文件启用虚拟用户
[root@client ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES # 开启虚拟用户功能
guest_username=virtual # 指定虚拟用户使用的系统用户
pam_service_name=vsftpd # 以/etc/pam.d/验证模式文件名相同
[root@client ~]# systemctl restart vsftpd
客户端测试登陆
lftp -u user111,pass111 192.168。206.20
lftp -u user222,pass222 192.168.206.20
为虚拟用户设置不同权限
方法一.
虚拟用户使用与本地用户相同权限
virtual_use_local_privs=YES
虚拟用户使用与匿名用户相同权限
virtual_use_local_privs=NO
方法二.
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftp_user_conf
mkdir /etc/vsftpd/vsftp_user_conf
[root@client nfs]# cat /etc/vsftpd/vsftp_user_conf/user111
write_enable=NO
local_max_rate=20000
local_root=/nfs
[root@client nfs]# cat /etc/vsftpd/vsftp_user_conf/user222
local_max_rate=100000
local_root=/nfs