Unix:如何检查特定目录的权限?

我知道使用ls -l "directory/directory/filename"告诉我一个文件的权限。 如何在目录上执行相同的操作? 我明显可以在层次结构中更高的目录上使用ls -l ,然后滚动直到find它,但这是一个很痛苦的事情。 如果我在实际的目录上使用ls -l ,它会给出里面的文件的权限/信息,而不是实际的目录。 我在Mac OS X 10.5和Linux(Ubuntu Gutsy Gibbon)的terminal上都试过这个,结果也是一样的。 有什么标志我应该使用?

这里是简短的答案:

 $ ls -ld directory 

以下是它的作用:

 -d, --directory list directory entries instead of contents, and do not dereference symbolic links 

您可能对手册感兴趣。 这就是所有在这里的人从中得到他们的好答案的地方。

请参阅在线手册页

如果需要文件/目录的详细信息,也可以使用stat命令。 (我确切地说,你说你正在学习^^)

也有

 getfacl /directory/directory/ 

其中包括ACL

这里介绍Linux ACL

$ ls -ld目录

(ls)表示文件和目录的列表。 ( – )表示该文件是一个常规文件。 (l)表示长列表。 (d)表示该文件是一个目录,它基本上是一种特殊的文件。

除了上面的post之外,我想指出“man ls”会给你一个关于“ls”(List)命令的很好的手册。

另外,使用ls -la myFile将列出并显示关于该文件的所有事实。

在OS X上,您可以使用:

 ls -lead 

e选项显示ACL。 而ACL对于了解系统的确切权限是非常重要的。

在GNU / Linux中,尝试使用lsnameigetfaclstat

对于Dir

 [flying@lempstacker ~]$ ls -ldh /tmp drwxrwxrwt. 23 root root 4.0K Nov 8 15:41 /tmp [flying@lempstacker ~]$ namei -l /tmp f: /tmp dr-xr-xr-x root root / drwxrwxrwt root root tmp [flying@lempstacker ~]$ getfacl /tmp getfacl: Removing leading '/' from absolute path names # file: tmp # owner: root # group: root # flags: --t user::rwx group::rwx other::rwx [flying@lempstacker ~]$ 

要么

 [flying@lempstacker ~]$ stat -c "%a" /tmp 1777 [flying@lempstacker ~]$ stat -c "%n %a" /tmp /tmp 1777 [flying@lempstacker ~]$ stat -c "%A" /tmp drwxrwxrwt [flying@lempstacker ~]$ stat -c "%n %A" /tmp /tmp drwxrwxrwt [flying@lempstacker ~]$ 

对于文件

 [flying@lempstacker ~]$ ls -lh /tmp/anaconda.log -rw-r--r-- 1 root root 0 Nov 8 08:31 /tmp/anaconda.log [flying@lempstacker ~]$ namei -l /tmp/anaconda.log f: /tmp/anaconda.log dr-xr-xr-x root root / drwxrwxrwt root root tmp -rw-r--r-- root root anaconda.log [flying@lempstacker ~]$ getfacl /tmp/anaconda.log getfacl: Removing leading '/' from absolute path names # file: tmp/anaconda.log # owner: root # group: root user::rw- group::r-- other::r-- [flying@lempstacker ~]$ 

要么

 [flying@lempstacker ~]$ stat -c "%a" /tmp/anaconda.log 644 [flying@lempstacker ~]$ stat -c "%n %a" /tmp/anaconda.log /tmp/anaconda.log 644 [flying@lempstacker ~]$ stat -c "%A" /tmp/anaconda.log -rw-r--r-- [flying@lempstacker ~]$ stat -c "%n %A" /tmp/anaconda.log /tmp/anaconda.log -rw-r--r-- [flying@lempstacker ~]$