Debian linux права пользователей

Права суперпользователя Debian (sudo, visudo)

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

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

Установка и настройка

В ОС Ubuntu sudo включена по умолчанию, а в Debian, если в процессе установки не был выбран соответствующий пакет, скорее всего будет следующая картина:

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

Дожидаемся окончания процесса:

Процесс установки sudo

После успешной установки потребуется сконфигурировать sudo, определив, какие пользователи или группы смогут использовать повышение привилегий и в каком объеме. Все эти настройки хранятся в конфигурационном файле /etc/sudoers, однако вносить в него изменения напрямую настоятельно не рекомендуется. Для этих целей используется специальная команда:

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

Текстовый редактор

За предоставление прав здесь отвечают две строки:

Первая строка назначает права для учетной записи root, вторая устанавливает права для членов группы sudo, которая была создана при установке пакета (знак % перед названием означает, что имя относится к группе пользователей). Соответственно, у нас есть два основных способа предоставить пользовательской учетной записи право использовать sudo:

Добавить учетную запись пользователя (например, user) в группу sudo на сервере:

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

Создать в файле новую запись, например, для учетной записи user. Мы добавляем строку по аналогии с root:

Добавлять новую запись рекомендуется в тех случаях, когда список привилегий будет корректироваться (об этом чуть позднее). Если мы внесли изменения в файл, нужно их сохранить нажатием сочетания клавиш Ctrl-O и выйти из редактора — Ctrl-X.

Теперь можно проверить корректность работы:

Команда sudo запрашивает пароль текущего пользователя (в данном случае это user) — вводим его, и, если все сделано правильно, мы увидим содержание системного конфигурационного файла.

Читайте также:  Как установить ntfs linux

Тонкая настройка

Таким образом, обычный пользователь может запускать команды с правами учетной записи root не зная ее пароль. Это очень удобно, но может быть небезопасно — есть ли возможность ограничить круг команд, которые можно исполнять посредством sudo? Да, и поможет нам в этом тот же самый конфигурационный файл. Снова запускаем visudo и разбираемся дальше. Нас интересуют параметры, указанные после имени пользователя:

Настройки ограничения команд

  • ALL=(ALL:ALL) ALL — первый параметр определяет к какому хосту применяется конфигурация. При использовании выделенного сервера параметр можно оставить без изменений;
  • ALL=(ALL:ALL) ALL — параметры в скобках определяют с полномочиями какого пользователя (первый параметр) и/или группы (второй параметр) будет выполняться команда. По умолчанию sudo выполняет команду от имени root, однако при запуске с ключом –u можно указать другую учетную запись, а с ключом –g другую группу, чьи полномочия будут использованы при запуске;
  • ALL=(ALL:ALL) ALL — третий параметр определяет к каким файлам и командам относятся данные настройки.

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

дает право пользователю user с помощью sudo осуществлять перезагрузку сервера командой sudo /sbin/shutdown -r и просматривать файлы с помощью sudo /bin/cat. Другие команды через sudo выполняться не будут. Например, при попытке выключить сервер командой:

Полезное

Увидеть список привилегий можно, запустив sudo -l (будет отображен список для текущего пользователя), либо sudo -l -U user (будет отображен список привилегий пользователя user):

Список привилегий пользователя

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

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

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

Источник

Права доступа в Debian и команды chmod и chown

Думаю многие сталкивались с проблемой, когда необходимо было изменить пользователя/группу для папок/файлов. Самый доступный способ-это поковыряться в меню mc (midnight commander), но что делать, когда нужно сменить права и пользователя не для папки и подпапок. Вручную решать данную проблему не самый лучший вариант. Наверняка многие слышали либо мельком видели такие команды chmod и chown, некоторым наверняка даже приходилось пользоваться командами.Честно признаться сам долгое время старался всячески избегать данных команд, т.к копаться в манах не было ни малейшего желания. Однако, в итоге был вынужден использовать данные команды.

Изменение прав доступа:
Вообще в Linux права доступа разделяются на символьные и абсолютные . Символьные представляются в виде букв латинского алфавита, а абсолютные — в виде арабских цифр.

Читайте также:  Tp link t2u archer linux drivers

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

