Меню Рубрики

Установка прав для пользователя ubuntu

Разграничение прав пользователей в Ubuntu

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

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

Разрешить sudo для определенных пользователей

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

После добавления в группу sudo пользователь становится администратором. Администраторы в linux могут настраивать систему, им предоставлен доступ ко всем файлам в каталоге /dev, им предоставлены привилегии близкие к возможностям суперпользователя.

Примечание: в Ubuntu 12.04 LTS и более поздних версиях существует привычная группа admin, которая поддерживается для совместимости с более ранними версиями ОС, а все администраторы добавляются в группу sudo.

Виртуальный сервер на базе Linux

Запрет вызова команд

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

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

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

После выполнения данной операции, все кроме root не смогут использовать команду ls:

ls
bash: /bin/ls: Permission denied

Чтобы запретить user1 использовать определенную команду, необходимо создать группу group2 и добавить в нее всех, кроме user1:

sudo groupadd group2
sudo useradd -G group2

Затем изменить группу владельцев нужной команды на group2:

sudo chown :group2 $(which ls)

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

Редактирование файла /etc/sudoers

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

Чтобы открыть файл /etc/sudoers используйте утилиту visudo, она специально предназначена для редактирования этого файла и позволяет не допустить ошибок в синтаксисе:

Файл будет открыт в текстовом редакторе по-умолчанию.

Стандартное содержимое файла выглядит следующим образом:

Примечание: здесь параметр Defaults имеет несколько значений:

  1. env_reset — сбрасывает все пользовательские переменные;
  2. mail_badpass — сообщает системе отправлять уведомления о неудачных попытках ввода пароля sudo пользователю mailto. По умолчанию это учетная запись root.
  3. secure_path — пути, по которым операционная система будет искать файлы, используемые для операций sudo.

Рассмотрим подробнее строку:

%sudo ALL=(ALL:ALL) ALL

  1. %sudo — имя пользователя или группа, к которой нужно применить правило (имя группы указывается после символа %, имя пользователя без).
  2. <>Первое ALL означает, что правило применяется ко всем IP-адресам, второе ALL, что указанный пользователь может запускать команды в сессии любого пользователя, третье ALL означает, что указанный пользователь может запускать команды в любой группе. Последнее ALL указывает, что эти правила нужно применять ко всем командам.

Например, для настройки прав для команды apt-get можно использовать следующую строку:

%admin ALL=(ALL)NOPASSWD:/usr/bin/apt-get

  1. %admin — правило применяется для всех пользователей группы admin;
  2. ALL= — правило применяется ко всем IP-адресам;
  3. (ALL) — пользователь может запускать команды в сессии любого пользователя;
  4. NOPASSWD — пароль не требуется;
  5. :/usr/bin/apt-get — список команд, разделенный запятой.

Host alias — это псевдонимы для IP адресов с которых отправляются на выполнение команды. Псевдоним для хоста можно задать следующим образом:

Host_Alias CLOUD = 105.17.125.37

User alias — это псевдонимы имен пользователей или групп прямо внутри файла sudoers, а не в системе. Псевдоним можно задать следующим образом (для групп используйте %):

User_Alias PEOPLE = alice,bob

Cmnd alias — являются псевдонимами для имен команд прямо внутри файла sudoers, а не в системе. Псевдоним команды можно задать следующим образом:

Cmnd_Alias APT = /usr/bin/apt-get update,/usr/bin/apt-get upgrade

источник

Руководство по Ubuntu для новичков

Содержание

Пользователи, группы и права доступа

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

Пользователи и группы

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

Кроме пользователей в Linux для разграничения прав существуют группы. Каждая группа так же как и отдельный пользователь обладает неким набором прав доступа к различным компонентам системы и каждый пользователь-член этой группы автоматически получает все права группы. То есть группы нужны для группировки пользователей по принципу одинаковых полномочий на какие-либо действия, вот такая тавтология. Каждый пользователь может состоять в неограниченном количестве групп и в каждой группе может быть сколько угодно пользователей 1) .

Читайте также:  Установка программ принтеров на компьютере

Например, в Ubuntu есть одна очень полезная группа: admin . Любой член этой группы получает неограниченные административные привилегии. Я уже рассказывал про роль администратора в Ubuntu, так что если вы уже успели забыть кто это, можете освежить свои знания. Создаваемый при установке Ubuntu пользователь автоматически становится членом группы admin 2) .

Управлять пользователями и группами можно с помощью специального инструмента, находящегося в меню Система→Администрирование→Пользователи и группы.

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

Права доступа в Linux

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

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

