Я пытаюсь предоставить ограниченный доступ к определенным функциям с помощью ссылок, скриптов bash и SUID. Скрипт SUID не запускается с правами root

Я пытаюсь предоставить ограниченный доступ к определенным функциям с помощью ссылок, скриптов bash и SUID. Скрипт SUID не запускается с правами root

EDIT: этоВключен бит залипания Скрипт не может записать в корневой файлпохоже, что это похожая проблема

РЕДАКТИРОВАТЬ:Как использовать SetUID в скрипте оболочки для запуска от имени пользователя, не являющегося пользователем root?тоже очень похоже.

У меня есть скрипт, назовем его read.sh. У меня есть файл, назовем его secret.

# 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

Добавить псевдоним к .bashrcalias ALIAS='sudo /path/to/script.sh'" >> ~user/.bashrc

Теперь все члены группы могут запускать нужный скрипт от имени пользователя root.

Ответ бесстыдно украден изКак использовать SetUID в скрипте оболочки для запуска от имени пользователя, не являющегося пользователем root?(пользователь9517)

Связанный контент