17

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.

Soviero
  • 4,306
  • 7
  • 34
  • 59

1 Answers1

28

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.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940