Как я выполняю команду как системный администратор (корень)

По умолчанию, htop списки каждый поток процесса отдельно, в то время как ps не делает. Для выключения дисплея потоков нажать H, или используйте меню "Setup / Display options", "Скройте потоки пространства пользователя". Это вставляет следующую строку Ваш ~/.htoprc или ~/.config/htop/htoprc (можно альтернативно поместить его там вручную):

hide_userland_threads=1

(Также hide_kernel_threads=1, переключенный путем нажатия K, но это 1 по умолчанию.)

Другая полезная опция является “Потоками дисплея в другом цвете” в том же меню (highlight_threads=1 в .htoprc), который заставляет потоки быть отображенными другим цветом (зеленый в теме по умолчанию).

В первой строке htop дисплей, существует строка как “Задачи: 377, 842 thr, 161 kthr; 2 выполнения”. Это показывает общее количество процессов, потоков пространства пользователя, потоков ядра, и распараллеливает в выполнимом состоянии. Числа не изменяются, когда Вы фильтруете дисплей, но признаки “thr” и “kthr” исчезают, когда Вы выключаете включение пользователя/потоков ядра соответственно.

Когда Вы видите несколько процессов, у которых есть все характеристики, общие кроме PID и связанных с ЦП полей (Хорошее значение, % ЦП, ВРЕМЯ +...), очень вероятно, что они - потоки в том же процессе.

66
18.01.2011, 22:52
4 ответа

Основные две возможности командной строки:

  • Использовать su и введите пароль root при запросе.
  • Поместить sudo перед командой, и вводят Ваш пароль при запросе.

Выполнение оболочки управляет как корень

sudo (предпочтенный если не выполнение графического дисплея)

Это - предпочтительный метод для большинства систем, включая Ubuntu, Linux Mint, (возможно) Debian и других. Если Вы не знаете отдельного пароля root, используйте этот метод.

Sudo требует, чтобы Вы ввели свой собственный пароль. (Цель состоит в том, чтобы ограничить повреждение при отъезде клавиатуры необслуживаемой и разблокированной, и также гарантировать, чтобы Вы действительно хотели выполнить ту команду, и это не было, например, опечатка.) Это часто настраивается для не выяснения снова в течение нескольких минут, таким образом, можно выполнить несколько sudo команды по очереди.

Пример:

sudo service apache restart

Если необходимо выполнить несколько команд как корень, префикс каждый из них с sudo. Иногда, более удобно выполнить интерактивную оболочку как корень. Можно использовать sudo -i для этого:

$ sudo -i
# command 1
# command 2
...
# exit

Вместо sudo -i, можно использовать sudo -s. Различие - это -i повторно инициализирует среду к нормальным значениям по умолчанию, тогда как -s использует Ваши конфигурационные файлы для лучше или для худшего.

Для получения дополнительной информации посмотрите sudo веб-сайт или тип man sudo в Вашей системе. Sudo очень настраивается; например, это может быть настроено, чтобы позволить определенному пользователю только выполнить определенные команды как корень. Читайте sudoers страница справочника для получения дополнительной информации; использовать sudo visudo отредактировать sudoers файл.

su

su команда существует в большинстве подобных Unix систем. Это позволяет Вам выполнить команду как другому пользователю, если Вы знаете что пароль пользователя. Когда выполнено без пользователя указал, su примет значение по умолчанию в корневую учетную запись.

Пример:

su -c 'service apache restart'

Команда для выполнения должна быть передана с помощью -c опция. Обратите внимание необходимость в кавычках так, чтобы команда не была проанализирована оболочкой, но передана неповрежденная корневой оболочке это su выполнения.

Для выполнения нескольких команд как корня более удобно запустить интерактивную оболочку.

$ su
# command 1
# command 2
...
# exit

В некоторых системах необходимо быть в группе номер 0 (названный wheel) использовать su. (Точка должна ограничить повреждение, если пароль root случайно пропущен кому-то.)

Вход в систему как корень

Если существует набор пароля root, и Вы обладаете им, можно просто ввести root при приглашении ко входу в систему и вводят пароль root. Будьте очень осторожны, и постарайтесь не запускать сложные приложения как корень, поскольку они могли бы сделать что-то, что Вы не предназначали. Вход в систему непосредственно как корень главным образом полезен в чрезвычайных ситуациях, таков как отказы диска или когда Вы заблокировали себя из своей учетной записи.

Однопользовательский режим

Однопользовательский режим или уровень выполнения 1, также дает Вам полномочия пользователя root. Это предназначается, прежде всего, для ситуаций с экстренным техобслуживанием, где начальная загрузка на многопользовательский уровень выполнения не возможна. Можно загрузиться в однопользовательский режим путем передачи single или emergency на командной строке ядра. Обратите внимание, что начальная загрузка в однопользовательский режим не является тем же как начальной загрузкой системы обычно и входом в систему как корень. Скорее система только запустит сервисы, определенные для уровня выполнения 1. Как правило, это - самое маленькое количество сервисов, требуемых иметь применимую систему.

