Как выполнить команду от простого пользователя без sudo?
Допустим есть простой пользователь. Знаю пароль суперюзера
могу сделать sudo rm что-нибудь
ввожу пароль - вуаля.
могу настроить так, чтобы не спрашивал пароля каждый раз для данной команды, но как сделать так, чтобы разрешить простому пользователю выполнять определенный набор команд (rm, ln, mv, start, stop, restart, status) без ввода четырех символов s, u, d, o?
Очень надо. Есть скрипт, который я менять не буду, он пытается выполнить команды без sudo, и затыкается на ln: Отказано в доступе. Пробовал вручную, действительно отказано в доступе без sudo
Тебе нужно отредактировать /etc/sudoers и позволить одному юзеру запускать твой файл с привелегиями рута
Файл обязательно нужно запретить редактировать данному юзеру
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
john ALL = NOPASSWD: /home/john/Documents/script.sh
не хотел сильно расписывать задачу, но видимо придется. я на windows машине запускаю ruby скрипт через стандартный cmd.exe этот скрипт (он не мной написан и изменять его не буду) получает доступ по ssh к моему ubuntu серверу и пытается навыполнять там кучу всяких команд и в лог пишет какие команды пытается выпонить и ответы сервера. так вот затыкается он на простом ln: отказано в доступе. Мне казалось очевидным разрешить тому юзеру, под которым ruby скрипт заходит выполнение некоторых командочек. Либо вкурить как натроить конфиг ruby-скрипта, чтобы он смог это делать сам (если таковая возможность там имеется). Вообще это деплой рельсового приложения с помощью capistrano 3, если о чем-то скажет
1. Можете установить на файл своего исполнимого скрипта SUID флаг, чтобы программа выполнялась от имени root (но такой способ может быть опасен).
2. Набор допустимых команд для пользователя или группы (для таких целей полезно создать) определяется в /etc/sudoers.
Чем вас не устраивает sudo? ... пароль там вводит каждый пользователь свой, а не root.
P.S. Это способ обычный для Linux ... а изобретательство велосипедов всегда чревато неприятностями ;-)
не хотел сильно расписывать задачу, но видимо придется. я на windows машине запускаю ruby скрипт через стандартный cmd.exe этот скрипт (он не мной написан и изменять его не буду) получает доступ по ssh к моему ubuntu серверу и пытается навыполнять там кучу всяких команд и в лог пишет какие команды пытается выпонить и ответы сервера. так вот затыкается он на простом ln: отказано в доступе. Мне казалось очевидным разрешить тому юзеру, под которым ruby скрипт заходит выполнение некоторых командочек. Либо вкурить как натроить конфиг ruby-скрипта, чтобы он смог это делать сам (если таковая возможность там имеется). Вообще это деплой рельсового приложения с помощью capistrano 3, если о чем-то скажет
dgb boulder = (operator) /bin/ls, /bin/kill, /usr/bin/who
Пользователь dgb может выполнять /bin/ls, /bin/kill, и /usr/bin/lprm -- но только как operator. Т.е.
так же есть такая команда как alias которая позволяет задать псевдонимы для любых команд в пределах текущего сеанса, это вам будет полезно, если нужно разрешить только определенные команды:
alias rm 'sudo rm'