Те, кто работает с Unix, знают одного пользователя, который во всех *nix системах имеет одно и то же имя: root. Это так называемый «суперпользователь», который может сделать вообще все.
Однако хорошей практикой считается, и не без оснований, работа даже старшего системного администратора в Unix-системах не под root, а под своей учеткой. При этом, как минимум:
а) Всегда можно отследить — кто же именно сделал то или иное действие, даже если для этого запрашивались права root, причем отследить довольно точно;
б) Следует привыкать выполнять повседневные команды, не требующие прав root, от имени себя любимого. Тогда для выполнения какой-либо важной задачи, требующей прав root, Вам придется набрать 5 лишних символов для ввода команды «sudo» и пробелма за ней, что автоматически, почти на подсознании дернет за ниточку: «осторожно!» и даст полсекунды времени мозгу на додумывание, что может оказаться роковым — палец замрет над Enter.
Итак, выше я уже упомянул некую «sudo».
Sudo в Debian GNU/Linux. Права администратора
SUDO — утилита, позволяющая выполнять команды из командной строки от имени root пользвателем, который root не является, т.е. любым разрешенным пользователем.
При этом Вам не нужно логиниться под root — Вам достаточно войти в систему под своей учетной записью. И не нужно выполнять команду «su», чтобы стать «root».
Разграничением прав — кому можно выполнять sudo, а кому — нельзя, а так-же — кто имеет право выполнять sudo без ввода пароля, а от кого требуется повышенное внимание — занимается файл sudoers. В каждой ОС этот файл лежит в своем месте.
Плюсом sudo так-же является еще и то, что конечному админу не требуется знать пароль от root, что может несколько повысить безопасность.
Установка
# cd /usr/ports/security/sudo
# make install clean
Файл sudoers лежит по адресу:
Linux Debian (или Ubuntu):
# aptitude install sudo
Файл sudoers лежит по адресу:
Linux CentOS (или RedHat):
# yum install sudo
Файл sudoers лежит по адресу:
Файл sudoers
В этом файле, в достаточно простой форме рассказывается — каким пользователям или группам можно выполнять команду sudo. Это значит, что рядовой пользователь Unix системы, даже если захочет выполнить команду от имени root, не заходя под «root» и не выполняя команду «su» (логично — пароль то он не знает), не сможет воспользоваться правами суперадмина.
Вот пример такого файла:
# /etc/sudoers
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
Linux для Начинающих — Права Доступа и владения файлами и директориями
# it further down)
# %sudo ALL=NOPASSWD: ALL
В примере файл сконфигурирован так, что команду sudo может выполнять только сам суперадмин (это состояние файла по-умолчанию в Debian). Право, бесполезен он в таком виде.
Чтобы добавлять пользователей, которым можно использовать этот файл — прописывайте их в конце в таком формате:
username ALL=(ALL) ALL
А чтобы добавлять целые группы (например, группу wheel):
%groupname ALL=(ALL): ALL
При такой настройке пользователям можно будет использовать утилиту sudo, но каждый раз у них будет спрашиваться пароль:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for username:
Пароль при этом нужно вводить пользователя, а не root. Т.е. если пользователь admin1 запускает sudo, то пароль этот пользователь вводит тот же, что и используется им для входа в саму систему.
Этакая подстраховка — лишние несколько секунд для мозга для того, чтобы успеть заметить ошибку в команде и отменить операцию.
Однако при вводе большого количества команд из-под root (sudo) каждый раз пароль вводить — увольте. Можно, конечно, сделать
но это не наш метод.
Если какому-то администратору или группе пользователей доверяется настолько, что это «контрольное» предупреждение с вводом его пароля не нужно — можно его отключить. Тогда пользователей нужно вводить таким образом:
username ALL=(ALL) NOPASSWD: ALL
%groupname ALL=(ALL) NOPASSWD: ALL
Тогда команда с sudo будет исполнена сразу, без каких-либо предупреждений вообще. И без каких-либо запросов пароля. Для перечисленных пользователей, конечно.
Вот второй пример файла sudoers:
# /etc/sudoers
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
stadmin ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) ALL
proger ALL=(ALL) ALL
а) Пользователю stadmin позволяется выполнять sudo без ввода пароля
б) Группе wheel позволяется выполнять sudo, но с вводом пароля
в) Пользователю proger позволяется выполнять sudo, тоже с вводом пароля
Как видно — первичная настройка sudoers довольно проста.
Больше о sudo и файле sudoers можно прочитать, как всегда, в справке man:
$ man sudo
$ man sudoers
Очень рекомендуется к прочтению, т.к. есть некоторые полезные опции, которые в файле sudoers по-умолчанию просто не прописаны (их десятки).
Например, можно запретить определенным пользователям выполнять бинарники из-под sudo. Или обязательно требовать chdir пользователя в его домашнюю директорию во время выполнения sudo, и т.д.
Источник: intellect.icu
Как добавить «Открыть как Администратор» в Ubuntu
В этом простом руководстве показано, как добавить опцию «Открыть как Администратор» в контекстное меню менеджера файлов в Ubuntu.
Вы спросите – а для чего это мне нужно? Иногда, вам нужно открыть или отредактировать файлы с правами администратора (root) прямо из файлового менеджера на рабочем столе Ubuntu, но все не так просто, нужно сначала открыть терминал, ввести соответствующую команду, а уже далее редактировать файлы.
Но все намного проще когда есть расширение nautilus-admin, которое поможет сделать работу за вас.
Для начала, давайте посмотрим как выглядит контекстное меню в nautilus до установки расширения
Как установить nautilus-admin в Ubuntu
1. Откройте терминал, нажав Ctrl+Alt+T на клавиатуре, или выполните поиск «терминал» в меню приложений.
2. Введите команду для установки расширения:
sudo apt install nautilus-admin
Вы можете заменить nautilus-admin на caja-admin или, peony-admin если вы работаете с рабочим столом MATE или UKUI.
После установки выполните команду
nautilus -q
Или выйдите из системы, а затем снова войдите, чтобы применить изменения.
Обратите внимание, что расширение добавляет только права администратора для открытия папок или редактирования файлов. У вас не будет опции «Запуск от имени администратора» для запуска программ с привилегиями суперпользователя. Но все же, это облегчит использование операционной системы Ubuntu.
В оригинальной версии операционной системы Ubuntu по умолчанию не реализована такая простая и нужная вещь простые вещи как эта. Но тем и хорош мир Linux что не связывает по рукам. Например, в операционной системе Ubuntu*Pack, которая основана на ванильном Ubuntu эта функция, а также много других необходимы, нужных и интересных вещей уже реализовано «из коробки».
Возможно Ubuntu не включает это из-за того, что огромное количество новичков пользуется их системой, и чтобы они случайно ее не сломали? А как вы думаете?
Если статья была полезной, не забудьте поделиться ею в социальных сетях. Всем хорошего дня.
Источник: linuxthebest.net
Права пользователей в Linux. Команды sudo и su
Linux — сложная система, поддерживающая многопользовательский режим. Это утверждение означает, что в режиме реального времени одновременно параллельно с системой может работать множество человек, и каждый из них способен запустить несколько приложений. В Linux настроить права пользователя совсем несложно.
Root обладает в указанной системе максимальными полномочиями, и она полностью подвластна ему, — любая его команда будет выполнена сразу. Поэтому работать таким доступом следует с осторожностью. Если вы арендуете виртуальный сервер Linux – используйте эту инструкцию. Чтобы не допустить ошибки необходимо изначально знать, как посмотреть права пользователя Linux.
Рекомендуется работать под стандартным пользователем, а максимальные привилегии получать только тогда, когда это действительно нужно, например, для выполнения конфигурации сервера, для перезапуска служб, для установки ПО. Для временного получения в Linux права пользователя root применяются сопутствующие команды sudo и su, рассмотренные в этой статье.
Команда sudo
Sudo позволяет клиенту задать практически любую команду с доступами, разрешениями и привилегиями root. Применять ее очень просто:
Если вам необходимо изменить файл /etc/apt/sources.list:
sudo nano /etc/apt/sources.list
Если задать аналогичную команду, но без sudo (просто: nano /etc/apt/sources.list), текстовый редактор запустит файл, но сохранить внесенные изменения вы при этом не сможете, поскольку для завершения задачи не хватит полномочий.
Перед самым выполнением команды она обязательно затребует у вас личный пароль:
sudo nano /etc/apt/sources.list
Password:
Нужно ввести пароль, применяемый для входа в систему, но он должен отличаться от пароля root.
Использовать sudo могут не все, а только профили, внесенные в файл /etc/sudoers. Администратору системы позволено редактировать этот файл с помощью visudo.
На платформе Xelent виртуальные серверы (даже на базе Ubuntu) создаются с активной записью root. Следовательно, если вы хотите использовать sudo для обычного пользователя, то сначала нужно его создать, а затем добавить в /etc/sudoers. Далее рассмотрен весь процесс подробно — с момента создания на примере Ubuntu 18.04.
Первым делом добавим пользователя через adduser (рис. 1):
Команда добавит den и установит его пароль. Узнать права пользователя Linux с этим логином можно будет в любой момент.
Рис. 1. Создание пользователя в Ubuntu 18.04
В Ubuntu adduser не только добавляет в Linux права пользователя, но и создает пароль для него. В прочих дистрибутивах вам понадобится две команды — одна для создания новой пользовательской учетной записи, а вторая — для задания его пароля:
adduser den
passwd den
Затем den нужно добавить в файл /etc/sudoers для редактирования которого предназначена visudo. По умолчанию она использует текстовый редактор vi, который очень неудобен и понадобится еще одна статья, объясняющая как с ним работать. Гораздо проще установить переменную окружения EDITOR и задать более удобный текстовый редактор, например, nano.
Узнаем, где находится текстовый редактор nano:
which nano
/bin/nano
Установим переменную окружения:
Рис. 2. Установка переменной окружения EDITOR
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения
После этого можно выполнить visudo и дать права пользователю Linux, отредактировав необходимый файл, добавив в него den. Добавьте в него строчку:
den ALL=(ALL:ALL) ALL
Данная строка объясняет, что den можно выполнять со всех (первый ALL) терминалов, работая как любой (второй ALL) все команды (третий ALL) с максимальными правами. Конечно, его можно и более ограничить, например:
den ALL= /sbin/poweroff
Эта запись означает, что вышло дать права пользователю Linux den и он может с любого терминала вводить команду завершения работы. Руководств по файлу sudoers в Интернете предостаточно, поэтому вы без проблем найдете дополнительные примеры ограничения прав через этот файл, чтобы настроить сервер так, как вам нужно.
Рис. 3. Редактирование /etc/sudoers
Для сохранения изменений нажмите сначала Ctrl + O, а затем Ctrl + X, чтобы выйти из редактора.
Теперь проверим, все ли у нас получилось. Превратимся в den:
Попытаемся с максимальными правами выполнить любую команду, например, ls:
Команда sudo запросит пароль den — введите его. Если бы мы допустили ошибку при настройке, sudo сообщила бы, что он не имеет права ее использовать. А поскольку она запросила пароль, мы все сделали правильно.
Рис. 4. Sudo в действии
Каждую команду, которая требует максимальных прав, вам придется выполнять через sudo. Порой нужно выполнить продолжительную настройку и вводить каждый раз sudo не хочется. В этом случае можно запустить командный интерпретатор bash через sudo и вы получите полноценную консоль root. Вот только не забудьте по окончанию настройки ввести exit:
sudo bash
выполняем настройку
exit
Через sudo у вас не получится использовать перенаправление задач категории ввода/вывода, то есть команда вида sudo ls /etc > /root/somefile не сработает. Для этого требуется ввести sudo bash и использовать систему как обычно.
Каждая команда, которая была введена в систему непосредственно с помощью sudo, фиксируется в учетном журнале, находящемся по адресу /var/log/auth.log, и у вас сохранится история введенных задач с полномочиями root, а вот при работе под администратором root журнал вовсе не ведется. Кроме того, если пойдет не так, можно будет понять, что случилось, изучив данный журнал. Посмотрите на рис. 5. На нем видно, что den вводил ls через sudo.
Рис. 5. Журнал auth.log
Команда su
Su дает доступ к консоли с полными правами администратора root любому (даже если он изначально не был вписан в файл /etc/sudoers). Единственное условие — он должен иметь пароль root. Понятно, что в большинстве случаев ним будет сам root, — не станете же вы всем доверять свой пароль? Поэтому su предназначена, в первую очередь, для администратора системы, в Linux права пользователя у него не ограничены, а sudo — для остальных, им тоже иногда требуются права root (чтобы они меньше отвлекали администратора от своей работы).
Использовать su просто:
su
После этого нужно будет подтвердить права root пользователя Linux и ввести пароль, далее вы сможете работать в консоли, как обычно. Использовать su удобнее, чем sudo, потому что нет необходимости вводить su непосредственно перед каждой командой, требующей выполнения с правами root.
Чтобы закрыть сессию su нужно или ввести слово exit, или закрыть окно терминала.
С помощью su можно работать от имени любого пользователя. Ранее было показано, как мы с помощью su den смогли выполнять команды от имени пользователя den.
Популярные услуги
Linux сервер
Высокопроизводительные VPS сервера Linux на без KVM-виртуализации идеально подходят для крупных интернет-проектов. В сочетании с этой операционной системой серверные компьютеры демонстрируют хорошую производительность, а SSD хранилища данных способствуют увеличению их быстродействия. У нас вы сможете взять в аренду VPS и VDS Linux сервера.
Аренда выделенного сервера в России
Аренда сервера и СХД необходимой производительности. Все оборудование размещается в собственном отказоустойчивом ЦОДе с зарезервированными системами энергоснабжения, охлаждения и каналами связи.
Источник: www.xelent.ru