LINUX.ORG.RU
ФорумAdmin

Как программке присвоить права рута


0

0

Я где-то читал о том, то программкам можно присваивать для их исполнения права рута, наверное это можно сделать только из под рута :) но как это сделать ? P.S.: Желательно ответ для консоли, в Х'ах я видел какую-то пимпу SUID/SGID, похоже это то самое, но как сделать для консоли ?

anonymous

chown root your_prog; chmod u+s your_prog

sasha999 ★★★★
()

Извините пожалуйста, но так у меня не получилось (или я чего-нибудь не понял). Например у меня есть программка которая делает cd /root, но просто так она не работает, её нужно запускать только рутом. Я сделал этой программке chown root program; chmod u+s program; Попытался запустить рутом - все нормально, пытаюсь юзером - все по старому, что делать ? P.S.: то значит s ?

anonymous
()

Я также попробовал сделать a+s - права доступа изменились, но так как я хочу не работает

anonymous
()

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

anonymous
()

Первое: заходим как root. Второе: выполняем команду
# chown root.root <имя программы>
И третье:
# chmod 4755 <имя программы>
Для <имя программы> укажите на всякий случай полный путь, и если
все равно не работает я уже и не знаю что вам надо.
Хотя можете попробовать установить свойства через Midnight Commander,
если он конечно у вас есть.

justas
()

Странно. Вроде все так и делал. Не работает никак. Попробовал через MC, через KDE. Захожу из под рута, делаю файл exe, записываю в него #!/bin/bash на другой строчке ls /root , присваиваю правда доступа 4755 - проверяю: хозяин файла - рут, группа - рут, права доступа 4755 (-rwsr-xr-x), запускаю файл из под рута - все нормально, выводит директорию, запускаю из под юзера - permission denited. В Midnight Commander'e - устанавливаю флаги: "Присвоить UID при исполнении" "Присвоить GID при исполнении" - ничего не работает. Может у меня Linux неправильный :) ?

anonymous
()

все ясно :))) дело в том, что такие штуки с шелл-скриптами не проходят, нужен честный бинарник. хотя возможно можно как-то запускать bash для юзера чтобы он все-же выполнял суидные скрипты - не знаю, не пробовал да и нужды не было. если кто знает - интересно будет послушать как.

sasha999 ★★★★
()

Это не пройдет с любыми скриптами (perl, python и т.д.), т.к. на
деле все выполняет интерпретатор скрипта с правами пользователя
запустившего скрипт.

qwe ★★★
()

Попробуй так:

#su -c "ls -al /root"

Или так:

#su -
#ls -al /root

:0

sandman
()

Спасибо. Действительно - скрипты не работают. Я попытался сделать чистый бинарник в котором делал system("ls /root"); - тоже не полуичилось, но все остальное получается (например отредактировать файл в каталоге рута). Я не понял предыдущее сообщение, что значит ключ -c в su, он работает вроде как обычный su.

anonymous
()

su -c: выполнить команду


а насчет скриптов... suidperl любит ставится вместе с perl. отличается наличием SUID бита :)

anton
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.