问题描述
我想知道如何查看特定文件的权限。我应该在终端输入哪个命令?但是,我不想改变它。
最佳解决方法
如果要查看文件的权限,可以使用ls -l /path/to/file
命令。
例如
ls -l acroread
-rwxr-xr-x 1 10490 floppy 17242 May 8 2013 acroread
这是什么意思 ?
第一个-
表示常规文件。它为您提供了对象类型的提示。它可以具有以下值。
-
d(目录)
-
c(角色设备)
-
l(符号链接)
-
p(命名管道)
-
s(插座)
-
b(块设备)
-
D(门)
-
– (普通文件)
r
表示读取权限。 w
表示写入权限,x
表示可执行权限。
rwx
的第一个组合代表所有者的许可。 rwx
的第二个组合代表该组的许可。 rwx
的第三个组合表示对另一个文件的许可。
八进制表示法
文件权限也可以用八进制表示法表示。以八进制表示法
读或r
用4表示,Write或w
用2表示。执行x
用1表示。
这三者的总和用于表示许可。
stat
命令可用于以八进制表示法查看文件权限
stat -c "%a %n" /path/of/file
例如
stat -c "%a %n" acroread
755 acroread
在这里你可以看到
对于所有者来说,它是4 + 2 + 1 = 7(二进制为111)对于组,它是4 + 0 + 1 = 5(二进制为101)而另一个是4 + 0 + 1 = 5(二进制为101)。
次佳解决方法
您可以使用长列表:
ls -l [filename]
或者统计:
stat [filename]
统计更全面;它向您显示访问,修改和更改时间,以及Inode和大小信息,这些信息可能对您有用,也可能没有用。
第三种解决方法
无论您实际使用ACL权限,如果安装了acl
软件包,都可以使用getfacl <path>
对该文件进行相当不错的权限细分。
$ getfacl /root/
# file: root/
# owner: root
# group: root
user::rwx
group::---
other::---
如果您确实使用了ACL权限,它会告诉您ls
和stat
无法获得的权限。
$ sudo setfacl -m u:oli:r /root
$ getfacl /root/
# file: root/
# owner: root
# group: root
user::rwx
user:oli:r--
group::---
mask::r--
other::---