Ответы:
Основные две возможности командной строки:
su
и введите пароль root при появлении запроса.sudo
перед командой и введите свой пароль при появлении запроса.Это предпочтительный метод на большинстве систем, включая Ubuntu, Linux Mint, (возможно) Debian и другие. Если вы не знаете отдельный пароль пользователя root, используйте этот метод.
Судо требует, чтобы вы набрали свой собственный пароль. (Цель состоит в том, чтобы ограничить ущерб, если вы оставите клавиатуру без присмотра и разблокировки, а также убедиться, что вы действительно хотите выполнить эту команду, а это не было, например, опечаткой.) Она часто настроена так, чтобы не запрашивать несколько раз минут, чтобы вы могли запустить несколько sudo
команд подряд.
Пример:
sudo service apache restart
Если вам нужно запустить несколько команд от имени пользователя root, добавьте к каждой из них префикс sudo
. Иногда удобнее запускать интерактивную оболочку от имени пользователя root. Вы можете использовать sudo -i
для этого:
$ sudo -i
# command 1
# command 2
...
# exit
Вместо sudo -i
, вы можете использовать sudo -s
. Разница заключается в том, что -i
вновь я nitializes среды к вменяемым по умолчанию, в то время как -s
использует файлы конфигурации лучше или хуже.
Для получения дополнительной информации посетите веб-сайт sudo или введите man sudo
в своей системе. Судо очень настраивается; например, его можно настроить так, чтобы определенный пользователь мог выполнять только определенные команды от имени пользователя root. Прочтите справочную sudoers
страницу для получения дополнительной информации; используйте sudo visudo
для редактирования файла sudoers.
Команда su
существует в большинстве unix-подобных систем. Он позволяет запускать команду от имени другого пользователя, если вы знаете пароль этого пользователя. При запуске без указания пользователя su
по умолчанию будет использоваться корневая учетная запись.
Пример:
su -c 'service apache restart'
Команда для запуска должна быть передана с использованием -c
опции. Обратите внимание, что вам нужны кавычки, чтобы команда не анализировалась вашей оболочкой, а передавалась в целевую корневую оболочку su
.
Для запуска нескольких команд от имени пользователя root удобнее запускать интерактивную оболочку.
$ su
# command 1
# command 2
...
# exit
В некоторых системах вы должны быть в группе номер 0 (вызываемой wheel
), чтобы использовать su
. (Смысл в том, чтобы ограничить ущерб, если кто-то случайно утвердил пароль root.)
Если установлен пароль root, и вы им владеете, вы можете просто набрать root
в приглашении для входа и ввести пароль root. Будьте очень осторожны и избегайте запуска сложных приложений от имени пользователя root, поскольку они могут делать то, что вы не собирались. Вход в систему с правами суперпользователя в основном полезен в чрезвычайных ситуациях, таких как сбои диска или когда вы заблокировали свою учетную запись.
Однопользовательский режим или уровень выполнения 1 также дает вам привилегии root. Это предназначено, прежде всего, для ситуаций аварийного технического обслуживания, когда загрузка на многопользовательском уровне выполнения невозможна. Вы можете загрузиться в однопользовательском режиме, передав single
или emergency
в командной строке ядра. Обратите внимание, что загрузка в однопользовательском режиме отличается от обычной загрузки системы и входа в систему от имени пользователя root. Скорее, система только запустит службы, определенные для уровня выполнения 1. Как правило, это наименьшее количество служб, необходимых для использования работоспособной системы.
Вы также можете получить в однопользовательский режим с помощью команды telinit: telinit 1
; однако эта команда требует, чтобы вы уже получили права root с помощью другого метода для запуска.
Во многих системах загрузка в однопользовательском режиме предоставит пользователю доступ к корневой оболочке без запроса пароля. В частности, systemd
системы на основе будут запрашивать пароль root при загрузке таким образом.
Calife позволяет запускать команды от имени другого пользователя, вводя собственный пароль, если он авторизован. Это похоже на гораздо более распространенное sudo (см. Выше). Calife более легкий, чем sudo, но также менее настраиваемый.
Op позволяет запускать команды от имени другого пользователя, включая пользователя root. Это не полномасштабный инструмент для выполнения произвольных команд: печатаемые с op
последующим мнемонические сконфигурированной системным администратором , чтобы выполнить конкретную команду.
Super позволяет запускать команды от имени другого пользователя, включая пользователя root. Команда должна быть разрешена системным администратором.
Смотрите также Википедия .
Просто добавьте префикс к желаемой команде pkexec
. Имейте в виду, что хотя это работает в большинстве случаев, оно не работает универсально.
Смотрите man pkexec
для получения дополнительной информации.
kdesu
и kdesudo
являются графическими интерфейсами для su
и sudo
соответственно. Они позволяют запускать программы X Window от имени root без каких-либо хлопот. Они являются частью KDE . Тип
kdesu -c 'command --option argument'
и введите пароль пользователя root или введите
kdesudo -c 'command --option argument'
и введите свой пароль (если разрешено запускать sudo
). Если вы включите опцию «сохранить пароль» в KdeSu, вам придется вводить пароль root только один раз за сеанс входа в систему.
Ktsuss (« оставь su простым, глупым») - это графическая версия su.
BeesuBeesu - это графический интерфейс команды su, которая заменила Gksu в операционных системах на базе Red Hat. Он был разработан в основном для RHEL и Fedora.
gksu
а также gksudo
gksu
и gksudo
являются графическими интерфейсами для su
и sudo
соответственно. Они позволяют запускать программы X Window от имени root без каких-либо хлопот. Они являются частью Gnome . Тип
gksu command --option argument
и введите пароль пользователя root или введите
gksudo command --option argument
и введите свой пароль (если разрешено запускать sudo
).
gksu
и gksudo
устарели. Они были заменены PolicyKit в GNOME, и многие дистрибутивы (такие как Ubuntu) больше не устанавливают их по умолчанию. Вы не должны зависеть от их доступности или правильной работы.
Используйте один из методов в разделе «Запуск команды оболочки в качестве корневого раздела». Вам нужно будет убедиться, что ни DISPLAY
переменная среды, ни XAUTHORITY
среда не будут сброшены при переходе к root. Это может потребовать дополнительной настройки тех методов, которые выходят за рамки этого вопроса.
В целом, это плохая идея, в основном потому, что графические приложения будут читать и записывать файлы конфигурации как root, и когда вы попытаетесь использовать эти приложения снова как обычный пользователь, эти приложения не будут иметь разрешения на чтение своих собственных конфигураций.
sudo
будет работать только в том случае, если (1) он установлен и (2), если вы используете файл sudoers и ему разрешено выполнять операцию.
pkexec
заменяет gksu
/ gksudo
во многих дистрибутивах в настоящее время.
Используйте su
:
$ su -c command
или же
$ su
# command
# exit
В любом случае вам будет предложено ввести root
пароль. Для получения дополнительной информации см. Страницу руководства .
Поскольку вопрос не был специфичен для 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, чтобы пользователь мог выполнять практически все что угодно. (Я знаю, что вы можете заблокировать sudo, но по моему опыту большинство людей этого не делают)
Еще одним преимуществом RBAC является то, что вы можете сделать root учетной записью роли и назначить эту роль пользователям, которые могут стать пользователем root с помощью команды 'su' и пароля root. Пользователь root также сможет войти в однопользовательский режим, что лучше (на мой взгляд), чем модель Linux, где вы можете отключить пароль root passwd -d root
или заблокировать учетную запись root passwd -l root
, оба из которых делают вход в систему как root довольно тяжело когда что-то идет не так.
У Бена Роквуда есть отличный пост в блоге о RBAC, который можно прочитать в разделе Использование RBAC в (Open) Solaris .
Или вы можете дать некоторые команды сверхдержавы. Я говорю о специальных разрешениях, в которых команды выполняются с разрешения владельца.
Получите путь команды #which <command>
и установите SUID или SGID для этого пути.
PS - биты SUID и SGID следует указывать с осторожностью. Они могут сделать вашу систему небезопасной.