Администратор в Ubuntu, или Что такое sudo
В любой Linux-системе обязательно есть один привилегированный пользователь — root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет.
Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.
Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo .
В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта.
Повышение пользовательских прав командой sudo
Существует более современный способ повышения пользовательских прав с помощью команды sudo (substitute user and do — подменить пользователя и выполнить).
Sudo является программой системного администрирования, дающей возможность выполнять команды от имени root. Если для выполнения команды su все пользователи должны были знать пароль root, что само по себе небезопасно, то sudo его не требует. В sudo нужен пароль самого пользователя.
Sudo работает следующим образом, перед командой которую необходимо выполнить, нужно добавить sudo, например:
От имени root: yum install -y wget При помощи sudo: sudo yum install -y wget
Sudo определяет пользователя сверяясь с настройками находящимися в файле /etc/sudoers, если пользователь внесен в sudoers, то команда выполняется. Если выполнить команду sudo от имени пользователя не внесенного в sudoers, то можно увидеть такую картину:
$ sudo yum install -y wget password for test: test is not in the sudoers file. This incident will be reported.
При попытке выполнить команду sudo, от имени пользователя test, выдается ответ что такого пользователя в файле sudoers не обнаружено. О событии создается запись в лог файле, также высылается электронное письмо root-пользователю с уведомлением о случившемся.
From [email protected] Sat Feb 11 20:19:12 2017 Return-Path: <[email protected]> X-Original-To: root Delivered-To: [email protected] Received: by test2.localdomain (Postfix, from userid 0) id CD2AF8051BC; Sat, 11 Feb 2017 20:19:12 +0300 (MSK) To: [email protected] From: [email protected] Auto-Submitted: auto-generated Subject: *** SECURITY information for test2 *** Message-Id: <[email protected]> Date: Sat, 11 Feb 2017 20:19:12 +0300 (MSK) test2 : Feb 11 20:19:12 : test : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/test ; USER=root ; COMMAND=/bin/yum install wget
Для того чтобы пользователь мог выполнять sudo, его надо внести в файл sudoers. Сделать это можно двумя способами.
Первый способ — внесение имени пользователя непосредственно в сам файл /etc/sudoers. Для изменения файла sudoers, требуется обладать правами root.
nano /etc/sudoers Находим строку: root ALL=(ALL) ALL Добавляем под нее имя пользователя, которому будет разрешен доступ к sudo: root ALL=(ALL) ALL test ALL=(ALL) ALL Сохраняем и выходим.
После того как пользователь будет внесен в список допущенных к использованию, он может выполнять команду sudo.
Вторым способом разрешить пользователям выполнять команду sudo, является внесение пользователя в группу wheel, точно так же как в случае с командой su.
Вносим пользователя в группу wheel: usermod -a -G wheel techlist_1 Проверяем: id techlist_1 uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1),10(wheel) Перезагружаем систему: reboot
После перезагрузки системы, пользователь внесенный в группу wheel, сможет выполнять sudo.
Для того чтобы полностью сменить окружение пользователя на окружение root, используется команда sudo -i, что равносильно использованию команды su —
$ sudo -i password for test: #
Возвращение в свое пользовательское окружение, происходит при помощи команды exit.
Каждый раз при использовании sudo, требуется ввод пароля пользователя. При вводе пароля, происходит обновление временной метки, что позволяет выполнять sudo без ввода пароля на протяжении некоторого времени. По умолчанию ввод пароля не требуется на протяжении пяти минут, после чего пароль опять будет затребован. Временной промежуток можно изменить при помощи опции timeout в файле sudoers. Существует возможность отключения ввода пароля.
Отключить ввод пароля для пользователей принадлежащих к группе wheel:
Открываем для внесения изменений: nano /etc/sudoers Находим строку: # %wheel ALL=(ALL) NOPASSWD: ALL Раскомментировать строку: %wheel ALL=(ALL) NOPASSWD: ALL Сохраняем изменения и выходим.
Отключить ввод пароля для пользователей добавленных вручную:
Открываем для внесения изменений: nano /etc/sudoers Находим строку с нужным пользователем: test ALL=(ALL) ALL Изменяем ее: test ALL=(ALL) NOPASSWD: ALL Сохраняем изменения и выходим.
Sudo гибкая в настройке и позволяет настроить множество различных параметров. Грамотный администратор знающий sudo может творить настоящие чудеса с пользователями.
Для просмотра руководства по настройке sudo, выполняется команда:
Посмотреть руководство sudo: man sudoers Выйти из руководства: q Посмотреть список дополнительных опций команды: sudo -h
Как зайти под root в Ubuntu Desktop GUI
Если вы хотите зайти в систему как пользователь root не в консоли, а на графическом рабочем столе Ubuntu, тогда вам нужно выполнить несколько дополнительных шагов после включения пользователя root:
Откройте фаил /etc/gdm3/custom.conf . Здесь Вам надо будет добавить AllowRoot = true в блоке . Вот так:
Затем откройте файл /etc/pam.d/gdm-password и найдите такую строку:
Закомментируйте её, поставив знак # перед ней:
Далее перезагрузите компьютер. Когда он перезапустится и появится экрану входа в систему — кликните на ссылку «Нет в списке?». Остаётся лишь ввести root в поле username и указать пароль для суперпользователя. Вот и всё!
Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.
В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.
В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.
Выход из среды chroot
После завершения работы, выйдите из сеанса chroot:
# exit
Теперь размонтируйте временные файловые системы и корневой раздел:
# cd / # umount --recursive /mnt/arch/
Примечание: Если возникает ошибка наподобие: , обычно это значит, что либо какая-то программа в среде chroot все еще запущена, либо что-то пошло не так при размонтировании внутренних по отношению к корневому разделу. Выйдите из программы и используйте команду чтобы найти и размонтировать подразделы.
Может быть несколько непросто размонтировать некоторые вещи, и вам может посчастливиться форсировать размонтирование опцией . В качестве последнего средства используйте опцию , которая просто освобождает устройства. В любом случае, чтобы обезопасить себя, перезагрузитесь как можно быстрее.
Как включить/отключить вход root в Ubuntu
По умолчанию Ubuntu не устанавливает пароль root во время установки системы. Однако это не означает, что учетная запись root не существует в Ubuntu или что её нельзя включить. Вместо этого, вам предоставляется возможность выполнять задачи с привилегиями суперпользователя, используя команду sudo.
На самом деле разработчики Ubuntu решили отключить запись root по умолчанию. Корневой учетной записи был присвоен пароль, который не соответствует возможному зашифрованному значению, поэтому он может быть использован для входа в систему.
Внимание: включение учетной записи root совсем не обязательно, поскольку большинство действий в Ubuntu на самом деле не требуют использования учетной записи root. Хотя пользователям настоятельно рекомендуется использовать команду sudo для получения привилегий root, по той или иной причине вы все же можете получить доступ как пользователь root в терминале или включить/отключить вход в учетную запись root в Ubuntu, используя следующие способы. Хотя пользователям настоятельно рекомендуется использовать команду sudo для получения привилегий root, по той или иной причине вы все же можете получить доступ как пользователь root в терминале или включить/отключить вход в учетную запись root в Ubuntu, используя следующие способы
Хотя пользователям настоятельно рекомендуется использовать команду sudo для получения привилегий root, по той или иной причине вы все же можете получить доступ как пользователь root в терминале или включить/отключить вход в учетную запись root в Ubuntu, используя следующие способы.
1. Как включить учетную запись root в Ubuntu?
Для включения учетной записи пользователя root выполните следующую команду и введите пароль, который вы первоначально установили для своего пользователя (sudo user).
Вы можете изменить пароль root с помощью команды sudo passwd root, как показано в примере ниже:
3. Как отключить доступ Root в Ubuntu?
Если вы хотите отключить вход в учетную запись root, запустите следующую команду, чтобы установить срок действия пароля.
Для получения дополнительной информации вы можете обратиться к документации Ubuntu.
В этой статье мы объяснили, как включить и отключить root в Ubuntu Linux.
Спасибо за уделенное время на прочтение статьи!
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.
Источник
Повышение пользовательских прав командой su
Давайте рассмотрим такую ситуацию, когда пользователю нужно установить некую программу, например wget.
$ yum install -y wget Загружены модули: fastestmirror Для выполнения этой команды необходимы привилегии суперпользователя.
Все, приехали, для выполнения этой команды нужны привилегии суперпользователя. Что делать дальше? Далее можно воспользоваться так называемым повышением пользовательских прав. Для подобных целей существует команда su.
$ su Пароль: #
Что-же произошло в процессе выполнения команды? При выполнении команды был запрошен пароль суперпользователя, после ввода пароля происходит подмена имени пользователя test на имя root, что дает пользователю право выполнять все действия от его имени.
Было $, стало #. Теперь можно установить нужную программу или выполнить необходимую операцию, ради которой все это и было затеяно. Для возвращения назад используют команду exit.
# exit exit $
После выполнения команды exit происходит возвращение в свое пользовательское окружение $.
Существует еще один вариант выполнения команды — su -. При выполнении su — изменяется не только имя, но и рабочее окружение пользователя.
$ su - Пароль: Последний вход в систему:Сб фев 11 21:11:06 MSK 2017на pts/0 #
Были $, стали #. Грубо говоря стали пользователем root, до тех пор пока не будет выполнена команда exit и пользователь не вернется назад в свое окружение.
У некоторых читателей может появиться вопрос: Зачем это нужно, если обычный пользователь зная пароль root может входить напрямую, без всяких заморочек? Да может, зная пароль это не составит особого труда. Я описываю ситуацию когда root и обычный пользователь, это один и тот-же человек.
Некоторые пользователи закрывают удаленный root-доступ на свои VPS/VDS сервера в качестве меры безопасности. Поскольку напрямую под root они входить уже не могут, то входят от имени обычного пользователя, после чего повышают себя до root для выполнения нужных задач.
А как быть если пользователей много? Ведь это не есть хорошо, когда пароль root знает каждый из них. В том-то и дело что не каждый юзер знает пароль. Грамотный администратор не будет разбрасываться паролем направо и налево, а доверит его только проверенным пользователям. Пароль может знать каждый, но не каждый сможет его применить, этой привилегией обладает тот, кто входит в специальную группу пользователей.
В UNIX-системах существует так называемая группа wheel, только входящие в нее пользователи могли выполнять команду su. В последних версиях Linux любой пользователь может выполнять su по умолчанию, а раньше у них такой возможности не было. В старых версиях Linux и системе FreeBSD, команда su могла выполняться только после внесения пользователя в группу wheel администратором.
Подобную манипуляцию пользователями можно провернуть и в современных версиях Linux. Допустим что у нас есть два пользователя techlist_1 и techlist_2, по умолчанию не относящиеся к группе wheel.
# id techlist_1 uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1) # id techlist_2 uid=1002(techlist_2) gid=1005(techlist_2) группы=1005(techlist_2)
Добавим пользователя techlist_1 в группу wheel, а techlist_2 оставим без изменений.
# usermod -a -G wheel techlist_1 # id techlist_1 uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1),10(wheel) # id techlist_2 uid=1002(techlist_2) gid=1005(techlist_2) группы=1005(techlist_2)
Отредактируем файл /etc/pam.d/su для возвращения возможности разделения пользователей, как в старых версиях Linux.
# nano /etc/pam.d/su Находим следующую строку и расскомментируем ее, уберем знак #, в начале строки: #auth required pam_wheel.so use_uid auth required pam_wheel.so use_uid Сохраняем изменения и выходим.
Проверим как теперь пользователи смогут выполнять команду su. Сначала проверим входящего в группу wheel пользователя.
$ su Пароль: # exit exit $ su - Пароль: Последний вход в систему:Вс фев 12 04:49:44 MSK 2017на pts/1 #
Теперь второго, которого не добавляли в группу.
$ su Пароль: su: Доступ запрещен $ su - Пароль: su: Доступ запрещен $
Что и требовалось доказать. Один пользователь выполняет команду su, а другой не может. Вот так может работать повышение пользовательских прав при помощи команд su и su -.
Синтаксис
В синтаксисе данной команды нет ничего сложного.
Утилита дает возможность выполнить практически любую команду в ОС Linux. Сложностей не возникнет даже у нового пользователя.
Утилита «по умолчанию» запустит именно ту команду, которая была указана вами. Стоит отметить, что она будет запущена от имени «суперпользователя» root. Если вам требуется соблюдение определённых параметров, потребуется ввести настройки. Для этих целей в команде обязательно прописывается опция или еще ее называют аргумент.
Основные параметры:
- «-A» (–askpass). В ОС «Линукс» согласно первоначальным настройкам запрашивается пароль от терминала. Если воспользоваться данной опцией, утилита предложит графическое введение параметров.
- «-b» (–background). В этом случае будет запущена требуемая программа в фоновом режиме.
- «-C» (–close-from). Здесь потребуется передать опции численное значение, которое будет более трех. С помощью такого функционала задаются файловые дескрипторы, которые распространяются на программу. Исключена вероятность классического вывода и ввода информации.
- «-E» (–preserve-env). Эта функция передает переменное окружение, которое имеется у текущего пользователя, запускаемой программе. Опции дополнительно можно передавать определённый перечень переменных, которым разрешается доступ.
- «-e» (–edit). С использованием опции появляется возможность редактирования обрабатываемого файла вместо запуска определённой команды. Этот файл помещается в созданный временно каталог, где корректируется через специальную программу. Стоит отметить, она установлена в ОС «по умолчанию». Если вы внесли изменения в файл, он будет сохранен с теми же правами.
- «-g». В этом случае отображается указываемая вами группа вместо группы, присущей иному владельцу.
- «-h». Опция даёт возможность запустить команду от иного имени, чаще всего, от имени иного хоста.
- «-H» (–set-home). Появляется возможность создать свой каталог.
- «-i» (–login). Такая опция дает возможность пройти авторизацию в определенной консоли от имени стороннего пользователя. Здесь определяется адрес домашней папки, загружается весь перечень переменных из окружения пользователя.
- «-k». После введения опции sudo не сохраняет данные пароля. Спустя определенный промежуток времени повторно можно пользоваться утилитой, но обязательно нужно вводить пароль.
- «-l» (–list). дает возможность посмотреть список команд, которые распространяются на удаленных пользователей.
- «-n» (–non-interactive). Здесь запускается неинтеррактивный режим. При необходимости введения пароля на экране монитора появится ошибка.
- «-p» (–prompt). позволяет использовать свои приглашения при вводе пароля.
- «-r» (–role). Программа выполняется с контекстом SE Линукс. У него уже прописана первоначальная роль.
- «-S». Опция дает возможность применить стандартный поток ошибок. Это осуществляется при запросе данных пароля.
- «-s» (–shell). Есть возможность включить командный интерпретатор.
- «-U» (–User). Такая команда применяется совместно с функцией «-l», дает возможность изучить имеющие привилегии у пользователя.
- «-T» (–timeout). У пользователя появляется возможность настроить время осуществления определённой команды. Если оно закончится до того, как команда завершится, она закроется в принудительном порядке.
- «-u». Такая опция дает возможность прописать имя пользователя.
- «–». Эта функция исключит вероятность обработки последующих опций.
Представленный выше список функций является ориентировочным. На самом деле опций огромное количество, остальные используются весьма редко.
Примеры
Стоит рассмотреть наиболее популярные примеры применения команды.
Весьма часто пользователям требуется запустить определённую программу с правами root. Для этих целей потребуется прописать «sudo». К примеру, поменяем пароль для пользователя “user”.
Запуск программы от имени другого пользователя. В данном случае потребуется использовать опцию «-u».
Авторизация от имени иного «суперпользователя». В такой ситуации нужно применить опцию «-i».
Авторизация от имени стороннего пользователя. Здесь потребуется обязательно казать его имя. Пример – $ sudo -i -u sergiy программа.
Редактирование системных файлов. Для осуществления поставленной перед пользователем задачи необходимо применить опцию «-е». Она откроет редактор, который установлен в системе согласно изначальным настройкам.
Запуск программы в фоне. Для этого нужна опция «-b», которая позволит выполнить задачу.
Выше описаны только общие примеры, которые чаще всего требуются пользователям операционной системы «Линукс».
chmod
Сменить разрешения доступа к файлу или директории можно с помощью команды chmod. Для этого нужно указать желаемые настройки прав доступа для файла, файлов или директории, которые нужно изменить. Есть два способа указать разрешения доступа. Сейчас мы рассмотрим только один из них, основанный на указании разрешений всех типов, записанных в восьмеричной нотации.
Можно представить настройки прав как последовательность бит. Именно так их представляет операционная система. Вот как это работает.
1 |
rwx rwx rwx = 111 111 111 rw- rw- rw- = 110 110 110 rwx — — = 111 000 000 |
и так далее…
1 |
rwx = 111 в двоичной нотации = 7 в восьмеричной и десятичной rw- = 110 в двоичной нотации = 6 в восьмеричной и десятичной r— = 101 в двоичной нотации = 5 в восьмеричной и десятичной r— = 100 в двоичной нотации = 4 в восьмеричной и десятичной -wx = 011 в двоичной нотации = 3 в восьмеричной и десятичной -w- = 010 в двоичной нотации = 2 в восьмеричной и десятичной —x = 001 в двоичной нотации = 1 в восьмеричной и десятичной — = 000 в двоичной нотации = 0 в восьмеричной и десятичной |
Теперь, если мы представим каждую из трех групп прав доступа (владелец, группа, остальные) как отдельную цифру, у нас появится достаточно простой и удобный вид записи всех возможных разрешений. Например, если мы желаем задать файлу file разрешения на чтение и запись владельцу и сделать его недоступным для всех остальных (включая членов группы), мы можем выполнить команду:
1 |
$ chmod 600 some_file |
Рассмотрим наиболее применимые разрешения доступа для файлов. Те, что начинаются с цифры 7 используются для программ (они разрешают выполнение), а остальные для других видов файлов.
- 777 — — отсутствуют любые ограничения, каждый может выполнять с файлом любые действия. Обычно это нежелательный вариант.
- 755 — — владелец имеет полный доступ, все остальные могут только читать и выполнять файл. Такие права устанавливаются на программы, используемые всеми пользователями.
- 700 — — только владелец имеет полный доступ к файлу. Никто другой не имеет никакого доступа к файлу. Это разрешение используется для программ, которые используются только владельцем и должны быть недоступны остальным пользователям.
- 666 — —все пользователи имеют права на чтение и запись файла.
- 644 — —владелец имеет разрешения чтения и записи файла. Все остальные пользователи могут лишь читать файл. Используется для файлов с данными, к которым нужно открыть доступ на чтение для всех пользователей, но изменять данные может только владелец.
- 600 — —только владелец может читать и записывать файл. Никто другой не имеет доступа к файлу. Используется для частных файлов.
Настройка sudo в Linux
Краткое содержание
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд.
Чтобы открыть файл для редактирования наберите такую команду от имени суперпользователя:
Вы также можете указать текстовый редактор, в котором вы хотите редактировать файл настройки:
Дальше мы рассмотрим самые интересные настройки, которые вы можете задать в этом файле. Но сначала давайте рассмотрим основной синтаксис файла. Он состоит из двух типов строк, это псевдонимы, которые позволяют создавать списки пользователей и флагов, а также сами правила, которые задают как будет вести себя команда sudo. Синтаксис алиасов выглядит вот так:
тип имя_алиаса = элемент1, элемент2, элемент3
Тип указывает какого типа нужно создать алис, имя – имя, которое будет использовано, а список элементов – те элементы, которые будут подразумеваться при обращении к этому имени.
Описание разрешений для пользователей имеет немного другой синтаксис:
пользователь хост = (другой_пользователь:группа) команды
Пользователь указывает пользователя или группу, для которых мы создаем правило, хост – компьютер, для которого будет действовать это правило. Другой пользователь – под видом какого пользователя первый может выполнять команды, и последнее – разрешенные команды. Вместо любого из параметров может использоваться алиас. А теперь настройка sudo в Debian и других дистрибутивах.