Как правило, скрипты не могут выполняться без разрешения «r», даже если вы являетесь владельцем файла
$ ls -l tst
---x--x--x 1 sweh sweh 24 May 4 21:22 tst*
$./tst
/bin/bash:./tst: Permission denied
$ sudo cat tst
#!/bin/bash
echo hello
С вашим отредактированным вопросом.
Часть #!
программы интерпретируется ядром как часть системного вызова exec()
. Так что, чтобы зайти так далеко, сценарий не обязательно должен быть читабельным.
Фактически в моем примере происходит то, что ядро преобразует мой вызов ./tst
в вызов /bin/bash./tst
.
Это преобразование объясняет, почему сценарии должны иметь r
доступ для обработки, а ядру достаточно x
для определения используемого интерпретатора.
sudo pkill -u bob -STOP
приостановить и
sudo pkill -u bob -CONT
для возобновления.