Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is it possible to test effective permissions of a file for a specific user?

I normally do this by su user and then accessing the file, but I now want to test this on an user with no shell (i.e. a System user)

share|improve this question
up vote 16 down vote accepted

The sudo command can run anything as a particular user with the -u option. Instead of worrying about shells, just try to cat (or execute, whatever) your file as your target user:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied
share|improve this answer
cat is probably not the best choice though... it you are testing a large file or a binary file... – Alexis Wilke Nov 14 '15 at 6:29

I found convenient to use in scripts something like

 sudo -u <user> test -r <file-to-test> && ...
share|improve this answer
best answer, as you can test for readable (-r), writable (-w) and executable (-x) without actually modifying/creating the file. man test for more details – Thomas Jul 1 '14 at 18:18

I've found you can use su -s <shellname> <username> to enter a specific shell as a specific user. You can then test file permissions as usual.


su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
share|improve this answer
sudo -u <user> test -r <file-to-test>; echo $?

The echo $? part will output the exit status from the test.

Just remember here that the output will be 0 if the operation was successful! Or non-zero, e.g. 1, if not.

Like @Thomas's comment on @user72025's answer, use man test to get more operation tests, like test -x to test executability, test -w for writability, etc.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.