Я пытаюсь предоставить ограниченный доступ к определенным функциям, используя ссылки, сценарии bash и SUID. Скрипт SUID не запускается с root-доступом
РЕДАКТИРОВАТЬ: этот сценарий с включенным липким битом не может записывать в корневой файл, похоже, аналогичная проблема.
РЕДАКТИРОВАТЬ: Как я могу использовать SetUID в сценарии оболочки для запуска от имени пользователя без полномочий root?тоже очень похоже.
У меня есть сценарий, назовем его read.sh. У меня есть файл, назовем его секретным.
# cd /home/normie
# echo "some stuff" > secret
# echo "#!/bin/bash" > read.sh
# echo "cat secret" >> read.sh
# chmod 600 secret
# chmod 4755 read.sh
# su normie
$ ./read.sh
<<Error about not having access to secret>>
Я что-то пропустил? Я думал, что бит SUID заставляет сценарий запускаться от имени владельца? Когда я запускаю следующее
# echo "touch newfile" > sumfile.sh
# chmod 4755 sumfile.sh
# su normie
$ ./sumfile.sh
$ ls -alh
<<newfile shows as owned by root>>
Что здесь происходит и как мне заставить это работать так, как я хочу? Я хочу, чтобы обычные пользователи выполняли определенный скрипт с полным root-доступом. (Я думал, это то, что сделал бит suid)