ChatGPT解决这个技术问题 Extra ChatGPT

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

我知道使用 ls -l "directory/directory/filename" 告诉我文件的权限。我如何在目录上做同样的事情?

我显然可以在层次结构中较高的目录上使用 ls -l ,然后滚动直到找到它,但这太痛苦了。如果我在实际目录上使用 ls -l,它会提供其中文件的权限/信息,而不是实际目录的权限/信息。

我在 Mac OS X 10.5 和 Linux (Ubuntu Gutsy Gibbon) 的终端上都试过这个,结果是一样的。我应该使用某种标志吗?


T
TheoKanning

这是简短的答案:

$ ls -ld directory

这是它的作用:

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

您可能对 manpages 感兴趣。这就是这里所有的人都能得到他们好的答案的地方。

请参阅online man pages


我认为手册页措辞不佳。在我开始使用谷歌搜索之前,我搜索了它五次。我不想要目录“条目”(“输入”到目录中的东西?就像他们的文件和子目录一样?)也不想要他们的“内容”(对我来说它们听起来像同一个概念),我想要目录本身。
这是完全标准的术语,目录本身就是目录条目,即文件系统中的条目
这可能是标准术语,但对于可能会问这样一个问题的人来说,这可能是令人困惑的行话。
P
Piotr Lesnicki

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


stat 将向您显示很多权限:(0755/drwxr-xr-x)
这很方便,因此您也可以查看数字权限格式 - ty
"stat -c %a directory" 这将以数字方式显示
macOS 上对应的是 stat -f %A dir_or_filename
M
Mehul Jariwala
$ ls -ld directory

ls 是列表命令。

- 表示命令选项的开始。

l 要求提供包含权限的长列表。

d 表示列表应该与命名目录本身有关;不是它的内容。如果没有给出目录名称,则列表输出将与当前目录有关。


佚名

在 GNU/Linux 中,尝试使用 lsnameigetfaclstat

对于目录

[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 ~]$

T
Taylan

还有

getfacl /directory/directory/

其中包括 ACL

Linux ACL 简介here


B
Brandon Aguilar

这将显示文件及其权限

stat -c '%a - %n' directory/*

F
Filip Ekberg

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

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


T
Tony Topper

在 OS X 上,您可以使用:

ls -lead

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


u
user2201302

ls -lstr

这显示了具有权限和 user:group 的普通 ls 视图


A
Aslam Khan

要检查文件的权限配置,请使用以下命令:

ls –l [file_name]

要检查目录的权限配置,请使用以下命令:

ls –l [Directory-name]

这不是正确的答案,它应该是 -ld,如下面的 anwser 所示
这对我来说很好。我已经使用这些命令设置(资产)文件夹权限,
嗯......但正如OP所说:“如果我在实际目录上使用 ls -l ,它会提供其中文件的权限/信息,而不是实际目录的权限/信息”。我认为 OP 想知道文件夹的权限而不是其中的文件。