it-swarm-ru.tech

Как запустить команду от имени системного администратора (root)

Мне нужно запустить команду с правами администратора. Кто-то сказал, что я должен запустить команду от имени пользователя root. Как мне это сделать?

66
Stefan

Используйте su:

$ su -c command

или

$ su
# command
# exit

В любом случае вам будет предложено ввести пароль root. Для получения дополнительной информации см. страница руководства .

8
Steven D

Или вы можете дать некоторые команды сверхдержавы. Я говорю о специальных разрешениях, в которых команды выполняются с разрешения владельца.

Получить путь команды по #which <command> и ​​установите SUID или SGID для этого пути.

Постскриптум - Биты SUID и SGID следует указывать с осторожностью. Они могут сделать вашу систему небезопасной.

3
Ayush Goyal

Поскольку вопрос не был специфичен для Linux, вот как вы достигаете той же цели в Solaris 9+ (или Trusted Solaris 8):

Solaris, начиная с версии 9, включает в себя набор инструментов, ласково именуемых RBAC или Role Based Access Control.

Суть RBAC заключается в том, что посредством предоставления авторизаций и прав пользователям и/или ролям или предоставления ролей пользователям вы можете создавать невероятно детализированные модели для того, кто может работать с какими привилегиями.

По сути, вы идентифицируете авторизацию в/etc/security/auth_attr, а затем предоставляете их пользователям или ролям в/etc/user_attr.

Вы определяете профили в/etc/security/prof_attr. Затем вы связываете команды с этими профилями в/etc/security/exec_attr с последующим назначением этих профилей пользователям в файле/etc/user_attr.

После того, как все это сделано, вы запускаете pfexec <command> для выполнения команды с привилегиями или полномочиями, которые предоставлены то пользователю для команды то.

Приятной особенностью RBAC является то, что нет никаких дополнительных привилегий, предоставляемых самой команде или пользователю, только комбинации user + command. Так что это безопаснее, чем делать бинарные + или просто использовать Sudo, чтобы пользователь мог выполнять практически все что угодно. (Я знаю, что вы можете заблокировать судо, но по моему опыту большинство людей не делают)

Еще одним преимуществом RBAC является то, что вы можете сделать root учетной записью роли и назначить эту роль пользователям, которые могут стать пользователем root с помощью команды 'su' и пароля root. Пользователь root также сможет войти в однопользовательский режим, что лучше (на мой взгляд), чем модель Linux, где вы можете отключить пароль root passwd -d root или заблокируйте учетную запись root passwd -l root, оба из которых делают вход в систему как root довольно сложным, когда что-то идет не так.

У Бена Роквуда есть отличный пост в блоге по RBAC, который можно прочитать по адресу Использование RBAC в (Open) Solaris .

3
Tim Kennedy