在 Linux 上给用户赋予指定目录的读写权限

在 Linux 上指定目录的读写权限赋予用户,有两种方法可以实现这个目标:第一种是使用 ACL (访问控制列表),第二种是创建用户组来管理文件权限,下面会一一介绍。为了完成这个教程,我们将使用以下设置:
操作系统:CentOS 7
测试目录:/data/share
测试用户:shenweiyan
文件系统类型:ext4
请确认所有的命令都是使用 root 用户执行的,或者使用 sudo 命令来享受与之同样的权限。让我们开始吧!下面,先使用 mkdir 命令来创建一个名为 share 的目录。
$ mkdir -p /data/share
使用 ACL 来为用户赋予目录的读写权限
重要提示:
打算使用此方法的话,您需要确认您的 Linux 文件系统类型(如
ext3 和
ext4,
NTFS,
BTRFS)支持 ACL。
首先, 依照以下命令在您的系统中检查当前文件系统类型,并且查看内核是否支持 ACL。
$ df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
$ grep -i acl /boot/config*
从下方的截屏可以看到,文件系统类型是
ext4,并且从
CONFIG_EXT4_FS_POSIX_ACL=y 选项可以发现内核是支持 POSIX ACL 的。

第二,查看文件系统(分区)挂载时是否使用了 ACL 选项。
$ tune2fs -l /dev/vda1 | grep acl

通过上边的输出可以发现,默认的挂载项目中已经对 ACL 进行了支持。如果发现结果不如所愿,你可以通过以下命令对指定分区(此例中使用
/dev/sda3) 开启 ACL 的支持。
$ mount -o remount,acl /
$ tune2fs -o acl /dev/sda3
第三,指定目录 share 的读写权限分配给名为 shenweiyan 的用户了,依照以下命令执行即可。
# 检查目录默认的 ACL 设置(Check the default ACL settings for the directory)
$ getfacl /data/share
# 指定用户读写权限(Give rw access to user shenweiyan)
# 对于目录必须增加 x (执行)权限, 否则无法进入目录
$ setfacl -m user:shenweiyan:rwx /data/share
# 再次检查目录 ACL 设置(Check new ACL settings for the directory)
$ getfacl /data/share

在上方的截屏中,通过输出结果的第二行
getfacl 命令可以发现,用户
shenweiyan 已经成功的被赋予了
/data/share 目录的读写权限。
如果想要获取 ACL 列表的更多信息。请参考:
如何使用访问控制列表(ACL)为用户/组设置磁盘配额
如何使用访问控制列表(ACL)挂载网络共享
使用用户组来为用户赋予指定目录的读写权限
1. 如果用户已经拥有了默认的用户组(通常组名与用户名相同),就可以简单的通过变更文件夹的所属用户组来完成。
$ chgrp shenweiyan /data/share
另外,我们也可以通过以下方法为多个用户(需要赋予指定目录读写权限的)新建一个用户组。如此一来,也就创建了一个共享目录。
$ groupadd dbshare
2. 接下来将用户 shenweiyan 添加到 dbshare 组中:
# add user to projects
$ usermod -aG dbshare shenweiyan
# check users groups
$ groups tecmint
3. 将目录的所属用户组变更为 dbshare:
$ chgrp projects /data/share
4. 现在,给组成员设置读写权限。
$ chmod -R 0760 /data/share
# check new permissions
$ ls -l /data/share
ok,以上就是在 Linux 上给用户赋予指定目录的读写权限的全部内容,希望对大家有用!
往期精彩:
——The End——

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
在 Linux 上给用户赋予指定目录的读写权限的更多相关文章
- linux创建ftp用户以及指定目录问题
linux创建ftp用户以及指定目录问题 创建用户命令:如我的目录是根目录下的 MyWeb 用户名:xdh2571 #useradd -G ftp -d /MyWeb -M xdh2571#passw ...
- linux 判断指定用户对指定目录具有的权限
脚本名:power.sh 脚本内容: ------------------------------------------- 注意:必须以root 身份执行该脚本. 脚本power.sh 需要两个参数 ...
- linux授权某个用户对某个目录有读写的权限
针对特定的某一个用户设置文件或目录权限,用setfacl. 首先打开文件系统的acl功能,在挂载参数添加cal,再保存退出,比如/home分区: vim /etc/fstab /dev/sda2 /h ...
- linux用户登录指定目录
一.创建用户和用户组 [root@web4 lianyu]# groupadd lianyu [root@web4 lianyu]# useradd lianyu -g lianyu [root@we ...
- CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)
1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...
- linux上的用户管理
作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: us ...
- Linux解压文件到指定目录
Linux解压文件到指定目录 tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数:-c :create 建立压缩档案的参数:-x : 解压缩压缩 ...
- linux上限制用户进程数、cpu占用率、内存使用率
限制进程CPU占用率的问题,给出了一个shell脚本代码如下: renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > ...
- linux下nginx服务器域名指定目录
一般,域名指定ip之后,需要在ip所在的机器去指定相应站点的目录,否则域名会不起作用: 下面说说linux下的nginx服务器指定目录的细节: 域名绑定目录的配置文件都放到这里: /usr/local ...
- Linux上项目部署在home目录中无法访问的问题
在Linux上开发一个Web项目,使用nginx作为Web服务器.在nginx的配置文件中添加一个server,root路径写的是放在home目录中的项目目录的路径.打开浏览器访问,提示错误:403 ...
随机推荐
- Salesforce CPQ之后续慢慢看系列
salesforce核心两朵云,sales & service. 针对sales的quote / quote line item的报价功能,还是相对薄弱.针对sales,报价的准确性影响着成单 ...
- 算法学习笔记(20): AC自动机
AC自动机 前置知识: 字典树:可以参考我的另一篇文章 算法学习笔记(15): Trie(字典树) KMP:可以参考 KMP - Ricky2007,但是不理解KMP算法并不会对这个算法的理解产生影响 ...
- asp.net 应用程序中同步方法调用异步方法无响应解决方法
微软发布 C# async/await 异步语法功能已经好久了,但是目前来看使用并不广泛.本人经过实践在开发过程中使用 async/await 一路到底确实很爽,而且也没有啥问题.但是在面对旧项目变更 ...
- Perceptron, Support Vector Machine and Dual Optimization Problem (1)
Linear Decision Boundary(线性决策边界) Example. (classification problem) 给定一个二元的特征空间 \(\mathcal{X} = \left ...
- 重新编译Unity Mono遇到的坑,大坑,巨坑!!!
因为项目需要,要整一个DLL热更功能,本身也想对DLL进行加密,所以需要修改Mono的代码,并重新编译.参考了网上的教程后,决定在linux下做重编的工作. 然而在实际执行的时候,一开始就碰到了巨大的 ...
- Java 8新特性之 Optional 类
前言 java.util.Optional 是java8中引进的一个新的类,我们通过Optional类的源码可以看到,该方法的作用可以对可能缺失的值进行建模,而不是直接将null赋值给变量. Opti ...
- 3.@RequestParma和@PathVariable的用法和区别
前言 我相信很多程序员都会在自己的项目中使用到Restful风格来安全便捷地进行接口的编写,因此本文这篇博客来简要介绍一下controller方法中的两个注解:@RequestParma和@PathV ...
- js开发规范
####################### 1.缩进 [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符. [强制] switch中缩进2个空格 [强制] 要求分 ...
- numpy常用的操作
以下是NumPy中一些常用的操作及其相应的代码示例: 创建NumPy数组: import numpy as np # 从Python列表创建一维数组 a = np.array([1, 2, 3, 4, ...
- RDIFramework.NET WinForm版新增报表管理功能模块
在Web版本中有报表管理功能模块,非常实用的功能,重量级推荐.在WinForm应用中,我们也增加了支持."报表管理"模块主要用于对日常常用的报表做定制展示,可以自动发布到模块,同时 ...