Перевірте ефективні дозволи файлу для користувача


24

Чи можна перевірити ефективні дозволи файлу для конкретного користувача?

Я зазвичай роблю це за допомогою, su userа потім отримую доступ до файлу, але тепер я хочу протестувати це на користувачі без оболонки (тобто системному користувачеві)

Відповіді:


23

sudoКоманда може запустити що - небудь в якості конкретного користувача з -uопцією. Замість того, щоб турбуватися про оболонки, просто спробуйте cat(або виконати, що завгодно) свій файл у якості цільового користувача:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

cat- це, мабуть, не найкращий вибір ... це ви тестуєте великий файл чи двійковий файл ...
Alexis Wilke

24

Мені було зручно використовувати в сценаріях щось подібне

 sudo -u <user> test -r <file-to-test> && ...

1
найкраща відповідь, оскільки ви можете перевірити наявність читабельного (-r), записаного (-w) та виконуваного файлу (-x), не змінюючи / створюючи файл. man testдля більш детальної інформації
Томас

12
sudo -u <user> test -r <file-to-test>; echo $?

echo $?Частина буде виводити статус виходу з тіста.

Просто пам’ятайте тут, що результат буде, 0якщо операція пройшла успішно! Або не нульовий, наприклад 1, якщо ні.

Як і коментар Томаса до відповіді @ user72025, використовуйте, man testщоб отримати більше тестів на експлуатацію, як test -xтестування виконуваності, test -wна спрацьованість та ін.


1
Для мене це найкорисніша відповідь. Той, хто користувачем72025, був близький, але я поняття не мав, що це за результат. Ви це зрозуміли. Спасибі. Голосування.
надихнув

6

Я виявив, що ви можете використовувати su -s <shellname> <username>для введення певної оболонки як конкретного користувача. Потім ви можете перевірити дозволи файлів, як зазвичай.

Наприклад:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

Дуже цікавий варіант.
Олексій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.