У меня есть script.sh, который должен быть запущен как user2. Тем не менее, этот скрипт может быть запущен только под user1 в моем приложении.
Я хотел бы выполнить следующую команду:
su user2 -C script.sh
но иметь возможность работать без пароля.
Я также хочу, чтобы это было очень ограничительным, так как в user1 можно только запустить script.sh под user2 и ничего больше.
Я пытался сделать это с файлом sudoers и просто бесконечно запутался после нескольких часов попыток.
Если кто-то может предоставить явный пример того, как это можно сделать (вместо чего-то общего, например, использовать sudoers), это будет с благодарностью.
Ответы:
Позвоните
visudo
и добавьте это:В пути команды должен быть абсолютным ! Тогда звоните
sudo -u user2 /home/user2/bin/test.sh
изuser1
снаряда. Готово.источник
попробуйте запустить:
Это запустит команду под именем пользователя, если у вас есть права на sudo как этого пользователя.
источник
sudo su -c "Your command right here" -s /bin/sh otheruser
su username -c "command"
.screen
как другой пользователь, это может быть полезно - linuxquestions.org/questions/linux-software-2/…username
(или в вопросеuser2
) сам пароль, это не позволит пропустить подсказку для него. другой ответ: пароль не требуется, и user1, и user2.Вышеприведенная команда верна, но в Red Hat, если selinux применяет ее, она не позволит cron запускать сценарии от имени другого пользователя. пример;
execl: couldn't exec /bin/sh execl: Permission denied
Мне пришлось установить setroubleshoot и setools и запустить следующее, чтобы это сделать:
источник