Q. I need to find file permission and store the same to a shell variable. How do I find out the file permission without parsing ls -l output?
A. Use GNU stat command to display file or file system status. It has option to display output in specific format.
Display stat for /etc/passwd file
Type the following command:
$ stat /etc/passwd
Output:
File: `/etc/passwd' Size: 1675 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 7899368 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2007-12-05 08:20:31.000000000 +0530 Modify: 2007-12-04 23:36:50.000000000 +0530 Change: 2007-12-04 23:36:50.000000000 +0530
Print access rights in octal format:
$ stat -c %a /etc/passwd
Output:
644
Print access rights in human readable format, enter:
$ stat -c %A /etc/passwd
Output:
-rw-r--r--
Store access rights in octal format to a shell variable:
$ VAR=$(stat -c %a /etc/passwd)
$ echo $VAR
Other valid format sequences for files
- %b : Number of blocks allocated (see %B)
- %B : The size in bytes of each block reported
- %d : Device number in decimal
- %C : SELinux security context
- %D : Device number in hex
- %f : Raw mode in hex
- %F : File type
- %g : Group ID of owner
- %G : Group name of owner
- %h : Number of hard links
- %i : Inode number
- %n : File name
- %N : Quoted file name with dereference if symbolic link
- %o : I/O block size
- %s : Total size, in bytes
- %t : Major device type in hex
- %T : Minor device type in hex
- %u : User ID of owner
- %U : User name of owner
- %x : Time of last access
- %X : Time of last access as seconds since Epoch
- %y : Time of last modification
- %Y : Time of last modification as seconds since Epoch
- %z : Time of last change
- %Z : Time of last change as seconds since Epoch
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 2 comments… read them below or add one }
Could you please tell me what is the number after the permission
ls -ltr
drwxrwxrwx 7 root users 8192 Feb 25 13:58 src
^^^ what is the seven stand for?
that’s hard links number