lex@lex:~$ ls -l ./linux_tools.pdf 

В результате мы получим примерно следующее (символьное представление):

-rw-r--r-- 1 lex users 289489 Окт 5 17:36 ./linux_tools.pdf 

Итак, lex — это наш пользователь-владелец данного файла. users — это группа, которой принадлежит данный файл.

289489 — это размер данного файла в байтах.

После размера идет дата создания и имя файла. Тут все понятно. Теперь рассмотрим первую часть вывода (-rw-r–r–)

В самом начале, как мы видим, стоит символ “ — ”. Это означает, что перед нами файл. Если бы в начале стояла буква “ d ”, то это означало бы, что перед нами каталог.

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

блок (rw-) — это как раз права доступа для нашего пользователя. Первая позиция в правах отвечает за чтение, вторая за запись, третья — за исполнение файла. Соответственно,

r - чтение; w - запись; - в данном случае запрет на исполнение данного файла. 

Если бы файл был исполняемым, то вместо символа — была бы буква x (английского алфавита естественно). Полный список доступных параметров см. ниже.

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

Права доступа для группы имеют вид -r- Здесь мы видим, что для группы данный файл доступен только для чтения. (На позициях 2 и 3 у нас стоят символы “-«).

Права доступа для остальных имеют вид -r- . Такой же, как и для группы.

Абсолютное представление прав доступа для нашего файла будет иметь вид в виде цифры:

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

Как получаются число 644 ? Тут все очень просто. Как было сказано выше, это восьмеричное представление. Если мы возьмем первый разряд (цифра 6) и переведем в двоичную систему исчисления, то получим цифру 110 . Ни на какие мысли не наводит ? Как было сказано выше, права доступа к файлам и папкам задаются в последовательности: чтение, запись, выполнение . На чтении у нас стоит 1, значит читать можно. С записью ситуация та же. А вот на исполнении у нас 0, значит исполнять файл нельзя. Ниже приведена таблица соответствия восьмеричной и двоичной системы исчисления. После ее просмотра все должно стать понятно.

Читайте также:  Linux mint after installation
Восьмеричный формат Двоичный формат
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

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

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

Думаю, что тут все понятно и перейдем непосредственно к заданию прав доступа.

chmod — изменяет права доступа к файлу (собственно из man-а)

Данная команда имеет различные опции: rwxXstugo

r -чтение; w -запись; x -выполнение (или доступ к каталогу); X -выполнение, если файл является каталогом или уже имеет право на выполнение для какого-нибудь пользователя; s -setuid- или setgid-биты; t -sticky-бит; u -установка для остальных таких же прав доступа, которые имеет пользователь, владеющий этим файлом; g -установка для остальных таких же прав доступа, которые имеет группа файла; o -установка для остальных таких же прав доступа, которые имеют остальные пользователи (не входящие в группу файла). 

Т.е, предположим, что у нас есть “Папка_А”, которую нам надо сделать доступной для чтения/записи и выполнения (доступа к каталогу).
От рута (супер пользователя) вводим в консоли команду:

chmod +rwx путь_к_папке/ Папка_А 

В абсолютном исполнении команда будет выглядеть примерно так:

chmod маска_прав_доступа путь_к_папке/ Папка_А 

Кстати говоря, перед опциями могут стоять следующие операторы: = (равно), — (минус) , + (плюс)

Оператор + добавляет выбранные права доступа к уже имеющимся у каждого файла;
— удаляет эти права;
= присваивает только эти права каждому указанному файлу.

А что делать, если надо поменять права не только на Папка_А , но и на вложенные в нее папки? Все очень просто добавляем опцию рекурсивного изменения прав доступа -R :

chmod =rwx -R путь_к_папке/ Папка_А 

О дополнительных возможностях chmod читаем, набрав

изменение владельца/группы

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

Допустим есть Папка_А и нам надо сменить владельца и группы данной папки на pupkin. От рута (супер пользователя) делаем следующее:

chown -R pupkin:any_group /путь_к_файлу/ 

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

pupkin:any_group — означает пользователь:группа

Ну вот вроде бы и все.. Как оказалось ничего сложного нету

Источник

Оцените статью
Adblock
detector