Как войти в linux как root - Flm-Krym.ru
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд (пока оценок нет)
Загрузка...

Как войти в linux как root

Администратор в Ubuntu, или Что такое sudo

Содержание

В любой Linux-системе обязательно есть один привилегированный пользователь — root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет.

Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.

Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo .

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

Что такое sudo

sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo.

Где используется sudo

sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic – это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль.

Однако не все программы, требующие административных привилегий, автоматически запускаются через sudo. Обычно запускать программы с правами администратора приходится вручную.

Запуск графических программ с правами администратора

Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt + F2 .

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

Вместо gksudo можно подставить gksu , кроме того, пользователи KDE должны вместо gksudo писать kdesu . У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска

Запуск программ с правами администратора в терминале

Для запуска в терминале команды с правами администратора просто наберите перед ней sudo :

У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и сделано в целях безопасности, просто вводите до конца и нажимайте Enter . После ввода пароля указанная команда исполнится от имени root.

Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале

Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды

с правами root исполнится только cat , поэтому файл result.txt может не записаться. Нужно либо писать sudo перед каждой командой, либо временно переходить под суперпользователя.

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

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

После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на su , однако: – sudo -s – не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего sudo -s, что обычно очень удобно. – sudo -i – сменит так же и домашний каталог на /root.

Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl + D .

Использование традиционного root аккаунта и команды su

Ubuntu 11.04 и младше

Для входа под root достаточно задать ему пароль:

Потом на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.

Ubuntu 11.10 и старше

Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.

1. Устанавливаем root пароль. Введите в терминал:

2. Включаем пункт «Введите логин». Введите в терминал:

В конце файла допишите:

3. Перезагружаем lightdm. Введите в терминал:

Все, на экране входа появится пункт «Логин». В поле логин вводим «root», в поле пароль – пароль, который мы задали на первом этапе.

Для обратной блокировки учетной записи root вам потребуется откатить изменения в настройках lightdm, а также заблокировать учетную запись root командой в терминале:

Настройка sudo и прав доступа на выполнение различных команд

sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка

Подробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив

Разрешение пользователю выполнять команду без ввода пароля

Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:

И в конец файла дописать строку

