ChatGPT解决这个技术问题 Extra ChatGPT

How to check permissions of a specific directory?

I know that using ls -l "directory/directory/filename" tells me the permissions of a file. How do I do the same on a directory?

I could obviously use ls -l on the directory higher in the hierarchy and then just scroll till I find it but it's such a pain. If I use ls -l on the actual directory, it gives the permissions/information of the files inside of it, and not of the actual directory.

I tried this in the terminal of both Mac OS X 10.5 and Linux (Ubuntu Gutsy Gibbon), and it's the same result. Is there some sort of flag I should be using?


T
TheoKanning

Here is the short answer:

$ ls -ld directory

Here's what it does:

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

You might be interested in manpages. That's where all people in here get their nice answers from.

refer to online man pages


I think the man page is poorly worded. I scoured it five times before I started googling. I don't want directory 'entries' (thing 'entered' into directories? Like their files and sub-directories?) nor their 'contents' (they sound like the same concept to me), I want the directories themselves.
it's completely standard terminology, the directories themselves are the directory entries, i.e. entries in the filesystem
It may be standard terminology, but to someone who would likely be asking such a question, it is probably confusing jargon.
P
Piotr Lesnicki

You can also use the stat command if you want detailed information on a file/directory. (I precise this as you say you are learning ^^)


stat will show you amongst a lot of things permissions : (0755/drwxr-xr-x)
this is handy so you can see the numerical permissions format as well - ty
"stat -c %a directory" this will show in numerical way
The corresponding on macOS is stat -f %A dir_or_filename.
M
Mehul Jariwala
$ ls -ld directory

ls is the list command.

- indicates the beginning of the command options.

l asks for a long list which includes the permissions.

d indicates that the list should concern the named directory itself; not its contents. If no directory name is given, the list output will pertain to the current directory.


佚名

In GNU/Linux, try to use ls, namei, getfacl, stat.

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

or

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

For file

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

or

[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

There is also

getfacl /directory/directory/

which includes ACL

A good introduction on Linux ACL here


B
Brandon Aguilar

This displays files with its permisions

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

F
Filip Ekberg

In addition to the above posts, i'd like to point out that "man ls" will give you a nice manual about the "ls" ( List " command.

Also, using ls -la myFile will list & show all the facts about that file.


T
Tony Topper

On OS X you can use:

ls -lead

The e option shows ACLs. And ACLs are very important to knowing what the exact permissions on your system are.


u
user2201302

ls -lstr

This shows the normal ls view with permissions and user:group as well


A
Aslam Khan

To check the permission configuration of a file, use the command:

ls –l [file_name]

To check the permission configuration of a directory, use the command:

ls –l [Directory-name]

this is not the right answer, it should be -ld, as indicated in below anwser
It's work fine for me . i have set (assets) folders permission using these command,
hmmm... but as the OP has stated: "If I use ls -l on the actual directory, it gives the permissions/information of the files inside of it, and not of the actual directory". I think OP wanted to know the permissions of a FOLDER not the FILES in it.