LINUX.ORG.RU

Как при помощи chmod u+s заставить скрипт запускать программу от имени своего владельца?

 ,


0

1

Скажем в bash-скипте делается вызов какой нибудь программы, пусть это будет браузер firefox. Файл скрипта имеет права chmod u+s, но он не запустит firefox от имени владельца файла, а желаемый результат запустить firefox через скрипт от имени владельца скрипта (без ввода пароля).

★★★
cp /bin/bash /usr/local/bin/bash_user1
chown user1 /usr/local/bin/bash_user1
chmod u+s /usr/local/bin/bash_user1

Твой скрипт

#!/usr/local/bin/bash_user1 -p
...
exec firefox $@

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)
Ответ на: комментарий от futurama

Чего уж мелочиться, делай chown root /bin/bash chmod u+s /bin/bash и запускай все от имени всех /сарказм

Правильно через sudo, и через su -c "firefox" user

legolegs ★★★★★
()

Везде написано: скрипты суидными не бывают.

akk ★★★★★
()
Ответ на: комментарий от futurama

Да. На лоре надо повторять правильные ответы и ругать неправильные. Это повышает качество ноосферы.

legolegs ★★★★★
()

SUID ставится на бинарники. Скрипт — не бинарник.

kirk_johnson ★☆
()
Ответ на: комментарий от legolegs

su -c "firefox" user

у меня так не работал фаерфокс. пришлось сделать через настройки KDE запуск от другого пользователя

teod0r ★★★★★
()

как вариант shebang: «#!/usr/bin/sudo sh» и разрешить в sudoers запуск

недостаток: захоркоден путь к судо

anonymous
()

Надо скрипт изначально запускать от имени желаемого пользователя, типа:

# sudo -s -u USER -g USERGROUP /scriptpath/scriptname

либо примерно так же в скрипте вызывать FF (не очень понятно, какая задача изначально стоит).

Понятно, что для FF ещё придется, как минимум, X запустить и прописать переменную окружения DISPLAY.

Если это всё хочется делать из скриптов инициализации (типа rc.local), то столкнёшься ещё и с тем, что после окончания инициализации всё это запущенное закроется :)

Чтобы не закрывалось, изучи работу команды nohup, запускать FF и X надо будет с &, а так же выставлять sleep для ожидания корректного завершения скриптов и отвязки от консолей.

slamd64 ★★★★★
()

В sudo не разбираюсь, решил не заморачиваться и сделал через su, благо что пользователь без пароля:

echo "" | su -c "программа >/dev/null 2>&1" Пользователь 2>/dev/null &

normann ★★★
() автор топика
Последнее исправление: normann (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.