Tool to show permissions of path in Linux?

Soviero asked:

Is there a tool in Linux that will take a path such as /var/log/httpd/error_log, and print the permission for each branch of the path, i.e.:

/var:                     root:root,         0755
/var/log:                 root:root,         0755
/var/log/httpd:           www-data:root,     0700
/var/log/httpd/error_log: www-data:www-data, 0644

Such a tool would make permission troubleshooting much easier, especially with exceptionally long paths like on file servers and such.

My answer:

You want namei.

# namei -l /var/log/nginx/error.log
f: /var/log/nginx/error.log
drwxr-xr-x root  root  /
drwxr-xr-x root  root  var
drwxr-xr-x root  root  log
drwx------ nginx nginx nginx
-rw-r--r-- nginx nginx error.log

Note that this command is Linux-specific and may not exist on other operating systems. Also do not confuse it with the namei() system call.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.