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?
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
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 -f %A dir_or_filename
.
$ 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 ~]$
There is also
getfacl /directory/directory/
which includes ACL
A good introduction on Linux ACL here
This displays files with its permisions
stat -c '%a - %n' directory/*
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.
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.
ls -lstr
This shows the normal ls view with permissions and user:group as well
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]
Success story sharing