Я написал сценарий оболочки .scripter.sh
и хотел имитировать выполнение сценария от имени другого пользователя без полномочий root. Я использовал sudo -u daemon bash .scripter.sh
для этого, но там написано «нет разрешения». Затем я увидел, что не могу прочитать какой-либо файл как пользовательский демон, и на самом деле
stefan@stefan-HP-Laptop:~$ touch file
stefan@stefan-HP-Laptop:~$ ll file
-rw-r--r-- 1 stefan stefan 0 Dez 4 19:01 file
stefan@stefan-HP-Laptop:~$ sudo -u daemon [ -r file ]; echo $?
1
stefan@stefan-HP-Laptop:~$
показывает, что у пользователя нет разрешения на чтение, хотя разрешение -rw-r--r--
указывает, что файл доступен для чтения любому. Я надеюсь, что кто-то может пролить свет на эту тайну. Спасибо
Редактировать: На самом деле, следующие работы
stefan@stefan-HP-Laptop:~$ cd test/
stefan@stefan-HP-Laptop:~/test$ ll -d .
drwxr-xr-x 2 stefan stefan 4096 Dez 4 19:40 ./
stefan@stefan-HP-Laptop:~/test$ touch file
stefan@stefan-HP-Laptop:~/test$ sudo -u daemon [ -r file ]; echo $?
[sudo] Passwort für stefan:
0
Как писал Steeldriver, это имеет отношение к разрешению на выполнение в родительском каталоге файла. Действительно, мой домашний каталог не предоставил никаких прав, кроме меня.
Edit2: Кажется, вам нужно разрешение на выполнение для каждого каталога между вами и файлом, который вы хотите прочитать, включая ваш текущий рабочий каталог. Я не могу получить доступ к ~/test/file
как другой пользователь из моей домашней папки, но я могу сделать это как другой пользователь, когда я нахожусь в каталоге ~/test
. Это совпадает с этот ответ
Такое поведение может быть вызвано отсутствием разрешения на выполнение для родительского каталога файла
Пр. учитывая
$ ls -ld tests/{,file}
drwxrwxr-x 2 steeldriver steeldriver 4096 Dec 4 13:46 tests/
-rw-rw-r-- 1 steeldriver steeldriver 322 Dec 4 13:33 tests/file
затем
$ sudo -u daemon [ -r tests/file ]; echo $?
0
, но
$ chmod o-x tests
$ sudo -u daemon [ -r tests/file ]; echo $?
1
Вы можете рассматривать разрешение на выполнение для каталога как разрешение на открытие и просмотр содержимого каталога.