在Linux系统中,文件和目录的权限管理是系统安全与多用户协作的基石。理解并准确查看文件的权限,是每位系统管理员和开发者的必备技能。本文将以“linux怎么查看建立文件的权限”为核心,深入解析查看权限的方法、权限的含义,并扩展介绍如何设置与修改权限。

Linux文件权限基础
Linux系统通过一套精密的权限机制来控制系统资源(文件、目录)的访问。这套机制主要围绕三个对象:文件所有者(Owner)、文件所属组(Group)和其他用户(Others)。每个对象对应三种基本权限:读(Read, r)、写(Write, w)和执行(Execute, x)。查看权限最核心的命令是ls -l。
如何查看文件权限:ls -l 命令详解
在终端中执行ls -l或ll(后者通常是前者的别名),会列出当前目录下文件的详细信息,其中就包含了权限信息。
示例输出:-rwxr-xr-- 1 user group 1234 Sep 10 10:00 example.txt
开头的10个字符(如`-rwxr-xr--`)即为权限描述符。第一个字符表示文件类型(-表示普通文件,d表示目录,l表示链接等),剩余9个字符每3个一组,分别代表所有者、所属组和其他用户的权限。
| 权限位 | 含义 | 对文件的含义 | 对目录的含义 |
|---|---|---|---|
| r (读) | 读取权限 | 可以读取文件内容 | 可以列出目录内容(如用ls) |
| w (写) | 写入权限 | 可以修改文件内容 | 可以在目录内创建、删除、重命名文件 |
| x (执行) | 执行权限 | 可以作为程序执行 | 可以进入该目录(如用cd) |
| - | 无权限 | 对应权限被禁用 | 对应权限被禁用 |
权限的数字表示法(八进制表示)
为了便于设置和记忆,Linux使用数字来表示权限组合。每种权限被赋予一个固定值:读(r)=4,写(w)=2,执行(x)=1。将所有者、组、其他用户的权限值分别相加,就得到一个三位数的权限码。
| 符号表示 | 计算过程 | 数字表示 |
|---|---|---|
| rwxr-xr-- | 所有者:4+2+1=7; 所属组:4+0+1=5; 其他用户:4+0+0=4 | 754 |
| rw-r--r-- | 所有者:4+2=6; 所属组:4=4; 其他用户:4=4 | 644 |
| rwxrwxrwx | 所有者:7; 所属组:7; 其他用户:7 | 777 |
查看新建立文件的默认权限:umask
当新建一个文件或目录时,其初始权限并非随意指定,而是由系统的默认权限减去umask(用户掩码)值得出。查看当前用户的umask值使用umask命令。
umask值也是一个三位或四位的八进制数,它定义了需要被禁止的权限。通常,新建文件的默认最大权限是666(rw-rw-rw-),目录是777(rwxrwxrwx)。最终的创建权限计算公式为:默认最大权限 - umask(对于文件,通常先做减法,再进行逻辑与运算以确保文件不带默认执行权限)。
| 当前umask值 | 新建文件权限(计算后) | 新建目录权限(计算后) |
|---|---|---|
| 022 | 644 (rw-r--r--) | 755 (rwxr-xr-x) |
| 027 | 640 (rw-r-----) | 750 (rwxr-x---) |
| 000 | 666 (rw-rw-rw-) | 777 (rwxrwxrwx) |
使用stat命令查看更详细的信息
除了ls -l,stat命令可以显示更详尽的文件信息,包括权限的数字和符号表示、文件节点(Inode)、访问时间等。命令格式为:stat filename。在输出中,Access字段清晰地展示了文件的权限。
权限的修改与设置
查看权限是为了更好地管理。修改权限主要使用两个命令:
1. chmod:改变文件或目录的权限。可以使用符号法(如chmod u+x,g-w file)或数字法(如chmod 755 file)。chmod 755 file是最常用的命令之一,它赋予所有者读写执行权限,赋予组和其他用户读和执行权限。
2. chown:改变文件或目录的所有者和所属组。例如chown user:group file。
扩展:特殊权限与ACL
除了基本的rwx,Linux还有特殊权限:SUID、SGID和Sticky Bit。它们出现在权限位的执行权限位置,分别用s、s、t表示,提供了更高的灵活性和安全控制。例如,设置了SUID的程序,执行时将以文件所有者的身份运行。
对于更精细的权限控制,可以使用访问控制列表(ACL)。它允许为任意用户或组设置独立的权限。查看ACL权限的命令是getfacl filename,设置ACL权限的命令是setfacl。
总结
掌握linux怎么查看建立文件的权限是Linux系统管理的入门关键。从基础的ls -l命令解读权限字符串,到理解umask如何影响新建文件的默认权限,再到使用chmod、chown进行权限调整,构成了一个完整的权限管理知识链。深入理解并熟练运用这些知识,能有效提升系统安全性和运维效率,为应对更复杂的场景(如特殊权限、ACL)打下坚实基础。