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