文件共享服务器
NFS
开启NFS
rpm -qa | grep nfs
# 首先要确认服务是否已经安装,可以利用rpm命令进行查询。
systemctl status nfs
# 查看NFS服务运行状态
systemctl start nfs
# 启动NFS服务
systemctl enable nfs
# 开机自启
配置NFS
配置文件路径:/etc/exports
配置文件格式:<输出目录> 客户端(选项)
参数值 | 内容说明 |
---|---|
rw/ro | 该目录共享的权限是可读写(read-write)或只读(read-only),但最终能不能读写,还是与文件系统的rwx及身份有关。 |
sync/async | sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘 |
no_root_squash/root_squash | 客户端使用NFS文件系统的账号若为root 时,系统该如何判断这个账号的身份?默认的情况下,客户端root的身份会由root_squash的设置压缩成nfsnobody,如此对服务器的系统会较有保障。但如果想要开放客户端使用root身份来操作服务器的文件系统,那么这里就需要开放no_root_squash才行 |
all_squash | 不论登录NFS的用户身份为何,他的他的身份都会被压缩成为匿名用户,通常也就是nobody(nfsnobody) |
anonuid/anongid | anon意指anonymous(匿名用户)前面关于*_squash 提到的匿名用户的 UID设置值,通常为nobodyinfsnobody),但是你可以自行设置这个UID的值。当然,这个UID必须要存在于/etc/passwd当中。anonuid指的是 UID而anongid则是组的GID |
将共享文件挂载到本地目录
mount 192.168.10.1:/mnt/pub /mnt/pub
参数 | 参数意义 |
---|---|
suid/nosuid | 当挂载的 partition上面有任何 SUID的binary程序时,只要使用nosuid就能够取消SUID的功能。 |
rw/ro | 你可以指定该文件系统是只读(ro)或可读写的。服务器可以提供可读写,但是客户端可以仅允许只读的参数设置值 |
dev/nodev | 是否可以保留设备文件的特殊功能?一般来说只有/dev这个目录才会有特殊的设备,因此可以选择nodev |
exec/noexec | 是否具有执行binary file 的权限?如果想要挂载的仅是数据分区(例如/home),那么可以选择noexec |
nouser/user | 是否允许用户进行文件的挂载与卸载操作?如果要保护文件系统,最好不要允许用户进行挂载与卸载 |
auto/noauto | 这个auto指的是mount -a时,会不会被挂载到项目。如果不需要这个partition随时被挂载,可以设定为noauto |
默认值都为前者。
防火墙与Selinux配置
firewall-cmd --add-service=nfs --zone=public
# 允许访问NFS服务
setenforce 0
# 关闭selinux
# SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
Samba
安装并启动samba服务
yum install -y samba samba-client
systemctl start smb.service nmb.service
修改防火墙设置
firewall-cmd --permanent --add-service=samba
# 设置防火墙
firewall-cmd --reload
# 重新加载防火墙
setenforce 0
# 关闭selinux安全机制
建立各部门专用共享目录
mkdir -p /companydata/public /companydata/sales /company/tech
添加用户和组
首先建立销售部组sales,技术部组tech,然后使用useradd命令添加总经理帐号zjl及各个员工的帐号并加入相应的用户组。
groupadd sales
groupadd tech
useradd zjl
useradd -g sales xsjl
useradd -g sales xsy1
useradd -g sales xsy2
useradd -g tech jsjl
useradd -g tech jsy1
useradd -g tech jsy2
接着使用smbpasswd命令添加samba用户。
smbpasswd -a zjl
New SMB password:
# 输入samba用户密码
Retype new SMB password:
# 确认samba用户密码
Added user zjl.
smbpasswd -a xsjl
smbpasswd -a xsy1
smbpasswd -a xsy2
smbpasswd -a jsjl
配置文件
vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = Bad User
# 允许匿名用户访问
[public]
comment=public
path=/company/public
public=yes
[sales]
comment=sales
path=/company/sales
guest ok = no
writable = yes
valid users = @sales,zjl
[tech]
comment=tech
path=/company/tech
guest ok = no
writable = yes
valid users = @tech,zjl
文件权限
chown :sales /companydata/sales
chown :tech /companydata/tech
setfacl -m u:zjl:r-x /companydata/sales
setfacl -m u:zjl:r-x /companydata/tech
# 销售部目录:/companydata/sales和技术部目录:/companydata/tech只允许本部门 用户写入数据,但不能删除其他用户的数据,不允其他部门访问,但总经理可以查看不能修改。
访问windows共享文件
- 在 Windows 系统中设置一个共享目录:
d:\myfiles
- 在 Linux 下安装 samba-client 客户端
yum install samba-client
- 安装 cifs-utils 软件包
yum install cifs-utils
- 在 Linux 下创建一个挂载点
mkdir /mnt/Windows
- 挂载 Windows 上的共享目录
d:\myfiles
到 Linux 下的/mnt/Windows
目录下
mount -t cifs -o username=Administrator //192.168.0.3/mytest /mnt/Windows
- 如果挂载成功,则可以进入
/mnt/Windows
下进行相应操作。 - 在
/etc/fstab
文件中,加入该共享目录的挂载信息
//192.168.1.123/redhat_disk /mnt/Windows cifs username=tommy,password=111111 0 0
- 到此为止,Windows 上的共享目录
//192.168.1.123/redhat_disk
就被成功挂载到了 Linux上面了,并且 Linux 重启后,会自动挂载该目录到/mnt/Windows
目录下