Linux系统使用三种基本权限来控制文件和目录的访问:
这些权限分别分配给三类用户: - 所有者(user) - 所属组(group) - 其他用户(other)
使用ls -l
命令查看文件和目录的权限:
ls -l /path/to/file
输出示例:
-rwxr-xr-- 1 user group 4096 Jan 1 10:00 filename
-
为普通文件,d
为目录)数字模式:
chmod 755 filename
符号模式:
chmod u=rwx,g=rx,o=r filename
使用chown
命令修改文件所有者:
chown newuser filename
chown newuser:newgroup filename
使用chgrp
命令修改文件所属组:
chgrp newgroup filename
chmod u+s file
chmod g+s file
chmod o+t directory
umask决定新创建文件和目录的默认权限:
umask 022 # 设置umask值
umask # 查看当前umask
计算方法: - 文件默认权限:666 - umask - 目录默认权限:777 - umask
对于更精细的权限控制,可以使用ACL:
mount | grep acl
setfacl -m u:username:rwx /path/to/file
setfacl -m g:groupname:rx /path/to/file
getfacl /path/to/file
setfacl -x u:username /path/to/file
问题1:Permission denied错误 - 检查当前用户对目标文件/目录的权限 - 检查父目录的权限(需要x权限才能访问子目录)
问题2:无法删除文件 - 检查文件所在目录的写权限 - 检查文件是否被锁定或正在使用
问题3:脚本无法执行
- 确保脚本有执行权限:chmod +x script.sh
- 确保脚本第一行指定了正确的解释器(如#!/bin/bash
)
通过合理配置这些权限设置,您可以有效地管理Linux系统中的文件访问控制。