Создание синонимов (alias`ов)

Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: откройте файл .bashrc, находящейся в вашем домашнем каталоге

и добавьте в конец файла строки

Время действия введённого пароля

Возможно, вы хотите изменить промежуток времени, в течение которого sudo действует без ввода пароля. Этого легко добиться добавив в /etc/sudoers (visudo) примерно следующее:

Здесь sudo для пользователя foo действует без необходимости ввода пароля в течение 20 минут. Если вы хотите, чтобы sudo всегда требовал ввода пароля, сделайте timestamp_timeout равным 0.

sudo не спрашивает пароль

sudo без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было.

Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo , то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:

Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:

Есть и другие варианты решения проблемы, небольшое обсуждение здесь.

Root Linux — инструкции учетной записи суперпользователя

Учетная запись «root» на компьютере Linux — это учетная запись с полными привилегиями. Корневой доступ часто необходим для выполнения команд в Linux, особенно команд, которые влияют на системные файлы. Рекомендуется запрашивать root-доступ только при необходимости, а не входить в систему как пользователь root. Это может помочь предотвратить случайное повреждение важных системных файлов.

Получение root-доступа в терминале

Откройте терминал.

Введите «Su-».

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

Введите пароль root при появлении запроса

После ввода «Su-» будет предложено ввести пароль root.

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

Проверьте командную строку.

Когда вы вошли в систему как пользователь root, командная строка должна заканчиваться # вместо $

Введите команды, которые требуют root-доступа.

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

Читайте также:  Как часто можно делать мелирование

Разблокировка учетной записи root

Ubuntu (и несколько других дистрибутивов) блокирует учетную запись root, чтобы обычный пользователь не мог получить к ней доступ. Разблокировка учетной записи root позволит вам войти в систему как root.

Откройте терминал

Вводим « sudo passwd root» .

При запросе пароля введите ваш пароль пользователя

Установите новый пароль.

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

Снова заблокируйте учетную запись root.

Если вы хотите заблокировать учетную запись root, введите следующую команду, чтобы удалить пароль и заблокировать root:

«sudo passwd -dl root»

Вход в систему как Root

Рассмотрите возможность использования других методов для получения временного корневого доступа. Вход в систему как root не рекомендуется для регулярного использования.

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

Войдите в систему как пользователь root при выполнении аварийного ремонта, например, при сбое диска или восстановлении заблокированных учетных записей.

Использование sudo или su вместо входа в систему как root поможет предотвратить непреднамеренный ущерб при входе в систему как root.

Использование этих команд дает пользователю возможность подумать о команде до нанесения серьезного ущерба.

Некоторые дистрибутивы, такие как Ubuntu, оставляют корневую учетную запись заблокированной, пока вы не разблокируете ее вручную.

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

Введите . root как пользователь при входе в Linux.

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

Введите пароль пользователя root в качестве пароля пользователя.

Избегайте запуска сложных программ при входе в систему как root.

Существует вероятность того, что программа, которую вы намереваетесь запустить, окажет негативное влияние на вашу систему, когда у нее есть root-доступ. Настоятельно рекомендуется использовать sudo или su запускать программы, а не входить в систему как пользователь root.

Сброс пароля root или администратора

Сбросьте пароль root, если он был забыт.

Если вы забыли пароль , корневой и пароль пользователя, вам необходимо загрузиться в режиме восстановления, чтобы изменить их. Если вы знаете свой пароль пользователя и вам необходима смена пароля пользователя root, просто введите sudo passwd root , введите пароль пользователя, а затем создайте новый пароль пользователя root.

Перезагрузите компьютер и удерживайте левую кнопку . после экрана BIOS.

Это откроет меню GRUB. Возможно, придется попробовать данную процедуру несколько раз.

Выберите режим восстановления .

Это загрузит режим восстановления для вашего текущего дистрибутива.

Выберите вариант из меню.

Это запустит терминал, когда вы вошли в систему как пользователь root.

Диск с разрешениями на запись.

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

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

После того как вы вошли в систему как пользователь root и изменили права доступа, вы можете создать новый пароль для любой учетной записи:

  • Введите и нажмите . Если вам нужно изменить пароль root, введите .passwdaccountName passwd root
  • Введите новый пароль дважды при появлении запроса.

Перезагрузите компьютер после сброса паролей.

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

Удаленный вход как root в ubuntu

В моем проекте мне нужно установить какой-то пакет удаленно. Если мне нужно войти в debian, я говорю:

он успешно входит в систему.

У меня есть логин в ubuntu в прямом использовании

это бросает сообщение об ошибке в

Как решить эту проблему?

10 Ответов

проверьте /etc/ssh/sshd_config , является ли настройка PermitRootLogin yes ниже # Authentication: . Если нет yes , он не разрешает вход в систему как root.

вы можете изменить его на yes .

Затем, перезапустите службу ssh, чтобы применить изменения: sudo service sshd restart

По умолчанию пароль учетной записи Root заблокирован в Ubuntu.

Он также говорит:

Пожалуйста, имейте в виду, что значительное число пользователей Ubuntu являются новичками Linux. Существует кривая обучения, связанная с любым OS и многими новыми пользователи пытаются вешать ярлыки на включение учетной записи root, вход в как root, так и изменение владельца системных файлов.

Он подробно рассказывает о том, почему это было сделано таким образом.

Включение учетной записи root:

Чтобы включить учетную запись Root (т. е. Установить пароль) использовать:

Используйте на свой страх и риск!

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

Не включайте учетную запись root. Не устанавливайте пароль для учетной записи root.

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

Откройте /etc/ssh/sshd_config и проверьте, имеет ли значение PermitRootLogin значение yes . Если нет, то установите его в да и перезапустите ssh с sudo service ssh restart

Создайте каталог .ssh в домашнем каталоге root, если он не существует, и убедитесь, что у него есть строгие разрешения:

Создайте пару открытый / закрытый ключ в системе, из которой вы хотите войти.

Скопируйте открытый ключ в свою обычную учетную запись пользователя.

Добавьте свой открытый ключ к .ssh/authorized_keys корневого каталога и убедитесь, что файл имеет строгие разрешения:

С помощью этой настройки вы сможете войти в систему как root, используя свой закрытый ключ.

Если вы ранее включили учетную запись root , обязательно отключите ее сейчас:

Вы можете установить пароль для root, но это не рекомендуется и может создать угрозу безопасности. Но если у вас есть учетная запись пользователя в целевой системе, которая имеет учетные данные sudo, вы можете войти в систему как пользователь:

а затем сделать то, что вы хотите с помощью sudo или получить корень shell рекомендуемым способом:

а потом займись хозяйством. Вместо ‘sudo su’ вы также можете использовать ‘sudo -i’, что эквивалентно, или ‘sudo -s’, который сохраняет текущую среду.

измените свой /etc/sshd_config делать:

найдите строку, имеющую PermitRootLogin в разделе аутентификации и раскомментируйте PermitRootLogin или установите PermitRootLogin да . Или просто добавьте эту строку в конец файла:

Далее вы будете перезапускать ssh демон делать

в зависимости от вашего дистрибутива linux Теперь вы войдете через ssh с вашей учетной записью root Предупреждение: по соображениям безопасности это не рекомендуется. Что вы можете сделать, это войти в систему с любым другим accound через ssh и в вашем сеансе пользователя сделать:

чтобы продолжить сеанс под учетной записью root

Я думаю, что единственный раз, когда я когда-либо устал входить в систему как root, был первый раз, когда я использовал AWS EC2, и я попытался долго войти в качестве root, потому что я знал, что он существует. Имя пользователя EC2-пользователей.

Удаленный хост позволяет пользователю подключаться к sudo без запроса дополнительного пароля.

ssh-copy-id был запущен или правильные ключи скопированы на удаленный хост, так что пользователь может подключиться снова без пароля через ssh

Все, что отличается, было добавлено слово sudo перед выполнением команды

Если есть проблемы безопасности с ключами и т. д., то вы можете взглянуть на язык под названием expect-используя сценарий expect, вы сможете использовать ssh / telnet, что бы это ни было на удаленном хосте и отправлять пароли и т. д. Соответственно

  1. Редактировать файл sshd_config vi /etc/ssh/sshd_config
  2. Закомментируйте #PermitRootLogin without-password под аутентификацией:
  3. вставить ниже PermitRootLogin yes
  4. Сохранить файл.
  5. Перезапустите службу ssh service ssh restart

По умолчанию пароль учетной записи Root заблокирован в системах на базе Debian, таких как Ubuntu:

Переключиться на пользователя учетной записи root :

Теперь установите пароль для учетной записи root:

Просто добавить пароль для root недостаточно.

Входящие соединения ssh должны быть включены, как показано ниже:

Отредактируйте /etc/ssh/sshd_config и найдите следующую строку:

Просто замените слово without-password на yes , как в следующей строке:

Затем перезапустите SSH:

Наконец перезагрузите систему:

Редактировать /etc/ssh/sshd_config файл и измените строку, которая говорит “PermitRootLogin forced-commands-only” на “PermitRootLogin without-password”.

Перезапустите сервер sshd с параметром ” service sshd restart “.

Отредактируйте файл /root/.ssh/authorized_keys . Этот файл должен содержать только одну строку. Он начинается с “echo” или “command … sleep 10;”, то вы можете увидеть “ssh-rsa [big long key]”. Удалите текст с начала строки до тех пор, пока он не скажет “ssh-rsa”.

Читайте также:  Как изменить масштаб экрана

SSH ваша машина использует root с вашей клавиатурой

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

Я новичок в linux. когда я перечисляю файлы в папке 1, я вижу ниже результат -rwxrwxrwx 1 root root 920 Jun 3 10:36 file1.xsd -rwxrwxrwx 1 root root 920 Jun 3 10:36 file2.xsd drwxrwxrwx 2 ubuntu.

Название в значительной степени подводит итог моему вопросу. Я просто хочу узнать, как отключить удаленный вход в мой phpmyadmin. Я бы предпочел только иметь возможность войти в phpmyadmin из.

Вопросы, как войти в Amazon были обсуждены для различных сред на stackoverflow: PHP Curl-проблема с файлами cookie Удаленный вход Amazon (KDP ) Amazon вход с помощью Webrequest Программно войти в.

Мне нужно включить и выключить удаленный вход через terminal или applescript. Мне нужно, чтобы он был совместим с os x leopard. Спасибо!

У меня есть существующий удаленный сайт, который имеет аутентификацию для доступа, теперь я хочу объединить этот сайт в своем собственном сайте с помощью iframe. Есть ли какое-либо решение, которое.

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

У меня есть сервер под управлением ubuntu 14.04 Что находится внутри /root/sent? В настоящее время он занимает 34 ГБ моего серверного пространства. Это безопасно, чтобы удалить его?

Я установил сервер LDAP на своей виртуальной машине (centOS), работающей на windows, теперь я хочу получить к нему доступ из windows Итак, как включить удаленный доступ к серверу LDAP. Я попытался.

Я могу получить однопользовательскую установку, работающую нормально для данного пользователя ubuntu. С однопользовательской установкой, после установки rvm, вы просто добавляете источник к нему в.

Есть ли простой способ установить пароль mysql root на Ubuntu, если у меня есть корневой доступ, и закрытие базы данных в ближайшее время не является проблемой?

Как запустить терминал как root?

Когда мы хотим запускать программы под root, мы используем sudo , gksu , gksudo и т. д. Теперь мой вопрос: как мы можем запускать Terminal в качестве пользователя root в Terminal?

Я попытался использовать gksudo terminal и gksu terminal , но ничего не происходит. и запустив sudo terminal , я получу ошибку sudo: terminal: command not found .

5 ответов

Что вы действительно хотите

То, что вы, вероятно, хотите, это оболочка с правами root, как если бы она была создана из корневого входа (например, со всеми переменными среды, заданными для root, а не для вашего пользователя).

Предполагая, что это вам нужно, поскольку steeldriver предложил , просто запустите

У вас будет корневая оболочка, в которой команды, которые вы вводите, будут выполняться с правами root (без предшествующих им sudo ).

Но если вы действительно хотите запустить приложение эмулятора графического терминала как root, прочитайте дальше. Я представляю два способа: с gksu / gksdo и с командой sudo .

С gksu / gksudo

Поскольку у вас есть gksu , вы можете запустить gnome-terminal как root с любым из:

(Так как gksu по умолчанию установлено в sudo-mode в Ubuntu, они должны быть эквивалентными.)

Запуск gnome-terminal как root без управляющего терминала без полномочий:

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

Обычно это достигается с помощью Alt + F2 . Появится текстовое поле с надписью Запустить команду (или подобное), и вы можете ввести свою команду.

Например, это похоже на Unity:

И как в MATE (GNOME Flashback / Fallback, Xfce, LXDE похожи):

Обратите внимание, что это работает с gksu и gksudo , потому что они используют графическое диалоговое окно проверки подлинности. Если вы должны были нажать Alt + F2 и запустите sudo . , тогда вы не сможете взаимодействовать с запросом пароля.

С sudo

Если у вас нет пакета gksu, и вы не хотите его устанавливать, вы можете использовать:

Флаг -H важен, потому что он устанавливает переменную среды HOME в /root вместо домашнего каталога вашего собственного пользователя. Вы должны not использовать sudo gnome-terminal , так как он может нарушить конфигурацию gnome-терминала, принадлежащую пользователю без полномочий root. Для получения дополнительной информации об этом см .:

  • RootSudo в вики помощи Ubuntu
  • Почему пользователи никогда не будут использовать обычный sudo для запуска графических приложений?

( sudo -i gnome-terminal тоже хорошо).

Избавление от управляющего терминала без полномочий:

Если вы (1) откройте графический терминал, (2) запустите в нем что-то вроде sudo -H gnome-terminal , чтобы создать новый графический корневой терминал и (3) закройте исходный графический терминал без корневого доступа . затем также завершится корневой графический терминал.

Это связано с тем, что корневой графический терминал отправляется SIGHUP , когда терминал который владеет, он выходит.

Чтобы предотвратить это, вы можете подумать, что вместо этого вы можете запустить графический корневой терминал:

Но это будет работать, только если sudo не запрашивает пароль. Если это произойдет, вы не увидите приглашение пароля.

Один из способов , чтобы обойти это:

sudo -v существует только для этой цели. Как объясняется в man sudo , оно “обновляет [s] кэшированные учетные данные пользователя, аутентифицируя при необходимости “.

Обратите внимание, что это все равно не будет работать, если вы запускаете непосредственно из командной строки Alt + F2 рабочего стола вашего рабочего стола “, потому что вам по-прежнему нужен терминал для введите свой пароль для sudo -v .

Или вы можете сделать это в том, что можно назвать традиционным способом, приостановить задание после его запуска:

  1. Запустите sudo -H gnome-terminal из исходного графического терминала без полномочий root.
  2. Введите свой пароль в соответствии с запросом sudo . Запустится графический терминал.
  3. В терминале без полномочий root нажмите Ctrl + Z , чтобы приостановить корневой терминал. Хотя корневой терминал приостановлен, вы не можете его использовать; его интерфейс не будет реагировать на ваши действия.
  4. Выйдите из управляющего терминала без полномочий root с exit . Задание графического корневого терминала будет автоматически отменено и отменено терминалом без полномочий root.

Но предположим, что вы хотели продолжать использовать оригинальный, не-корневой терминал. Затем вы можете запустить bg N , где N – это номер задания графического корневого терминала, чтобы возобновить работу в фоновом режиме. Вы можете запустить jobs , чтобы найти N , но вам, вероятно, не придется – этот номер был показан как [N] при нажатии Ctrl + Z . Например:

Использование команды sudo в Linux

&nbsp &nbsp Команда sudo ( s ubstitute u ser and do , подменить пользователя и выполнить ) позволяет строго определенным пользователям выполнять указанные программы с административными привилегиями без ввода пароля суперпользователя root . Если быть точнее, то команда sudo позволяет выполнять программы от имени любого пользователя, но, если идентификатор или имя этого пользователя не указаны, то предполагается выполнение от имени суперпользователя root . Таким образом, использование sudo позволяет выполнять привилегированные команды обычным пользователям без необходимости ввода пароля суперпользователя root . Список пользователей и перечень их прав по отношению к ресурсам системы может быть настроен оптимальным образом для обеспечения комфортной и безопасной работы. Например, команда sudo в Ubuntu Linux, используется в режиме, позволяющем выполнять любые задачи администрирования системы без интерактивного входа под учетной записью root .

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

Командная строка sudo может быть использована в следующих форматах:

sudo -h | -K | -k | -V

sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]

sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]

sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [ ]

sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file

Параметры командной строки:

-A, –askpass – использовать вспомогательную программу для ввода пароля

-b, –background – выполнить команду в фоновом режиме

-C, –close-from=num – закрыть все дескрипторы файлов >= num

-E, –preserve-env – сохранить пользовательское окружение при выполнении команды

-e, –edit – редактировать файлы вместо выполнения команды

-g, –group=group – выполнить команду от имени или ID указанной группы

-H, –set-home – установить для переменной HOME домашний каталог указанного пользователя

-h, –help – показать справку и выйти

-h, –host=host – выполнить команду на узле (если поддерживается модулем)

-i, –login – запустить оболочку входа в систему от имени указанного пользователя; также можно задать команду

-K, –remove-timestamp – полностью удалить файл с timestamp

-k, –reset-timestamp – объявить недействительным файл timestamp

-l, –list – показать список прав пользователя или проверить заданную команду; в длинном формате используется дважды

-n, –non-interactive – автономный режим без вывода запросов пользователю

-P, –preserve-groups – сохранить вектор группы вместо установки целевой группы

-p, –prompt=prompt – использовать указанный запрос пароля

-S, –stdin – читать пароль из стандартного ввода

-s, –shell – запустить оболочку от имени указанного пользователя; также можно задать команду

-U, –other-user=user – в режиме списка показывать права пользователя

-u, –user=user – выполнить команду (или редактировать файл) от имени или ID указанного пользователя

-V, –version – показать сведения о версии и выйти

-v, –validate – обновить временную метку пользователя без выполнения команды

— – прекратить обработку аргументов командной строки

Примеры использования команды sudo :

sudo –l – отобразить список команд, доступных для выполнения текущему пользователю. Кроме списка команд отображаются параметры среды, которые будут применяться при их выполнении.

sudo –ll – отобразить список команд, доступных для выполнения текущему пользователю в длинном (расширенном) формате.

В данном формате вместо краткого синтаксиса для списка разрешенных команд в виде (ALL : ALL) ALL отображается подробное описание прав пользователя:

sudo lshw -C network – отобразить информацию о сетевом оборудовании с правами суперпользователя root

sudo –l –U user1 – посмотреть список команд, доступных для выполнения пользователю user1 . Для выполнения данной команды пользователь должен быть root или иметь право на выполнение команды sudo -l , что обеспечивается настройками утилиты sudo в файле /etc/sudoers

sudo ipmitool sensor – выполнить команду ipmitool sensor с правами root .

sudo su – выполнить команду su , т.е. создать сеанс суперпользователя root

sudo -i – запустить командную оболочку с правами суперпользователя root . Для выполнения данной команды пользователь должен иметь право на выполнение программы оболочки в среде sudo , например – /bin/bash

sudo ls /usr/local/protected – получить список файлов каталога, доступного только root

sudo -u user2 ls

– получить список файлов домашнего каталога пользователя user2

www/htdocs/index.html – редактировать файл

www/htdocs/index.html от имени пользователя www

sudo -g adm view /var/log/syslog – просмотреть файл системного журнала, доступного только суперпользователю root и членам группы adm

sudo -u user1 -g users2 vi /home/users2/textfile.txt – редактировать текстовый файл как пользователь user1, с принадлежностью к первичной группе users2

sudo -E /usr/bin/firefox – запустить браузер firefox от имени суперпользователя root , сохранив параметры среды текущего пользователя. Возможность выполнения команд с сохранением среды пользователя должна быть разрешена параметром SETENV в настройках файла конфигурации sudo

Файл конфигурации /etc/sudoers

Настройки sudo определяется содержимым файла /etc/sudoers . Поскольку ошибочные данные в данном файле могут привести к серьезным проблемам доступа к ресурсам системы, рекомендуется выполнять его изменение с помощью специального редактора sudoedit ( в некоторых дистрибутивах – visudo ), который поддерживает функции проверки синтаксиса и значительно снижает риск создания неработоспособной конфигурации sudo .

Содержимое файла /etc/sudoers определяет имена пользователей и групп, перечень выполняемых программ, необходимость введения паролей, и некоторые другие настройки, связанные с формированием переменных окружения при смене пользователя. Кроме данного файла, настройки sudo могут определяться содержимым файлов из каталога /etc/sudoers.d , что позволяет структурировать систему предоставления прав на использование sudo в виде набора файлов с осмысленными именами, что полезно при большом количестве пользователей и сложной системе разграничения прав. Имена файлов конфигураций в каталоге /etc/sudoers.d могут быть любыми, но их содержимое должно полностью соответствовать формату файла /etc/sudoers .

Синтаксис настроек в файле /etc/sudoers позволяет использовать специальные псевдонимы ( Alias-ы ), с помощью которых значительно упрощается как настройка, так и восприятие конфигурационной информации sudo .

В файле конфигурации /etc/sudoers возможно использование четырех разновидностей псевдонимов:

User_Alias – списки пользователей, для которых настраивается политика использования sudo .

Runas_Alias – списки пользователей, от имени которых может быть задано выполнение команд через sudo .

Host_Alias – списки узлов, с которых выполняется подключение к системе.

Cmnd_Alias – списки команд, использующиеся в настройках, выполняемых директивами файла /etc/sudoers

Host_Alias ADMCOMPS = localhost, server, admin – определяет псевдоним ADMCOMPS , который определяет группу компьютеров с именами localhost, server, admin .

Host_Alias MAILSERVERS = 192.168.0.100, smtp2 – определяет группу из двух компьютеров с указанными IP и именем. Возможно использование адресов подсетей.

User_Alias ADMINS = jsmith, admusr – определяет группу ADMINS , в которую входят пользователи с именами jsmith и admusr .

Аналогичным образом можно создать псевдонимы для различных наборов команд, доступных для выполнения в sudo :

## Группа команд, для работы в сети, псевдоним Networking

Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

# Группа команд для управления установкой и удалением программ, псевдоним SOFTWARE

Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

# Группа команд для управления системными службами, псевдоним SERVICES

Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

Аналогичным образом можно создать псевдонимы для групп команд, выполнение которых делегируется одиночным или объединенных псевдонимами пользователей.

Основная часть настроек в файле /etc/sudoers задает правила, определяющие, какие пользователи, каких компьютеров, какие команды могут выполнять. Формат записей:

user – имена или псевдонимы пользователей.

MACHINE – имена или псевдонимы компьютеров

COMMANDS – секция команд, включающая имена или псевдонимы команд и дополнительные параметры.

Обычно, в файле /etc/sudoers присутствует директива, разрешающая выполнение пользователю root любых команд при любом подключении к системе:

Аналогичным образом можно разрешить выполнение через sudo всех команд для пользователя, например, с именем user

user ALL=(ALL) ALL

При данной настройке, у пользователя будет запрашиваться пароль ( его личный, а не пароль суперпользователя root ). При необходимости, можно настроить секцию команд таким образом, чтобы пароль не запрашивался, с использованием параметра NOPASSWD :

user ALL=(ALL) NOPASSWD: /usr/bin/su, /usr/bin/drakxconf – пароль будет запрашиваться при выполнении пользователем user через sudo всех команд, кроме su и drakxconf

Использование псевдонимов позволяет уменьшить необходимое число записей для определения прав пользователей, которые могут подключаться к системе с разных компьютеров и входить в разные группы:

ADMINS localhost=(ALL) NOPASSWD:ALL – разрешить группе пользователей, определенной псевдонимом “ADMINS” выполнять любые команды при подключении через петлевой интерфейс “localhost” без ввода пароля..

ADMINS ALL= NETWORKING, SOFTWARE – разрешить группе пользователей, объединенных псевдонимом “ADMINS” выполнять группы команд, объединенные псевдонимами “NETWORKING” и “SOFTWARE”.

Для существующих в системе групп пользователей можно также разрешать выполнение отдельных команд или групп команд:

%users localhost=/sbin/shutdown -h now – разрешить локальным пользователям выключение компьютера.

%operators ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom – разрешить членам группы “operators” монтирование и размонтирование указанных устройств.

%powerusers ALL=NETWORKING, NOPASSWD: /usr/bin/su – разрешить членам группы “powerusers” выполнять команды группы “NETWORKING” с вводом пароля и команду “su” без пароля.

Довольно часто возникает необходимость исключения разрешения на выполнение отдельных команд из списка, объединенных псевдонимом . В этом случае, перед именем команды или псевдонима ставится восклицательный знак – !

ADMINS ALL= ALL, !NETWORKING – разрешить группе пользователей, объединенных псевдонимом “ADMINS” выполнение всех команд, кроме команд, объединенных псевдонимом “NETWORKING”

В следующем примере, используется конфигурация команд, разрешающая выполнение через sudo для всех пользователей группы “ADMINS”, всех команд, кроме команд смены оболочки :

ADMINS ALL= ALL, !/bin/bash, !/usr/bin/su

Кроме настроек доступа, в файле /etc/sudoers присутствуют директивы Defaults , определяющие некоторые настройки путей исполняемых файлов и создание переменных окружения при выполнении команд:

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

Defaults env_keep = “COLOS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS”

Defaults env_keep += “MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”

Defaults env_keep += “LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES”

Defaults env_keep += “LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”

Defaults env_keep += “LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY”

По умолчанию, если интервал выполнения команд с использованием sudo , не превышает 5 минут, то повторный ввод пароля не требуется. Однако, это значение можно изменить, добавив значение timestamp_timeout в минутах:

В данном случае, если команда sudo будет выполняться не позже, чем через 1 минуту после ввода пароля для предыдущей команды, то повторно пароль запрашиваться не будет. Если значение “timestamp_timeout” сделать равным нулю, то пароль будет запрашиваться при каждом запуске sudo , если сделать отрицательным ( -1 ), – то повторный ввод пароля не будет запрашиваться никогда.

Для исключения возможности выполнения sudo-команд при подключении через ssh без авторизации, по умолчанию, должна использоваться команда “ssh –t “:

# Disable “ssh hostname sudo “, because it will show the password in clear.

# You have to run “ssh -t hostname sudo “.

Для определения дополнительного каталога с файлами конфигурации пользователей sudo используется директива:

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

Подробную справку по использовании sudo можно получить с помощью команд:

Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой “Поделиться” для своей социальной сети

Ссылка на основную публикацию
Adblock
detector