Можно также добраться до однопользовательского режима при помощи команды telinit: telinit 1; однако, эта команда требует, чтобы Вы уже получили права пользователя root с помощью некоторого другого метода, для выполнения.

Во многих системах, загружающихся в однопользовательский режим, предоставит пользовательский доступ к корневой оболочке, не запрашивая пароль. В частности, systemd- основанные системы предложат Вам пароль root при начальной загрузке этого пути.

Другие программы

Calife

Calife позволяет Вам команды выполнения как другой пользователь путем ввода собственного пароля, если авторизовано. Это подобно намного более широко распространенному sudo (см. выше). Calife более легок, чем sudo, но также и менее настраивается.

Op

Op позволяет Вам команды выполнения как другой пользователь, включая корень. Это не полноценный инструмент для выполнения произвольных команд: Вы вводите op сопровождаемый мнемосхемой, настроенной системным администратором для выполнения определенной команды.

Супер

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

Выполнение графической команды как корень

См. также Википедию.

PolicyKit (предпочел при использовании GNOME),

Просто снабдите префиксом свою желаемую команду команду pkexec. Знайте, что, в то время как это работает в большинстве случаев, это не работает универсально.

Посмотрите man pkexec для получения дополнительной информации.

KdeSu, KdeSudo (предпочел при использовании KDE),

kdesu и kdesudo графические фронтенды к su и sudo соответственно. Они позволяют Вам запускать программы X Window как корень без преград. Они - часть KDE. Ввести

kdesu -c 'command --option argument'

и введите пароль root или тип

kdesudo -c 'command --option argument'

и введите свой пароль (если авторизовано для выполнения sudo). Если Вы проверяете, “сохраняют пароль” опцией в KdeSu, необходимо будет только ввести пароль root однажды на сессию входа в систему.

Другие программы

Ktsuss

Ktsuss (“сохраняют su простое, глупое”) является графической версией su.

Beesu

Beesu является графическим фронтендом к команде su, которая заменила Gksu в основанных на Red Hat операционных системах. Это было разработано главным образом для RHEL и Fedora.

Устаревшие методы

gksu и gksudo

gksu и gksudo графические фронтенды к su и sudo соответственно. Они позволяют Вам запускать программы X Window как корень без преград. Они - часть Gnome. Ввести

gksu command --option argument

и введите пароль root или тип

gksudo command --option argument

и введите свой пароль (если авторизовано для выполнения sudo).

gksu и gksudo являются устаревшими. Они были заменены PolicyKit в GNOME, и много дистрибутивов (таких как Ubuntu) больше не устанавливают их по умолчанию. Вы не должны зависеть от них являющийся доступным или работающий правильно.

Вручную с помощью одного из основанных на оболочке методов

Используйте один из методов в "выполнении команды оболочки как корневой раздел". Вы не должны будете гарантировать этому ни одного DISPLAY переменная среды, ни XAUTHORITY среда сбрасывается во время перехода к корню. Это может потребовать дополнительной конфигурации тех методов, которая выходит за рамки этого вопроса.

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

Редактирование файла как корень

Посмотрите, Как я редактирую файл как корень?

94
27.01.2020, 19:31
  • 1
    Это должно быть отмечено это sudo будет только работать если (1) это установлено и (2) если Ваше использование находится в sudoers файле и это позволило выполнять операцию. –  n0pe 17.08.2011, 15:19
  • 2
    это должно быть обновлено. pkexec заменяет gksu/gksudo в большом количестве дистрибутивов в наше время. –  strugee 18.11.2013, 05:30
  • 3
    @strugee - Вы собирались попытаться обновить это? Материал под Redhat не корректен также. –  slm♦ 04.12.2013, 05:44

Использовать su:

$ su -c command

или

$ su
# command
# exit

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

8
27.01.2020, 19:31

Так как вопросом не был конкретный Linux, вот то, как Вы достигаете той же цели в Солярисе 9 + (или Солярисе, которому Доверяют, 8):

Солярис, начиная с версии 9, включал комплект инструментов, нежно называемых RBAC или основанным на роли Управлением доступом.

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

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

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

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

Хорошая вещь о RBAC состоит в том, что нет никаких дополнительных полномочий, предоставленных самой команде или пользователю, только комбинации пользователя + команда. Таким образом, более безопасно, чем создание двоичного файла +s, или просто использование sudo заставить пользователя смочь выполнить в значительной степени что-либо. (Я знаю, что можно заблокировать вниз sudo, но по моему опыту большинство людей не делает),

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

У Ben Rockwood есть большое сообщение в блоге на RBAC, который может быть считан при Использовании RBAC на (Открытом) Солярисе.

3
27.01.2020, 19:31

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

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

P.S. - SUID и биты SGID должны быть даны с осторожностью. Они могут сделать Вашу систему небезопасной.

3
27.01.2020, 19:31

Теги

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