Назад | Перейти на главную страницу

Как узнать, доступен ли файл для чтения конкретному пользователю в Linux?

У меня сложная файловая иерархия, и я не хочу проверять разрешения для каждого каталога. Есть ли способ сразу узнать, доступен ли данный пользователь для чтения одному файлу? (вне входа в систему как этот пользователь)

Это будет работать, только если у вас есть права root


если у пользователя есть действующая оболочка входа

su username -c 'ls /long/dir/user/filename'

если у пользователя есть оболочка nologin /sbin/nologin и подобное:

su username -s /bin/sh -c 'ls /long/dir/user/filename'

Чтобы узнать почему пользователь не может получить доступ к файлу (строит удобное для чтения дерево вывода с разрешениями):

# namei -om /home/someuserhomedir/Maildir/

f: /home/someuserhomedir/Maildir/
dr-xr-xr-x root     root      /
drwxr-xr-x root     root      home
drwx------ someuser somegroup someuserhomedir
drwx------ someuser somegroup Maildir