В данный момент нас интересует одно крайне важное следствие из подобной организации прав доступа в системе. Конкретному пользователю Ubuntu принадлежит только его домашний каталог и все его содержимое. В системе этот каталог находится по адресу /home/имя_пользователя . Все остальные файлы системы, включая все приложения, системные настройки и т.д., располагающиеся вне /home , принадлежат преимущественно root . Помните, я говорил, что root — это пользователь с неограниченными привилегиями, непосредственное использование которого в Ubuntu запрещено. Так вот, все системные файлы и каталоги принадлежат root недаром, им всем выставлены права на изменение только для пользователя-владельца, таким образом никто, кроме root , не может вмешаться в работу системы и что-то поменять в системных файлах.

Это конечно очень хорошо для безопасности, но что же делать, если вам нужно изменить какие-нибудь системные файлы? Тут есть два пути 4) : во-первых, большинство необходимых пользователю системных настроек можно изменить обладая правами администратора из графических конфигураторов, это самый предпочтительный способ. Ну а во-вторых можно временно повысить свои права до root и делать вообще всё, что угодно.

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

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

работает, только если её запускает root . Однако запуская её с помощью sudo вы выдаёте себя за рута, рутом при этом не являясь. Естественно, для использования sudo вы должны обладать правами администратора 5) . При этом при запуске команды через sudo система спросит у вас ваш пароль, однако в целях безопасности при его вводе вам не будет ничего показываться, ни звёздочек, ни чёрточек, ни птичек, ничего. Не пугайтесь, так и надо, просто вводите до конца и нажимайте Enter . Если вы являетесь администратором и правильно ввели пароль, то указанная после sudo команда исполнится от имени root .

Через терминал можно сделать всё, что угодно, так что имея возможность стать рутом вы можете выполнить все необходимые вам настройки. Однако иногда удобно использовать графические приложения, при этом обладая правами рута. Например, если вам надо скопировать файлы в системные каталоги. Для запуска графических приложений от имени root откройте диалог запуска GNOME сочетанием клавиш Alt + F2 и введите

Например, для запуска файлового менеджера Nautlus надо ввести

Через запущенный таким образом Nautilus вы сможете как угодно изменять любые файлы на компьютере.

Редактирование конфигурационных файлов

Важнейшим примером применения вышеописанной технологии «прикидывания» рутом является редактирование конфигурационных файлов системы. Я уже говорил, что все настройки системы и всех приложений в Linux хранятся в виде текстовых файлов. Так вот, редактировать вы можете только файлы, принадлежащие вам, то есть только настройки, касающиеся вашего пользователя. А для редактирования системных параметров вам понадобятся права администратора.

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

Конечно, можно открывать конфигурационные файлы с правами root через диалог запуска приложений командой

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

Читайте также:  Установка прессования творога митрофанова

В итоге откроется редактор с возможностью сохранения изменений:

Тут стоит обратить внимание на то, что текстовый редактор запускается из терминала, поэтому если вы во время работы закроете окно терминала, то тут же закроется и запущенный из него Gedit, так что будьте внимательны.

Итак, я немного рассказал про систему управления правами доступа в Ubuntu, надеюсь, вы поняли хотя бы основы. Я настоятельно рекомендую вам самостоятельно до конца разобраться в системе прав доступа к файлам и в утилите sudo . Чуть подробней про sudo можно почитать, например, на нашей вики. А пока продолжим знакомство с основами работы в Ubuntu, осталось рассмотреть ещё одну тему:

источник

Как дать права root пользователю Linux Ubuntu

В операционной системе Ubuntu пользователи, которые состоят в группе «sudo», могут выполнять задачи администратора, используя одноименную группе команду — sudo. Сегодня мы рассмотрим, как дать пользователю данную привелегию или же ее отозвать.

Как создать суперпользователя в Ubuntu

Создаем нового пользователя

Для того, чтобы создать нового пользователя воспользуемся командой adduser:

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

Создание нового пользователя ubuntu

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

Подтверждаем правильность ввода пароля

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

Заполняем дополнительную информацию о пользователе

Добавляем пользователя в группу sudo

Теперь, когда пользователь создан присоеденим его к группе суперпользователя — sudo:

Присоединяем пользователя Ubuntu к групе sudo

Осталось только проверить, что все прошло успешно. Переключим пользователя на testuser и попробуем выполнить команду whoami от имени суперпользователя:

Смена пользователя и проверка root

Чтобы переключить текущего пользователя обратно на своего — используем команду su имя_пользователя.

Как дать существующему пользователю привелегии суперюзера

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

Как отзвать привелегии суперпользователя

Для того, чтобы сделать пользователя обычным — без прав выполнения команд от имени суперпользователя нужно удалить его из группы sudo. Сделать это можно с помощью следующей команды:

Удаление пользователя из группы sudo

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

Проверяем отсутствие прав суперпользователя

