Запуск команды с привилегиями root без SUDO и не от имени пользователя root

Вас может заинтересоватьQubes OS ,который позволяет запускать множество контейнеров Linux (или любой другой ОС ), используя один или несколько шаблонов ОС.

Например, мы можем использовать шаблон Debian , установить на него необходимые программные пакеты, а затем запустить контейнеры (личные, рабочие и эксперименты).

В этом сценарии все, что вы будете делать в контейнере экспериментов, никак не повлияет на сам шаблон или какой-либо другой контейнер.

В Qubes OS VM Manager вы также можете делать снимки , как и в VirtualBox.

1
25.03.2020, 16:34
2 ответа

Это можно сделать с помощью атрибута файла set user id:

# chmod u+s /usr/bin/sleep
# sleep 1000&
# ps aux | grep -w sleep | grep -v grep
root   1234  0.0  0.0  ...  0:00 sleep 1000

ЭТО БОЛЬШАЯ УГРОЗА БЕЗОПАСНОСТИ!

Если вы хотите запустить что-то как кто-то другой (, а не root, как здесь ), это возможно:

# chown pulse /usr/bin/sleep
# chmod u+s /usr/bin/sleep
# sleep 1000&
# ps aux | grep -w sleep | grep -v grep
pulse   1234  0.0  0.0  ...  0:00 sleep 1000

Если вы не являетесь пользователем root, вы можете разрешить кому-то другому выполнять команду от вашего имени:

# id -nu
john
# ls -l a.out
-rwxr-x--- 1 john users   50923 Mar 25 10:17 a.out
# chmod go+rx,u+s a.out
# ls -l a.out
-rwsr-xr-x 1 john users   50923 Mar 25 10:17 a.out

(обратите внимание на "s" вместо "x" в "rwx...". Это означает, что флаг set user id установлен)

Тогда, какjane:

# id -nu
jane
# ~john/a.out

Эта команда a.outбудет запущена как john.

0
19.03.2021, 02:32

How can you run a command (e.g. iftop or similar) that requires root privileges from a non-root user and without using SUDO in front?

Есть по крайней мере 2 способа разрешить не -пользователи root используют iftop, но им обоим требуется root-доступ.

Более безопасный метод — назначить возможность cap_net_rawбинарному файлу iftop:

sudo setcap cap_net_raw+ep "$(command -v iftop)"

Менее безопасный метод — назначить setuid root:

sudo chmod +s "$(command -v iftop)"

Alternatively, how can you give root privileges to a user without becoming root?

Вы не можете.

2
19.03.2021, 02:32

Теги

Похожие вопросы