Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям — LFCS часть 8

LFCS

Сегодня поговорим про управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям. В августе прошлого года Linux Foundation запустила сертификацию LFCS (Linux Foundation Certified Sysadmin), блестящую возможность для системных администраторов продемонстрировать с помощью экзамена, что они могут выполнять общую поддержку Linux-систем.

Эта статья является 8 частью серии 20 статей, в этом разделе мы расскажем вам, как управлять пользователями и группами разрешений в системе Linux.

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

 

 

Добавление учетных записей пользователей

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

# adduser [new_account]
# useradd [new_account]

 

Когда в систему добавляется новая учетная запись пользователя, выполняются следующие операции.

1. Создается домашний каталог (/home/username).

2. Следующие скрытые файлы копируются в домашний каталог пользователя и будут использоваться для предоставления переменных среды для сеанса пользователя.

.bash_logout
.bash_profile
.bashrc

 

3. Для пользователя создается почтовая папка в /var/spool/mail/username.

4. Группа создается и получает то же имя, что и новая учетная запись пользователя.

 

 

Что такое /etc/passwd?

Итак, как управлять атрибутами файлов? Полная информация учетной записи хранится в файле /etc/passwd. Этот файл содержит запись для каждой учетной записи пользователя системы и имеет следующий формат (поля разделяются двоеточием).

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]

 

  • Поля [username] и [Comment] являются пояснительными.
  • X во втором поле указывает, что учетная запись защищена теневым паролем (в /etc/shadow), который необходим для входа в систему как [username].
  • Поля [UID] и [GID] представляют собой целые числа, которые представляют идентификатор пользователя и первичный идентификатор группы, к которому принадлежит [username].
  • В [Home directory] указывается абсолютный путь к домашнему каталогу [username]
  • [Default shell] — это оболочка, которая будет доступна этому пользователю при входе в систему.

 

 

Что такое /etc/group?

Информация о группе сохраняется в файле /etc/group. Каждая запись имеет следующий формат.

[Group name]:[Group password]:[GID]:[Group members]

 

  • [Group name] — это имя группы.
  • X в [Group password] указывает, что групповые пароли не используются.
  • [GID]: то же, что и в /etc/passwd.
  • [Group members]: список пользователей, которые являются членами [Group name].

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

 

После добавления учетной записи вы можете отредактировать следующую информацию (чтобы назвать несколько полей) с помощью команды usermod.

# usermod [options] [username]

 

 

Установка даты истечения срока действия учетной записи

Используйте опцию -expiredate, а затем дату в формате YYYY-MM-DD.

# usermod --expiredate 2014-10-30 tecmint

 

 

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

Используйте комбинированные опции -aG или -append -groups, а затем список разделенных запятыми групп.

# usermod --append --groups root,users tecmint

 

 

Изменение местоположения по умолчанию в домашнем каталоге пользователя

Используйте опции -d или -home, а затем напишите полный путь к новому домашнему каталогу.

# usermod --home /tmp tecmint

 

 

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

Используйте -shell, а затем путь к новой оболочке.

# usermod --shell /bin/sh tecmint

 

Отображение групп, в которых пользователь является членом
# groups tecmint
# id tecmint

 

 

Теперь давайте выполним все вышеперечисленные команды за один раз.

# usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh tecmint

 

 

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

В приведенном выше примере мы установим дату истечения срока действия учетной записи пользователя tecmint до 30 октября 2014 года. Мы также добавим учетную запись в группу root и users. Наконец, мы установим sh в качестве оболочки по умолчанию и изменим местоположение домашнего каталога на /tmp.

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

Отключение учетной записи путем блокировки пароля

Используйте -L (верхний регистр L) или опцию -lock, чтобы заблокировать пароль пользователя.

# usermod --lock tecmint

 

 

Разблокировка пароля пользователя

Используйте опцию -u или -unlock, чтобы разблокировать пароль пользователя, который был ранее заблокирован.

# usermod --unlock tecmint

 

Lock-User-Accounts

 

 

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

Поговорим про управление атрибутами файлов. Выполните следующую команду для достижения цели.

# groupadd common_group # Add a new group
# chown :common_group common.txt # Change the group owner of common.txt to common_group
# usermod -aG common_group user1 # Add user1 to common_group
# usermod -aG common_group user2 # Add user2 to common_group
# usermod -aG common_group user3 # Add user3 to common_group

 

 

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

Вы можете удалить группу со следующей командой.

# groupdel [group_name]

 

Если есть файлы, принадлежащие group_name, они не будут удалены, но владелец группы будет установлен в GID группы, которая была удалена.

 

 

Разрешения файла Linux

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

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

 

 

Удаление учетных записей пользователей

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

# userdel --remove [username]

 

 

Управление группой

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

Например, предположим, что у вас есть следующие пользователи.

  • User1 (основная группа: user1)
  • User2 (основная группа: user2)
  • User3 (основная группа: user3)

Все они нуждаются в доступе для чтения и записи к файлу с именем common.txt, расположенному где-то в вашей локальной системе, или, возможно, к сетевому ресурсу, созданным user1. У вас может возникнуть соблазн сделать что-то вроде:

# chmod 660 common.txt
OR
# chmod u=rw,g=rw,o= common.txt [Обратите внимание на пробел между последним знаком равенства и именем файла]

 

Однако это обеспечит доступ только для чтения и записи владельцу файла и тем пользователям, которые являются членами группы владельца  файла (в этом случае user1). Опять же, у вас может возникнуть соблазн добавить user2 и user3 в группу user1, но это также даст им доступ к остальным файлам, принадлежащим пользователю user1 и группе user1.

И вот что вы должны делать в таком случае.

 

 

Что такое Setuid?

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

Например, давайте проверим разрешения /bin/passwd. Этот двоичный файл используется для изменения пароля учетной записи и изменения файла /etc/shadow. Суперпользователь может изменить чей-либо пароль, но все остальные пользователи должны иметь возможность изменять свои собственные.

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

Таким образом, любой пользователь должен иметь разрешение на запуск /bin/passwd, но только root сможет указать учетную запись. Другие пользователи могут изменять только соответствующие пароли.

Change-User-Password

 

 

Понимание Setgid

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

# chmod g+s [filename]

 

Чтобы установить setgid в восьмеричной форме, добавьте номер 2 к текущим (или желаемым) основным разрешениям.

# chmod 2755 [directory]

 

 

Установка SETGID в каталоге

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8
Общие сведения о Sticky Bit

Когда «Sticky Bit» установлен в файлы, Linux просто игнорирует его, тогда как для каталогов он не позволяет пользователям удалять или даже переименовывать содержащиеся в нем файлы, если пользователь не владеет каталогом, файлом или не является root пользователем.

# chmod o+t [directory]

 

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

# chmod 1755 [directory]

 

Без «Sticky Bit» любой, кто имеет доступ в каталог, может удалить или переименовать файлы. По этой причине «Sticky Bit» обычно находится в каталогах, таких как /tmp, который критически важен для системы.

Add-Stickybit-to-Directory

 

 

Специальные атрибуты файла Linux

Существуют и другие атрибуты, которые дают дополнительные ограничения на действия, разрешенные для файлов. Например, запреты на: переименование, перемещение, удаление или изменение файла. Они задаются командой chattr и могут быть просмотрены с помощью инструмента lsattr следующим образом.

# chattr +i file1
# chattr +a file2

 

После выполнения этих двух команд file1 будет неизменен (это означает, что он не может быть перемещен, переименован, изменен или удален), тогда как file2 войдет в режим только для добавления (может быть открыт только в режиме добавления для записи).

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

 

 

Доступ к корневой учетной записи (супер пользователь) и использование sudo

Один из способов, которым пользователи могут получить доступ к учетной записи root, — это ввести:

$ su

 

А затем введите пароль root.

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

$ su -

 

А затем введите пароль root.

Enable-Sudo-Access-on-Users

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

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

Чтобы предоставить доступ к sudo, системный администратор должен отредактировать файл /etc/sudoers. Рекомендуется, чтобы этот файл редактировался с помощью команды visudo, а не открывая его непосредственно текстовым редактором.

# visudo

 

Эта команда открывает файл /etc/sudoers с помощью vim (вы можете следовать инструкциям, приведенным в разделе «Установка и использование vim как основного редактора» — 2 часть этой серии статей, чтобы отредактировать файл).

Ниже приведены самые важные строки файла конфигурации.

Defaults secure_path="/usr/sbin:/usr/bin:/sbin"
root ALL=(ALL) ALL
tecmint ALL=/bin/yum update
gacanepa ALL=NOPASSWD:/bin/updatedb
%admin ALL=(ALL) ALL

 

Давайте посмотрим на них подробнее.

Defaults secure_path="/usr/sbin:/usr/bin:/sbin"

 

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

Следующие строки используются для указания разрешений.

root ALL=(ALL) ALL

 

  • Первое ключевое слово ALL указывает, что это правило применяется ко всем хостам.
  • Второе ALL указывает, что пользователь может запускать команды с привилегиями любого пользователя.
  • Третье  ALL означает, что может быть запущена любая команда.
tecmint ALL=/bin/yum update

 

Если ни один пользователь не указан после знака =, sudo предполагает пользователя root. В этом случае пользователь tecmint сможет запустить обновление yum с правами root.

gacanepa ALL=NOPASSWD:/bin/updatedb

 

Директива NOPASSWD позволяет пользователю gacanepa запускать /bin/updatedb без необходимости вводить свой пароль.

%admin ALL=(ALL) ALL

 

Знак % указывает, что эта строка относится к группе под названием «admin». Значение остальной части строки идентично смыслу обычного пользователя. Это означает, что члены группы «admin» могут выполнять все команды как любой пользователь на всех хостах.

Чтобы узнать, какие привилегии предоставлены вам sudo, используйте параметр «-l», чтобы вывести их список.

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

 

 

PAM (подключаемые модули аутентификации)

Подключаемые модули аутентификации (PAM) обеспечивают гибкость настройки конкретной схемы аутентификации для каждого приложения или службы с использованием модулей. Этот инструмент, присутствующий во всех современных дистрибутивах Linux, преодолел проблему, с которой часто сталкиваются разработчики в первые дни пользования Linux, когда каждая программа, требующая аутентификации, должна была быть скомпилирована отдельно, чтобы знать, как получить необходимую информацию. Важно отметить, что очень полезно управлять атрибутами файлов.

Например, с помощью PAM не имеет значения, сохранен ли ваш пароль в /etc/shadow или на отдельном сервере внутри вашей сети.

Когда программе входа в систему требуется аутентификация пользователя, PAM динамически предоставляет библиотеку, содержащую функции для правильной схемы аутентификации. Таким образом, изменение схемы аутентификации для приложения входа (или любой другой программы с использованием PAM) это очень просто, поскольку они включают только редактирование файла конфигурации (скорее всего, файл конфигурации, названный в честь приложения, расположенный внутри /etc/pam.d, и менее вероятно, в /etc/pam.conf).

Файлы внутри /etc/pam.d указывают, какие приложения используют PAM изначально. Кроме того, мы можем сказать, использует ли какое-либо приложение PAM, проверяя, связана ли с ним библиотека PAM (libpam):

# ldd $ (который входит в систему) | grep libpam # login использует PAM
# ldd $ (который сверху) | grep libpam # top не использует PAM

 

Check-Linux-PAM-Library

 

На приведенном выше изображении мы видим, что libpam связан с приложением входа. Это имеет смысл, поскольку это приложение задействовано в работе аутентификации пользователей системы, в то время как top — нет. Это поможет управлять атрибутами файлов.

Давайте рассмотрим конфигурационный файл PAM для passwd — известная утилита для изменения паролей пользователей. Он расположен по адресу /etc/pam.d/passwd:

# cat /etc/passwd

 

PAM-Configuration-File-for-Linux-Password

 

Первый столбец указывает тип аутентификации, который будет использоваться с модулем (третий столбец). Когда перед типом появляется дефис, PAM не будет записываться в системный журнал, если модуль не может быть загружен, потому что его невозможно найти в системе.

 

Доступны следующие типы аутентификации:

  • Account: этот тип модуля проверяет, предоставил ли пользователь или услуга действительные учетные данные для аутентификации.
  • Auth: этот тип модуля подтверждает, что пользователь является тем, кем он утверждает, и предоставляет любые необходимые привилегии.
  • Password: этот тип модуля позволяет пользователю или услуге обновлять свой пароль.
  • Session: этот тип модуля указывает, что должно быть сделано до или после успешной проверки подлинности.

 

Второй столбец (называемый контролем) указывает, что должно произойти, если произошел сбой аутентификации:

  • requisite: если аутентификация через этот модуль выходит из строя, полная аутентификация будет немедленно отклонена.
  • required: аналогично requisite, хотя все другие перечисленные модули для этой службы будут вызваны до отказа в аутентификации.
  • sufficient: если аутентификация через этот модуль выходит из строя, PAM все равно будет продолжать аутентификацию, даже если предыдущий пункт помеченный как необходимый не удалось выполнить.
  • optional: если аутентификация через этот модуль завершается с ошибкой или завершается успешно, ничего не происходит, если только это не единственный модуль его типа, определенный для этой службы.
  • include: означает, что строки данного типа следует читать из другого файла.
  • substack: аналогичен include, но ошибки или успехи в аутентификации не вызывают выхода из полного модуля, но только для подстановки.

 

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

Первые три строки в /etc/pam.d/passwd (показано выше) загружают модуль system-auth для проверки того, что пользователь предоставил действительные учетные данные (учетная запись). Если это так, это позволяет ему менять пароль аутентификации, разрешая использовать passwd.

Например, если вы добавили:

remember=2

 

Следующую строку:

password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok

 

В /etc/pam.d/system-auth:

password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2

 

Последние два хэшированных пароля каждого пользователя сохраняются в /etc/security/opasswd, так что они не могут быть повторно использованы:

Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям -- LFCS часть 8

 

 

Итоги

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасностиполный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

 

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LFCS

Больше похожих постов

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню