linux中调整文件权限需用chmod设rwx、chown改所有者和组、umask控默认权限、setfacl配细粒度acl。

如果您需要在Linux系统中调整文件或目录的访问控制,可能是因为当前用户无法读取、写入或执行特定资源。以下是修改用户权限的具体方法:
一、使用chmod命令修改文件或目录的权限
chmod命令用于变更文件或目录的读(r)、写(w)、执行(x)权限,支持符号模式和八进制数字模式两种方式,适用于精细控制不同用户类别的访问能力。
1、打开终端,切换到目标文件所在目录,或直接使用绝对路径引用文件。
2、输入命令 chmod u+rwx,g+rx,o-rwx filename,为文件所有者添加全部权限、所属组添加读写权限、其他用户移除所有权限。
3、输入命令 chmod 750 filename,以八进制方式设定权限:所有者为7(rwx),所属组为5(r-x),其他用户为0(---)。
4、对目录及其内部所有内容递归设置权限,添加 -R 参数,例如 chmod -R 644 /path/to/directory。
二、使用chown命令修改文件或目录的所有者和所属组
chown命令用于变更文件或目录的拥有者(user)及所属组(group),是实现多用户环境下资源归属管理的核心工具。
1、在终端中确认当前用户具有sudo权限,否则无法修改他人拥有的文件。
2、输入命令 sudo chown user1 filename,仅更改文件所有者为user1。
3、输入命令 sudo chown user1:group1 filename,同时更改所有者为user1、所属组为group1。
4、对目录及其全部子项递归修改归属,添加 -R 参数,例如 sudo chown -R user2:group2 /var/www/html。
三、结合umask设置新建文件默认权限
umask值影响新创建文件和目录的默认权限,通过调整该掩码可统一控制系统中新资源的初始访问控制级别。
1、在终端中运行 umask 查看当前会话的掩码值,例如输出 0022。
2、临时修改掩码:输入 umask 0002,使新文件默认权限变为664(rw-rw-r--),新目录为775(rwxrwxr-x)。
3、永久生效需将 umask 0002 添加至用户shell配置文件(如 ~/.bashrc 或 ~/.profile)末尾,并执行 source ~/.bashrc 重新加载。
四、使用setfacl命令设置更细粒度的访问控制列表
当标准用户、组、其他三类权限不足以满足需求时,setfacl可为特定用户或组单独授予读、写、执行权限,且不覆盖原有权限结构。
1、确认系统已启用ACL支持,运行 mount | grep acl,输出中应含 acl 字样。
2、为文件添加用户jane的读写权限:执行 setfacl -m u:jane:rw filename。
3、为目录testdir及其下所有新建文件继承ACL规则:执行 setfacl -m d:u:john:r-x testdir。
4、查看文件当前ACL设置:运行 getfacl filename,输出中将明确列出所有显式定义的用户与组权限条目。











