У вас есть следующий код:
pids = `ps U "$name" -o pid | head -n -1`
Bash Ticky о пробеле, здесь. Просто удалите пробелы из PIDS = ...
, и он будет работать как предполагаемое:
pids=`ps U "$name" -o pid | head -n -1`
Невозможно переключиться на произвольный пользователь / группу без доступа суперпространства. Утилиты, такие как SU
и Sudo
SUDO
. Маловероятно, что были какие-либо файлы с SUID / SGID-битом, который этого не потребовал, поэтому вы нарушаете вещи через доску. Вероятно, есть двоичные файлы, использующие возможности (SetCap), а не в целом Carse Suid для рута (например, Ping
, хотя NoSuid
также остановит их от работы.
Это правда, что Binacies Suid - это риск безопасности, потому что получение выполнения кода с помощью уязвимости внутри одного из этих инструментов будет повысить привилегии за пределами своей модели безопасности. Тем не менее, это там по причине ...