Как выполнить команду от простого пользователя без sudo?

Допустим есть простой пользователь. Знаю пароль суперюзера
могу сделать sudo rm что-нибудь
ввожу пароль - вуаля.

могу настроить так, чтобы не спрашивал пароля каждый раз для данной команды, но как сделать так, чтобы разрешить простому пользователю выполнять определенный набор команд (rm, ln, mv, start, stop, restart, status) без ввода четырех символов s, u, d, o?
Очень надо. Есть скрипт, который я менять не буду, он пытается выполнить команды без sudo, и затыкается на ln: Отказано в доступе. Пробовал вручную, действительно отказано в доступе без sudo
  • Вопрос задан
  • 7701 просмотр
Пригласить эксперта
Ответы на вопрос 5
sim3x
@sim3x
Тебе не стоит давать права на rm, ln, etc

Тебе нужно отредактировать /etc/sudoers и позволить одному юзеру запускать твой файл с привелегиями рута
Файл обязательно нужно запретить редактировать данному юзеру

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
john ALL = NOPASSWD: /home/john/Documents/script.sh

обсуждение
ubuntuforums.org/showthread.php?t=1756370
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
1. Можете установить на файл своего исполнимого скрипта SUID флаг, чтобы программа выполнялась от имени root (но такой способ может быть опасен).

2. Набор допустимых команд для пользователя или группы (для таких целей полезно создать) определяется в /etc/sudoers.
Чем вас не устраивает sudo? ... пароль там вводит каждый пользователь свой, а не root.
P.S. Это способ обычный для Linux ... а изобретательство велосипедов всегда чревато неприятностями ;-)
Ответ написан
Immortal_pony
@Immortal_pony
ln - это такая же программа, как и все остальные в системе. Найти исполняемый файл можно так:
type -a ln

... и далее дать права необходимому пользователю на запуск этого файла.
Ответ написан
Комментировать
bingo347
@bingo347
Crazy on performance...
Запускайте Ваш скрипт через sudo
Либо sudo su - переключит текущую консоль на пользователя root, откуда уже запускаете свой скрипт
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
> rm, ln, mv, start, stop, restart, status
Рута пользователю выдайте. Этих команд достаточно, чтобы рута получить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы