Перейти к содержимому

1 какой uid у пользователя sit2 в какие группы он входит

  • автор:

Лабораторная работа №2. Разграничение прав доступа¶

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

Теоретическая часть

У каждого объекта (файла) есть уникальное имя, по которому к нему можно обращаться, и конечный набор операций, которые процессы могут выполнять в отношении этого объекта. Файлу свойственны операции read, write и execute.

Совершенно очевидно, что нужен способ запрещения процессам доступа к тем объектам, к которым у них нет прав доступа. Более того, этот механизм должен также предоставлять возможность при необходимости ограничивать процессы поднабором разрешенных операций. Например, процессу A может быть дано право проводить чтение данных из файла F, но не разрешено вести запись в этот файл.

Права доступа означают разрешение на выполнение той или иной операции (чтение, записи, исполнения).

Когда пользователь входит в систему, его оболочка получает UID и GID (UID – идентификатор пользователя, GID — идентификатор группы), которые содержатся в его записи в файле паролей, и они наследуются всеми его дочерними процессами. Представляя любую комбинацию (UID, GID), можно составить полный список всех объектов (файлов, включая устройства ввода-вывода, которые представлены в виде специальных файлов и т.д.), к которым процесс может обратиться с указанием возможного типа доступа (чтение, запись, исполнение).

Два процесса с одинаковой комбинацией (UID, GID) будут иметь абсолютно одинаковый доступ к одинаковому набору объектов. Процессы с различающимися значениями (UID, GID) будут иметь доступ к разным наборам файлов, хотя, может быть, и со значительным перекрытием этих наборов.

SUID (Set User ID)

Атрибут исполняемого файла, позволяющий запустить его с правами владельца. В операционных системах Linux приложение запускается с правами пользователя, запустившего указанное приложение. Это обеспечивает дополнительную безопасность т.к. процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root. Если на исполняемый файл установлен бит suid, то при выполнении эта программа автоматически меняет «эффективный userID» на идентификатор того пользователя, который является владельцем этого файла. То есть, не зависимо от того — кто запускает эту программу, она при выполнении имеет права хозяина этого файла.

SGID (Set Group ID)

Аналогичен SUID, но относиться к группе. При этом, если для каталога установлен бит SGID, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя.

Практические примеры

Узнать права на файл/директорию

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

В нашем случае это :

  • «rwx» — Права владельца файла
  • «r-x» — Права группы файла
  • «r-x» — Права всех остальных на файл.

Символ «r» означает, что чтение (просмотр данных содержащихся в файле) разрешено, «w» означает запись (изменение, а также удаление данных) разрешено и «x» означает исполнение (запуск программы разрешен).

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

Определение текущего пользователя и групп в которых он состоит

Перед тем, как изменять владельца или группу которой принадлежит файл, необходимо уметь определять текущего пользователя и группу к которой он принадлежит. Чтобы узнать под каким пользователем вы работаете, наберите whoami:

Для определения в каких группах состоит пользователь sit, необходимо воспользоваться командой groups:

Из этого примера видно, что пользователь sit состоит в группах sit, adm, cdrom, sudo, dip, plugdev, lxd, lpadmin, sambashare. Если вы хотите посмотреть, в каких группах состоит другой пользователь, то передайте его имя в качестве аргумента.

Изменение пользователя и группы владельца

Чтобы изменить владельца или группу файла (или другого объекта) используется команды chown или chgrp соответственно. Сначала нужно передать имя группы или владельца, а потом список файлов.

Можно также изменять пользователя и группу одновременно используя команду chown в другой форме:

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

Знакомство с chmod

chown и chgrp используются для изменения владельца и группы объекта файловой системы, но кроме них существует и другая программа, называемая chmod, которая используется для изменения прав доступа на чтение, запись и исполнение, которые мы видим в выводе команды ls -l. Команда chmod использует два и более аргументов: метод, описывающий как именно необходимо изменить права доступа с последующим именем файла или списком файлов, к которым необходимо применить эти изменения:

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

Разделение между пользователем, группой и всеми остальными

Часто бывает удобно изменить только один или два набора прав доступа за раз. Чтобы сделать это, просто необходимо использовать специальный символ для обозначения набора прав доступа, который необходимо изменить, со знаком «+»» или «—» перед ним. Символ «u» для пользователя, «g» для группы и «o» для остальных пользователей.

Данный пример удаляет право на запись для группы и всех остальных пользователей, но оставляет права владельца нетронутыми.

Числовые режимы

Существует еще один достаточно распространенный способ указания прав: использование четырехзначных восьмеричных чисел. Этот синтаксис, называется числовым синтаксисом прав доступа, где каждая цифра представляет тройку разрешений. Например, в 0777, 777 устанавливают флаги для владельца, группы, и остальных пользователей. Ниже таблица показывающая как транслируются права доступа на числовые значения.

umask

Когда процесс создает новый файл, он указывает, какие права доступа нужно задать для данного файла. Зачастую запрашиваются права 0666 (чтение и запись всеми), что дает больше разрешений, чем необходимо в большинстве случаев. К счастью, каждый раз, когда в Linux создается новый файл, система обращается к параметру, называемому umask. Система использует значение umask чтобы понизить изначально задаваемые разрешения на что-то более разумное и безопасное. Вы можете просмотреть текущие настройки umask набрав umask в командной строке:

В Linux-системах значением по умолчанию для umask является 0022, что позволяет другим читать ваши новые файлы (если они могут до них добраться), но не изменять их. Чтобы автоматически обеспечивать больший уровень защищенности для создаваемых файлов, можно изменить настройки umask:

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

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

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

Изменение suid и sgid

Способ установки и удаления битов suid и sgid чрезвычайно прост. Чтобы задать бит suid:

Чтобы задать бит sgid:

Определение первого знака прав доступа

Он используется для задания битов sticky, suid и sgid совместно с правами доступа:

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

Консольные команды:

  • id <печать идентификатора пользователя>
  • chgrp <изменить группу файла>
  • chown <изменить владельца и группу файлов>
  • chmod <изменить права доступа к файлу>
  • usermod <изменение параметров учетной записи пользователя>
  • useradd <создание нового пользователя>
  • userdel <удаление пользователя>
  • whoami <определение текущего пользователя>
  • umask <определение или установление маски прав доступа для вновь создаваемых файлов>
  • sudo su <получение прав суперпользователя>
  • groups <определение к каким группам принадлежит пользователь>

Задания к лабораторной работе¶

  • Откройте два терминала (в серверных Linux для переключения между терминалами (tty) обычно используется сочетание клавиш Alt+F[1-5]). В одном из них получите права суперпользователя используя команду sudo su:
  • Изучите как создать пользователя с домашним каталогом с помощью команды useradd из справочной документации man
  • Используя useradd создайте пользователя «sit2» c домашним каталогом «sit2».
  • Установите пароль для нового пользователя «sit2» с помощью команды passwd sit2
  • Выйдите из суперпользователя командой exit
  • Войдите под первым терминалом в пользователя «sit», во втором в пользователя «sit2».
  • Посмотрите какой идентификатор получил пользователь «sit» и пользователь «sit2» используя команду id
  • Посмотрите права доступа на домашний каталог пользователей «sit» и «sit2», используя команду ls
  • Создайте файл под пользователем «sit2» с маской 0077 используя umask
  • Попробуйте прочитать его содержимое под пользователем «sit» используя команду cat
  • Измените права доступа на файл так, чтобы пользователь «sit» мог записывать в файл, но не читать его.
  • Запишите текстовую информацию в файл из под пользователя «sit» используя консольный текстовый редактор vi или nano
  • Проверьте права на файл, и прочитайте его содержимое из под пользователя «sit2»
  • Создайте каталог из под пользователя «sit2»
  • Установите права записи для группы пользователей на данный каталог
  • Добавьте пользователя «sit» в группу «sit2» с помощью команды usermod
  • Проверьте в какие группы входит пользователь «sit»
  • Создайте несколько файлов в каталоге, который был создан пользователем «sit2» из под пользователя «sit».
  • Ознакомьтесь как удалить пользователя вместе с содержимым его домашнего каталога из справочной документации
  • Удалите пользователя «sit2» вместе с его домашним каталогом.

Вопросы к лабораторной работе¶

  1. Какой uid у пользователя sit2? В какие группы он входит?
  2. Почему попытка удалить пользователя не удалась, и что нужно сделать для его удаления?
  3. Какие права доступа установлены на домашний каталог пользователя «sit» ?
  4. Как рекурсивно изменить права доступа на файлы в каталоге?
  5. Как можно осуществлять переключение между пользователями в рамках одного терминала?
  6. Как удалить пользователя при этом сохранив его домашний каталог и данные внутри него?
  7. Какое значение umask нужно установить, чтобы владелец и группа имели право на чтение, запись и исполнение, а все остальные пользователи не имели никаких прав?
  8. Как рекурсивно снять все suid биты с файлов в каталоге?
  9. Как разрешить программе (файлу) исполняться?
  10. Что такое бит sticky? Для чего он предназначен?
  11. Зачем нужны uid и gid?
  12. Почему uid пользователя задается больше 1000?

Составьте отчет о выполнении лабораторной работы.

Включите в него копии экрана и ответы на вопросы лабораторной работы.

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

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

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

Добавление пользователя

Добавление нового пользователя:

Будет создана домашняя директория developer внутри директории /home :

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

Справка по команде useradd :

Но учетная запись будет заблокирована, пока для нее не будет установлен пароль:

Изменение пользователя

Изменить учетную запись:

Справка по команде usermod :

Удаление пользователя

Справка по команде userdel :

Информация о пользователе

С помощью команд id и w :

Управление группами

Создание группы

Создание новой группы:

Справка по команде groupadd :

Изменение группы

Изменение имени группы:

Справка по команде groupmod :

Удаление группы

Группы пользователя

Информация о группах пользователя:

Для добавления пользователя в группу или удаления пользователя из группы можно использовать утилиту gpasswd :

Файлы passwd и group

Список всех пользователей и список всех групп можно посмотреть в файлах /etc/passwd и /etc/group .

Файл /etc/passwd

В файле /etc/passwd хранится вся информация о пользователях, кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя:

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

  1. Имя пользователя для входа в систему.
  2. Необязательный зашифрованный пароль.
  3. Числовой идентификатор пользователя (UID).
  4. Числовой идентификатор группы (GID).
  5. Поле комментария.
  6. Домашний каталог пользователя.
  7. Оболочка пользователя.

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

Файл /etc/group

В файле /etc/group , как очевидно из названия, хранится информация о группах. Одна строка из этого файла соответствует описанию одной группы:

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

  1. Название группы.
  2. Необязательный зашифрованный пароль.
  3. Числовой идентификатор группы (GID).
  4. Список пользователей, находящихся в группе.

В этом файле второе и четвертое поля могут быть пустыми.

Файл /etc/shadow

Файл /etc/shadow хранит в себе зашифрованные пароли пользователей, поэтому права, установленные на этот файл, не дают считать его простому пользователю.

Права, пользователи и прочее в Linux (часть 2)

Права, пользователи и прочее в Linux (часть 2)

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

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

Что такое пользователи?

По факту это любой кто использует компьютер. Имя пользователя это как правило его псевдоним, логин, который может состоять из букв Eng алфавита, арабских чисел и нижнего подчеркивания. Использовать можно любое имя кроме root, hal и adm, так как эти имена являются зарезервированными системой именами. Кроме логина в системе может храниться и полное имя реального пользователя, что иногда, при администрировании бывает полезным.

Что имеет каждый пользователь в linux системе?

  1. домашняя папка — для каждого пользователя создается своя домашняя директория в директории /home. Там могут храниться все его личные данные;
  2. командная оболочка — каждый пользователь имеет свою командную оболочку (командный интерпретатор), например /bin/bash, bin/sh и другие. (по умолчанию, как правило, используется /bin/bash)
  3. личный идентификатор (User ID) — каждый пользователь нумеруется, чтобы система могла отслеживать его, ибо она это делает только по uid пользователя
  4. пароль — естественно, каждый пользователь имеет свой пароль, которых храниться в зашифрованном виде (encripted)
  5. группа — и каждый пользователь может находиться в одной или более группе, о них мы поговорим немного подробнее..

Что такое группы?

Чтобы администраторам было проще разделять полномочия между пользователями, в Linux системах существуют группы, поэтому для каждого файла в linux системе определяется не только пользователь но и группа. По факту группы нужны для того, чтобы предоставить одинаковые полномочия на файлы или какие-нибудь действия. И опять же, каждая группа имеет свой уникальный идентификатор — GID (GroupID)

Как узнать, какие пользователи есть в системе?

Информация о пользователях храниться в файле /etc/passwd в виде строк, одна строка — это один пользователь, и эта строка имеет следующий формат:

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

  • account — логин пользователя
  • password — зашифрованный пароль пользователя
  • UID — id пользователя (uid создается более 1000)
  • GID — id основной группы (gid создается более 100)
  • GECOS — дополнительная информация о пользователе (не обязательно)
  • directory — домашний каталог ($HOME) пользователя
  • shell — командный интерпретатор пользователя (обычно /bin/sh)

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

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

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

При создании пользователя, нужно выполнить ряд следующих действий:

  1. создается запись в /etc/passwd
  2. создается домашний каталог пользователя (/home/username)
  3. устанавливаются необходимые права
  4. назначается необходимая командная оболочка
  5. модифицируются конфигурационные файлы прочих приложений

Чтобы как то упростить жизнь администраторам, существует специальная утилита useradd. Настройки этой утилиты хранятся в файле /etc/default/useradd, в котором можно изменить применяемые новым пользователям параметры по умолчанию.

Чтобы создать нового пользователя lolosh в группе users и lalki достаточно набрать следующую команду:

расшифровывается эта команда следующим образом:

Что означают эти ключи:

  • m — создаёт домашний каталог, вида /home/[имя пользователя]
  • -g — имя или номер основной группы пользователя
  • -G — список дополнительных групп, в которые входит пользователь
  • -s — определяет командную оболочку пользователя.

Подробнее узнать о том, что умеет эта утилита можно почитать в man страницах.

Добавление и изменение дополнительной информации

Для того, чтобы наделить пользователя дополнительной информацией, можно воспользоваться командой chfn. Рассмотрим что мы можем добавить:

Подробнее, о возможностях этой команды читайте man.

Задаем или изменяем пароль

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

далее программа дважды попросит ввести новый пароль.

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

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

Удаление пользователя

Удалить пользователя можно следующей командой:

Обратите внимание, с указанным ключом -r удаляется и его домашняя директория.

Управление группами

Тут так же нет ничего сложного. Чтобы просмотреть список существующих групп, достаточно отобразить файл /etc/group:

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

Какой uid у пользователя sit2 в какие группы он входит

· Откройте два терминала (в серверных Linux для переключения между терминалами (tty) обычно используется сочетание клавиш Alt+F[1-5]). В одном из них получите права суперпользователя используя команду sudo su:

· Изучите как создать пользователя с домашним каталогом с помощью команды useradd из справочной документации man

· Используя useradd создайте пользователя «sit2» c домашним каталогом «sit2».

· Установите пароль для нового пользователя «sit2» с помощью команды passwd sit2

· Выйдите из суперпользователя командой exit

· Войдите под первым терминалом в пользователя «sit», во втором в пользователя «sit2».

· Посмотрите какой идентификатор получил пользователь «sit» и пользователь «sit2» используя команду id

· Посмотрите права доступа на домашний каталог пользователей «sit» и «sit2», используя команду ls

· Создайте файл под пользователем «sit2» с маской 0077 используя umask

· Попробуйте прочитать его содержимое под пользователем «sit» используя команду cat

· Измените права доступа на файл так, чтобы пользователь «sit» мог записывать в файл, но не читать его.

· Запишите текстовую информацию в файл из под пользователя «sit» используя консольный текстовый редактор vi или nano

· Проверьте права на файл, и прочитайте его содержимое из под пользователя «sit2»

· Создайте каталог из под пользователя «sit2»

· Установите права записи для группы пользователей на данный каталог

· Добавьте пользователя «sit» в группу «sit2» с помощью команды usermod

· Проверьте в какие группы входит пользователь «sit»

· Создайте несколько файлов в каталоге, который был создан пользователем «sit2» из под пользователя «sit».

· Ознакомьтесь как удалить пользователя вместе с содержимым его домашнего каталога из справочной документации

· Удалите пользователя «sit2» вместе с его домашним каталогом.

Лабораторная работа №2. Разграничение прав доступа¶

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

Теоретическая часть

У каждого объекта (файла) есть уникальное имя, по которому к нему можно обращаться, и конечный набор операций, которые процессы могут выполнять в отношении этого объекта. Файлу свойственны операции read, write и execute.

Совершенно очевидно, что нужен способ запрещения процессам доступа к тем объектам, к которым у них нет прав доступа. Более того, этот механизм должен также предоставлять возможность при необходимости ограничивать процессы поднабором разрешенных операций. Например, процессу A может быть дано право проводить чтение данных из файла F, но не разрешено вести запись в этот файл.

Права доступа означают разрешение на выполнение той или иной операции (чтение, записи, исполнения).

Когда пользователь входит в систему, его оболочка получает UID и GID (UID – идентификатор пользователя, GID — идентификатор группы), которые содержатся в его записи в файле паролей, и они наследуются всеми его дочерними процессами. Представляя любую комбинацию (UID, GID), можно составить полный список всех объектов (файлов, включая устройства ввода-вывода, которые представлены в виде специальных файлов и т.д.), к которым процесс может обратиться с указанием возможного типа доступа (чтение, запись, исполнение).

Два процесса с одинаковой комбинацией (UID, GID) будут иметь абсолютно одинаковый доступ к одинаковому набору объектов. Процессы с различающимися значениями (UID, GID) будут иметь доступ к разным наборам файлов, хотя, может быть, и со значительным перекрытием этих наборов.

SUID (Set User ID)

Атрибут исполняемого файла, позволяющий запустить его с правами владельца. В операционных системах Linux приложение запускается с правами пользователя, запустившего указанное приложение. Это обеспечивает дополнительную безопасность т.к. процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root. Если на исполняемый файл установлен бит suid, то при выполнении эта программа автоматически меняет «эффективный userID» на идентификатор того пользователя, который является владельцем этого файла. То есть, не зависимо от того — кто запускает эту программу, она при выполнении имеет права хозяина этого файла.

SGID (Set Group ID)

Аналогичен SUID, но относиться к группе. При этом, если для каталога установлен бит SGID, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя.

Практические примеры

Узнать права на файл/директорию

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

В нашем случае это :

  • «rwx» — Права владельца файла
  • «r-x» — Права группы файла
  • «r-x» — Права всех остальных на файл.

Символ «r» означает, что чтение (просмотр данных содержащихся в файле) разрешено, «w» означает запись (изменение, а также удаление данных) разрешено и «x» означает исполнение (запуск программы разрешен).

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

Определение текущего пользователя и групп в которых он состоит

Перед тем, как изменять владельца или группу которой принадлежит файл, необходимо уметь определять текущего пользователя и группу к которой он принадлежит. Чтобы узнать под каким пользователем вы работаете, наберите whoami:

Для определения в каких группах состоит пользователь sit, необходимо воспользоваться командой groups:

Из этого примера видно, что пользователь sit состоит в группах sit, adm, cdrom, sudo, dip, plugdev, lxd, lpadmin, sambashare. Если вы хотите посмотреть, в каких группах состоит другой пользователь, то передайте его имя в качестве аргумента.

Изменение пользователя и группы владельца

Чтобы изменить владельца или группу файла (или другого объекта) используется команды chown или chgrp соответственно. Сначала нужно передать имя группы или владельца, а потом список файлов.

Можно также изменять пользователя и группу одновременно используя команду chown в другой форме:

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

Знакомство с chmod

chown и chgrp используются для изменения владельца и группы объекта файловой системы, но кроме них существует и другая программа, называемая chmod, которая используется для изменения прав доступа на чтение, запись и исполнение, которые мы видим в выводе команды ls -l. Команда chmod использует два и более аргументов: метод, описывающий как именно необходимо изменить права доступа с последующим именем файла или списком файлов, к которым необходимо применить эти изменения:

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

Разделение между пользователем, группой и всеми остальными

Часто бывает удобно изменить только один или два набора прав доступа за раз. Чтобы сделать это, просто необходимо использовать специальный символ для обозначения набора прав доступа, который необходимо изменить, со знаком «+»» или «—» перед ним. Символ «u» для пользователя, «g» для группы и «o» для остальных пользователей.

Данный пример удаляет право на запись для группы и всех остальных пользователей, но оставляет права владельца нетронутыми.

Числовые режимы

Существует еще один достаточно распространенный способ указания прав: использование четырехзначных восьмеричных чисел. Этот синтаксис, называется числовым синтаксисом прав доступа, где каждая цифра представляет тройку разрешений. Например, в 0777, 777 устанавливают флаги для владельца, группы, и остальных пользователей. Ниже таблица показывающая как транслируются права доступа на числовые значения.

umask

Когда процесс создает новый файл, он указывает, какие права доступа нужно задать для данного файла. Зачастую запрашиваются права 0666 (чтение и запись всеми), что дает больше разрешений, чем необходимо в большинстве случаев. К счастью, каждый раз, когда в Linux создается новый файл, система обращается к параметру, называемому umask. Система использует значение umask чтобы понизить изначально задаваемые разрешения на что-то более разумное и безопасное. Вы можете просмотреть текущие настройки umask набрав umask в командной строке:

В Linux-системах значением по умолчанию для umask является 0022, что позволяет другим читать ваши новые файлы (если они могут до них добраться), но не изменять их. Чтобы автоматически обеспечивать больший уровень защищенности для создаваемых файлов, можно изменить настройки umask:

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

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

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

Изменение suid и sgid

Способ установки и удаления битов suid и sgid чрезвычайно прост. Чтобы задать бит suid:

Чтобы задать бит sgid:

Определение первого знака прав доступа

Он используется для задания битов sticky, suid и sgid совместно с правами доступа:

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

Консольные команды:

  • id <печать идентификатора пользователя>
  • chgrp <изменить группу файла>
  • chown <изменить владельца и группу файлов>
  • chmod <изменить права доступа к файлу>
  • usermod <изменение параметров учетной записи пользователя>
  • useradd <создание нового пользователя>
  • userdel <удаление пользователя>
  • whoami <определение текущего пользователя>
  • umask <определение или установление маски прав доступа для вновь создаваемых файлов>
  • sudo su <получение прав суперпользователя>
  • groups <определение к каким группам принадлежит пользователь>

Задания к лабораторной работе¶

  • Откройте два терминала (в серверных Linux для переключения между терминалами (tty) обычно используется сочетание клавиш Alt+F[1-5]). В одном из них получите права суперпользователя используя команду sudo su:
  • Изучите как создать пользователя с домашним каталогом с помощью команды useradd из справочной документации man
  • Используя useradd создайте пользователя «sit2» c домашним каталогом «sit2».
  • Установите пароль для нового пользователя «sit2» с помощью команды passwd sit2
  • Выйдите из суперпользователя командой exit
  • Войдите под первым терминалом в пользователя «sit», во втором в пользователя «sit2».
  • Посмотрите какой идентификатор получил пользователь «sit» и пользователь «sit2» используя команду id
  • Посмотрите права доступа на домашний каталог пользователей «sit» и «sit2», используя команду ls
  • Создайте файл под пользователем «sit2» с маской 0077 используя umask
  • Попробуйте прочитать его содержимое под пользователем «sit» используя команду cat
  • Измените права доступа на файл так, чтобы пользователь «sit» мог записывать в файл, но не читать его.
  • Запишите текстовую информацию в файл из под пользователя «sit» используя консольный текстовый редактор vi или nano
  • Проверьте права на файл, и прочитайте его содержимое из под пользователя «sit2»
  • Создайте каталог из под пользователя «sit2»
  • Установите права записи для группы пользователей на данный каталог
  • Добавьте пользователя «sit» в группу «sit2» с помощью команды usermod
  • Проверьте в какие группы входит пользователь «sit»
  • Создайте несколько файлов в каталоге, который был создан пользователем «sit2» из под пользователя «sit».
  • Ознакомьтесь как удалить пользователя вместе с содержимым его домашнего каталога из справочной документации
  • Удалите пользователя «sit2» вместе с его домашним каталогом.

Вопросы к лабораторной работе¶

  1. Какой uid у пользователя sit2? В какие группы он входит?
  2. Почему попытка удалить пользователя не удалась, и что нужно сделать для его удаления?
  3. Какие права доступа установлены на домашний каталог пользователя «sit» ?
  4. Как рекурсивно изменить права доступа на файлы в каталоге?
  5. Как можно осуществлять переключение между пользователями в рамках одного терминала?
  6. Как удалить пользователя при этом сохранив его домашний каталог и данные внутри него?
  7. Какое значение umask нужно установить, чтобы владелец и группа имели право на чтение, запись и исполнение, а все остальные пользователи не имели никаких прав?
  8. Как рекурсивно снять все suid биты с файлов в каталоге?
  9. Как разрешить программе (файлу) исполняться?
  10. Что такое бит sticky? Для чего он предназначен?
  11. Зачем нужны uid и gid?
  12. Почему uid пользователя задается больше 1000?

Составьте отчет о выполнении лабораторной работы.

Включите в него копии экрана и ответы на вопросы лабораторной работы.

Linux 1. Какой uid у пользователя sit2? В какие группы он входит? 2. Почему попытка удалить пользователя не удалась, и

Откройте два терминала (в серверных Linux для переключения между терминалами (tty)
обычно используется сочетание клавиш Alt+F[1-5]). В одном из них получите права
суперпользователя используя команду sudo su:
Изучите как создать пользователя с домашним каталогом с помощью команды useradd
из справочной документации man
Используя useradd создайте пользователя «sit2» c домашним каталогом «sit2».
Установите пароль для нового пользователя «sit2» с помощью команды passwd sit2
Выйдите из суперпользователя командой exit
Войдите под первым терминалом в пользователя «sit», во втором в пользователя «sit2».
Посмотрите какой идентификатор получил пользователь «sit» и пользователь «sit2»
используя команду id
Посмотрите права доступа на домашний каталог пользователей «sit» и «sit2», используя
команду ls
Создайте файл под пользователем «sit2» с маской 0077 используя umask
Попробуйте прочитать его содержимое под пользователем «sit» используя команду cat
Измените права доступа на файл так, чтобы пользователь «sit» мог записывать в файл,
но не читать его.
Запишите текстовую информацию в файл из под пользователя «sit» используя
консольный текстовый редактор vi или nano
Проверьте права на файл, и прочитайте его содержимое из под пользователя «sit2»
Создайте каталог из под пользователя «sit2»
Установите права записи для группы пользователей на данный каталог
Добавьте пользователя «sit» в группу «sit2» с помощью команды usermod
Проверьте в какие группы входит пользователь «sit»
Создайте несколько файлов в каталоге, который был создан пользователем «sit2» из под
пользователя «sit».
Ознакомьтесь как удалить пользователя вместе с содержимым его домашнего каталога
из справочной документации
Удалите пользователя «sit2» вместе с его домашним каталогом.

1. Какой uid у пользователя sit2? В какие группы он входит?

2. Почему попытка удалить пользователя не удалась, и что нужно сделать для его удаления?

3. Какие права доступа установлены на домашний каталог пользователя «sit»?

4. Как рекурсивно изменить права доступа на файлы в каталоге?

5. Как можно осуществлять переключение между пользователями в рамках одного терминала?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *