菜鸟科技网

Linux查看文件夹权限命令有哪些?

在Linux系统中,文件夹权限的管理是系统安全和访问控制的核心环节,正确查看和理解文件夹权限对于日常运维和开发工作至关重要,Linux通过r(读)、w(写)、x(执行)三种基本权限来控制用户对文件或文件夹的访问,同时结合用户身份(所有者、所属组、其他用户)进行精细化控制,本文将详细介绍Linux查看文件夹权限的常用命令、权限表示方法、高级技巧及实际应用场景。

Linux查看文件夹权限命令有哪些?-图1
(图片来源网络,侵删)

基础查看命令:ls

ls是最常用的文件列表命令,通过不同选项可以查看文件夹的权限信息。

  1. ls -l(长格式显示)
    输出结果的第一列即为权限信息,drwxr-xr--

    • 第1位:文件类型(d表示目录,表示普通文件,l表示链接文件等)。
    • 第2-10位:权限位,每3位一组,分别对应所有者(user)、所属组(group)、其他用户(others),每组中的r(读,4)、w(写,2)、x(执行,1)权限组合,如r-x表示4+1=5。
      示例
      ls -l /home/user

      输出可能为:drwxr-x--- 5 user group 4096 Oct 20 10:30 /home/user,表示该目录所有者有rwx权限(7),所属组有r-x权限(5),其他用户无权限(0)。

  2. ls -ld(查看目录本身权限)
    默认ls -l会显示目录下文件的权限,若需查看目录本身的权限,需加-d选项:

    Linux查看文件夹权限命令有哪些?-图2
    (图片来源网络,侵删)
    ls -ld /var/log

详细权限命令:stat

stat命令提供更详细的权限信息,包括权限位、最后访问/修改时间等。
示例

stat /tmp

输出会包含Access: (0777/drwxrwxrwx),其中0777是八进制权限表示,drwxrwxrwx对应字符权限。

递归查看权限:find

若需批量查看目录及其子目录的权限,可结合findls

find /path/to/dir -type d -exec ls -ld {} \;

该命令会列出/path/to/dir下所有子目录的权限信息。

Linux查看文件夹权限命令有哪些?-图3
(图片来源网络,侵删)

权限位解析与八进制表示

Linux权限可通过八进制数字简化表示,对应关系如下:
| 权限字符 | 八进制值 | 说明 |
|----------|----------|--------------------|
| r | 4 | 读权限 |
| w | 2 | 写权限 |
| x | 1 | 执行权限 |
| - | 0 | 无权限 |

组合示例

  • rwx = 4+2+1 = 7(所有者完全权限)
  • r-x = 4+0+1 = 5(读和执行)
  • = 0(无权限)

高级技巧:ACL(访问控制列表)

若需更精细的权限控制(如为特定用户设置独立权限),可使用getfaclsetfacl

  1. 查看ACL权限
    getfacl /home/user
  2. 设置ACL权限
    setfacl -m u:username:rwx /home/user

实际应用场景

  1. 排查权限问题:若用户无法访问目录,可通过ls -ld检查所有者、所属组权限,确认是否缺少x执行权限(目录的x权限允许进入目录)。
  2. 批量修改权限:结合findchmod递归修改权限,
    find /data -type d -exec chmod 755 {} \;

相关问答FAQs

Q1: 为什么目录的权限需要x(执行)权限?
A1: 目录的x权限决定了用户是否能“进入”该目录,若无x权限,即使有r权限(可列出目录内容),用户也无法通过cd命令进入目录,也无法访问目录下的文件,权限为drwxr--r--的目录,所有者可进入和读写,但其他用户仅能查看内容而无法进入。

Q2: 如何查看当前用户对某个目录的实际权限?
A2: 使用namei命令可直观显示当前用户对目录的访问权限链:

namei -l /home/user

该命令会逐级显示从根目录到目标目录的权限情况,并标注当前用户是否有权限访问每个层级,若namei未安装,可通过apt install util-linux(Debian/Ubuntu)或yum install util-linux(CentOS/RHEL)安装。

分享:
扫描分享到社交APP
上一篇
下一篇