Как мы можем видеть — система не позволяет пользователю использовать команду sudo.

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

источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Ubuntu Server — административные права пользователей.

Как показывает читательский отклик, вопрос разделения административных прав в Ubuntu до сих пор остается малопонятным для большинства начинающих администраторов, поэтому мы решили данным материалом внести некоторую ясность в данный вопрос. Поэтому если вы не знаете чем su отличается от sudo, куда спрятали root’а и т.д. и т.п. — самое время приступить к изучению нашей статьи.

Начнем с небольшого отступления. Система административных прав Linux восходит корнями к ОС Unix и поэтому имеет много общего с другими Unix-like системами: BSD, Solaris, MacOS. В тоже время различные дистрибутивы имеют свои особенности реализации отдельных моментов, поэтому конкретные примеры мы будем приводить относительно семейства Ubuntu, однако знание общих правил позволит вам без труда разобраться в среде любой другой Unix-like ОС.

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

Поэтому в Linux принята иная схема, все пользователи, включая администраторов, работают под ограниченной учетной записью, а для выполнения административных действий используют один из механизмов повышения прав. Для этого можно повысить права с помощью утилиты sudo или войти под именем суперпользователя (root’а) не завершая текущий сеанс с помощью команды su. Многие ошибочно путают эти два механизма, поэтому разберем их подробнее.

Команда su позволяет войти в систему под именем другого пользователя (не обязательно root) не завершая текущий сеанс. Так команда:

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

Команда su без указания имени пользователя позволяет войти под учетной записью root‘а. Однако данный способ имеет один существенный недостаток — для входа от имени другого пользователя нужно знать его пароль. Если у вас несколько администраторов, то каждый из них будет знать пароль суперпользователя и ограничить в правах вы их не сможете.

Читайте также:  Установки по улучшению дизельного топлива

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

Что будет если мы попробуем таким образом повысить права в Ubuntu? У нас ничего не получится, так как мы не знаем пароля пользователя root, в тоже время никто не мешает нам войти под иным пользователем.

«Подождите!» — скажет иной пользователь, — «а разве права root’а не получает первый созданный пользователь, которого мы указываем при установке?» Действительно, административные задачи можно выполнить только от имени созданного при установке пользователя, при попытке сделать это от имени другого пользователя нас постигнет неудача.

Здесь мы вплотную подходим к второму механизму повышения прав — утилите sudo. Однако прежде чем переходить к ее изучению стоит внести ясность: права суперпользователя (root) в Ubuntu принадлежат учетной записи root, которая по умолчанию отключена. Поэтому повысить права с помощью команды su не представляется возможным.

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

Это важно! Основным отличием su от sudo служит то, что su позволяет сменить текущего пользователя на root, что требует активной записи суперпользователя в системе и знания пароля к ней, sudo позволяет повысить права для выполняемой команды без указания пароля суперпользователя, пользователь должен ввести свой собственный пароль, войти под root с этим учетными данными не получится.

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

с правами root будет выполнена только команда1. А команда

выдаст ошибку прав доступа так как запись в /etc/apt/sources.list будет происходить с правами обычного пользователя.

Чтобы выполнять сложные комбинации команд вы можете перейти в режим суперпользователя командой

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

Теперь самое время разобраться, кто имеет право использовать возможности sudo и в каком объеме. За настройки данной утилиты отвечает файл /etc/sudoers, несмотря на то, что это обычный конфигурационный файл для его редактирования настоятельно рекомендуется использовать команду:

Данная команда блокирует файл и осуществляет проверку синтаксиса, в противном случае вы рискуете из-за опечатки потерять административный доступ к ПК.

Синтаксис данного файла весьма прост. Например в самом конце файла содержится запись:

Это означает, что пользователи группы admin могут выполнять на любом хосте, от имени любого пользователя любую команду. Как мы можем легко убедиться с помощью команды groups в нашем случае пользователь andrey входит в группу admin, а пользователь petrov нет.

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

Данная строка позволяет пользователю petrov выполнить любую команду на хосте ubuntu-lts от имени пользователя andrey. При указании команд следует указывать полный путь к ним, узнать его можно при помощи команды which

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

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

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

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

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

Приведенный набор записей позволит пользователям входящим в USERGROUP1 выполнять любые команды от имени пользователей www-data и www-developer на веб-серверах компании.

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

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

Помните, что все административные задачи в Ubuntu можно решать с использованием утилиты sudo, поэтому не включайте учетную запись root без реальной необходимости!

Как видим, Ubuntu имеет богатые возможности управления административными правами, что позволяет гибко распределять права между несколькими администраторами, а также давать возможность повышения прав некоторым пользователям, причем делать это эффективно и безопасно.

источник

Добавить комментарий