РЕДАКТИРОВАТЬ: этот скрипт с включенным битом Sticky не может записывать в корневой файл, похоже, аналогичная проблема
РЕДАКТИРОВАТЬ: Как я могу использовать 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)
ПОЖАРНАЯ БАТА
1 ответ
Установить судо apt install sudo
Сделать соответствующих пользователей частью какой-либо группы groupadd group && usermod -g group user
Добавьте следующее в /etc/sudoers %group (ALL)=(root:root) NOPASSWD:/path/to/script.sh
Добавьте псевдоним в .bashrc alias ALIAS='sudo /path/to/script.sh'" >> ~user/.bashrc
Все члены группы теперь могут запускать рассматриваемый скрипт от имени пользователя root.
Ответ бесстыдно украден из Как я могу использовать SetUID в сценарии оболочки для запуска от имени пользователя без полномочий root? (пользователь9517)
ПОЖАРНАЯ БАТА