Ответы:
Команда sudoможет запускать что угодно как определенный пользователь с -uопцией. Вместо того, чтобы беспокоиться о оболочках, просто попробуйте cat(или выполните, что угодно) ваш файл в качестве целевого пользователя:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
sudo -u <user> test -r <file-to-test>; echo $?
echo $?Часть будет выводить статус выхода из теста.
Просто помните, что вывод будет, 0если операция прошла успешно!Или ненулевой, например 1, если нет.
Как и комментарий @ Thomas к ответу @ user72025, используйте его man testдля получения дополнительных тестов операций, например test -xдля проверки исполняемости, test -wвозможности записи и т. Д.
Я нашел, что вы можете использовать su -s <shellname> <username> для входа в определенную оболочку как конкретного пользователя. Затем вы можете проверить права доступа к файлу как обычно.
Например:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
catвероятно, это не лучший выбор ... если вы тестируете большой файл или двоичный файл ...