在Linux中为特定目录上的用户分配读/写访问权限

在上一篇文章中,我们向您展示了如何 在Linux创建共享目录 。这里,我们将描述如何在Linux中的特定目录上给用户提供读/写访问。 有两种可能的方法:第一种是 使用ACL(访问控制列表) ,第二种是 创建用户组来管理文件权限 ,如下所述。 为了本教程的目的,我们将使用以下设置。
Operating system: CentOS 7
Test directory: /shares/project1/reports 
Test user: youcl
Filesystem type: Ext4
确保所有命令都以root用户身份执行,或者使用具有相同权限的 sudo命令 。 让我们从使用 mkdir命令创建名为 reports的目录开始:
# mkdir -p /shares/project1/reports   				

使用ACL对目录上的用户授予读/写访问权限

要点 :要使用此方法,请确保您的Linux文件系统类型(例如Ext3和Ext4,NTFS,BTRFS)支持ACL。 首先, 检查系统当前的文件系统类型 ,以及内核是否支持ACL,如下所示:
# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
# grep -i acl /boot/config*
从下面的截图中,文件系统类型是 Ext4 ,内核支持 POSIX ACL ,如 CONFIG_EXT4_FS_POSIX_ACL = y选项所示。

检查文件系统类型和内核ACL支持

2.接下来,检查文件系统(分区)是否已装入 ACL选项:
# tune2fs -l /dev/sda1 | grep acl

检查分区ACL支持

从上面的输出,我们可以看到默认安装选项已经支持 ACL 。 如果在未启用的情况下,您可以为特定分区( / dev / sda3为此情况)启用它:
# mount -o remount,acl /
# tune2fs -o acl /dev/sda3
现在,它通过运行以下命令为一个用户 youcl分配一个读/写访问到特定目录的时间。
# getfacl /shares/project1/reports       		  # Check the default ACL settings for the directory 
# setfacl -m user:youcl:rw /shares/project1/reports     # Give rw access to user youcl 
# getfacl /shares/project1/reports    			  # Check new ACL settings for the directory

使用ACL对目录进行读/写访问

在上面的截图中,用户 youcl现在对第二个 getfacl命令的输出具有对directory / shares / project1 / reports的读/写(rw)权限。 有关ACL列表的详细信息,请查看我们的以下指南。
  1. 如何使用ACL(访问控制列表)为用户/组设置磁盘配额
  2. 如何使用ACL(访问控制列表)挂载网络共享
现在让我们看看分配对目录的读/写访问的第二种方法。

使用组对目录上的用户授予读/写访问权限

1.如果用户已有默认用户组(通常与用户名相同),只需更改目录的组所有者。
# chgrp youcl /shares/project1/reports
或者,为多个用户(将被授予对特定目录的读/写权限)创建一个新组,如下所示。但是,这将 创建一个共享目录
# groupadd projects
2.然后将用户 youcl添加到组 projects ,如下所示:
# usermod -aG projects youcl	    # add user to projects
# groups youcl	            # check users groups
3.将目录的组所有者更改为项目:
# chgrp	projects /shares/project1/reports
4.现在为组成员设置读/写访问权限:
# chmod -R 0760 /shares/projects/reports
# ls  -l /shares/projects/	    #check new permissions
而已!在本教程中,我们向您展示了如何在Linux中为特定目录下的用户授予读/写访问权限。如果有任何问题,请通过下面的评论部分提出。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