В августе прошлого года Linux Foundation начал LFCS сертификация (Сертифицированный системный администратор Linux Foundation), совершенно новая программа, цель которой - позволить людям повсюду и в любом месте сдать экзамен, чтобы получить сертификат по основам промежуточная операционная поддержка для систем Linux, которая включает поддержку работающих систем и служб, а также общий мониторинг и анализ, а также интеллектуальное принятие решений, чтобы иметь возможность решить, когда необходимо передать проблемы в группы поддержки более высокого уровня.
Просмотрите следующее видео, в котором описывается введение в программу сертификации Linux Foundation.
Эта статья является 8-й частью длинной серии из 10 руководств, здесь, в этом разделе, мы расскажем, как управлять разрешениями пользователей и групп в системе Linux, которые необходимы для сертификационного экзамена LFCS.
Поскольку Linux является многопользовательской операционной системой (в том смысле, что она позволяет нескольким пользователям на разных компьютерах или терминалах получать доступ к одной системе), вам необходимо знать как осуществлять эффективное управление пользователями: как добавлять, редактировать, приостанавливать или удалять учетные записи пользователей, а также предоставлять им необходимые разрешения для выполнения назначенных им задания.
Чтобы добавить новую учетную запись пользователя, вы можете запустить любую из следующих двух команд от имени пользователя root.
# adduser [new_account] # useradd [new_account]
Когда в систему добавляется новая учетная запись пользователя, выполняются следующие операции.
1. Его домашний каталог создан (/home/username по умолчанию).
2. Следующие скрытые файлы копируются в домашний каталог пользователя и будут использоваться для предоставления переменных среды для его / ее пользовательского сеанса.
.bash_logout. .bash_profile. .bashrc.
3. Почтовый ящик создается для пользователя в / var / spool / mail /имя пользователя.
4. Группа создается и получает то же имя, что и новая учетная запись пользователя.
Полная информация об учетной записи хранится в /etc/passwd файл. Этот файл содержит запись для каждой системной учетной записи пользователя и имеет следующий формат (поля разделены двоеточием).
[имя пользователя]: [x]: [UID]: [GID]: [Комментарий]: [Домашний каталог]: [Оболочка по умолчанию]
Информация о группе хранится в /etc/group файл. Каждая запись имеет следующий формат.
[Название группы]: [Пароль группы]: [GID]: [Участники группы]
После добавления учетной записи вы можете редактировать следующую информацию (чтобы назвать несколько полей), используя usermod команда, основной синтаксис usermod которой следующий.
# usermod [параметры] [имя пользователя]
Использовать -Дата истечения срока годности флаг, за которым следует дата в ГГГГ-ММ-ДД формат.
# usermod --expiredate 2014-10-30 tecmint.
Используйте комбинированный -aG, или –Append–Группы options, за которым следует список групп, разделенных запятыми.
# usermod --append --groups root, users tecmint.
Использовать -d, или -дом параметры, за которыми следует абсолютный путь к новому домашнему каталогу.
# usermod --home / tmp tecmint.
Использовать -оболочка, а затем путь к новой оболочке.
# usermod --shell / bin / sh tecmint.
# группы tecmint. # id tecmint.
Теперь давайте выполним все вышеперечисленные команды за один раз.
# usermod --expiredate 2014-10-30 --append --groups root, users --home / tmp --shell / bin / sh tecmint.
В приведенном выше примере мы установим дату истечения срока действия Tecmint учетная запись пользователя для 30 октября 2014 г.. Мы также добавим аккаунт в корень и группа пользователей. Наконец, мы установим ш
в качестве оболочки по умолчанию и измените расположение домашнего каталога на /tmp:
Читайте также:
Для существующих учетных записей мы также можем сделать следующее.
Использовать -L (заглавная L) или -замок возможность заблокировать пароль пользователя.
# usermod --lock tecmint.
Использовать –U или –Unlock возможность разблокировать ранее заблокированный пароль пользователя.
# usermod --unlock tecmint.
Выполните следующую серию команд, чтобы достичь цели.
# groupadd common_group # Добавить новую группу. # chown: common_group common.txt # Измените владельца группы common.txt на common_group. # usermod -aG common_group user1 # Добавить пользователя user1 в common_group. # usermod -aG common_group user2 # Добавить пользователя2 в common_group. # usermod -aG common_group user3 # Добавить пользователя user3 в common_group.
Вы можете удалить группу с помощью следующей команды.
# groupdel [имя_группы]
Если есть файлы, принадлежащие имя группы, они не будут удалены, но владельцем группы будет GID группы, которая была удалена.
Помимо основных разрешений на чтение, запись и выполнение, которые мы обсуждали в Инструменты архивации и установка атрибутов файлов - Часть 3 из этой серии, есть и другие, менее используемые (но не менее важные) настройки разрешений, иногда называемые «специальные разрешения”.
Как и основные разрешения, обсуждавшиеся ранее, они устанавливаются с помощью восьмеричного файла или буквы (символическое обозначение), указывающей тип разрешения.
Вы можете удалить учетную запись (вместе с ее домашним каталогом, если он принадлежит пользователю, и все файлы, находящиеся в нем, а также почтовый ящик) с помощью юзердел команда с -Удалить вариант.
# userdel --remove [имя пользователя]
Каждый раз, когда в систему добавляется новая учетная запись пользователя, создается группа с таким же именем с именем пользователя в качестве ее единственного члена. Другие пользователи могут быть добавлены в группу позже. Одна из целей групп - реализовать простой контроль доступа к файлам и другим системным ресурсам путем установки правильных разрешений на эти ресурсы.
Например, предположим, что у вас есть следующие пользователи.
Всем им нужно читать и написать доступ к файлу с именем common.txt расположен где-нибудь в вашей локальной системе или, возможно, в сетевой папке, которая user1 создал. У вас может возникнуть соблазн сделать что-то вроде,
# chmod 660 common.txt. ИЛИ. # chmod u = rw, g = rw, o = common.txt [обратите внимание на пробел между последним знаком равенства и именем файла]
Однако это только обеспечит читать и написать доступ к владельцу файла и тем пользователям, которые являются членами группы владельца файла (user1 в таком случае). Опять же, у вас может возникнуть соблазн добавить user2 и user3 группировать user1, но это также даст им доступ к остальным файлам, принадлежащим пользователю user1 и группа user1.
Здесь группы пригодятся, и вот что вам следует делать в таком случае.
Когда Setuid разрешение применяется к исполняемому файлу, пользователь, запускающий программу, наследует действующие привилегии владельца программы. Поскольку такой подход может вызвать серьезные проблемы с безопасностью, количество файлов с разрешением setuid должно быть сведено к минимуму. Вы, вероятно, найдете программы с этим набором разрешений, когда пользователю системы потребуется доступ к файлу, принадлежащему пользователю root.
Подводя итог, можно сказать, что не только пользователь может выполнять двоичный файл, но и то, что он может делать это с привилегиями root. Например, давайте проверим разрешения /bin/passwd. Этот двоичный файл используется для изменения пароля учетной записи и изменяет /etc/shadow файл. Суперпользователь может изменить любой пароль, но все остальные пользователи должны иметь возможность изменять только свой собственный.
Таким образом, у любого пользователя должно быть разрешение на запуск /bin/passwd, но только root сможет указать учетную запись. Другие пользователи могут изменять только свои соответствующие пароли.
Когда Setgid бит установлен, эффективный GID реального пользователя становится владельцем группы. Таким образом, любой пользователь может получить доступ к файлу с привилегиями, предоставленными владельцу группы такого файла. Кроме того, когда для каталога установлен бит setgid, вновь созданные файлы наследуют ту же группу, что и каталог, а вновь созданные подкаталоги также унаследуют бит setgid родительского каталог. Скорее всего, вы будете использовать этот подход всякий раз, когда членам определенной группы потребуется доступ ко всем файлам в каталоге, независимо от основной группы владельца файла.
# chmod g + s [имя файла]
Чтобы установить Setgid в восьмеричной форме добавьте число 2 к текущим (или желаемым) базовым разрешениям.
# chmod 2755 [каталог]
Когда "липкий кусочек»Установлен для файлов, Linux просто игнорирует его, в то время как для каталогов он мешает пользователям от удаления или даже переименования содержащихся в нем файлов, если только пользователь не владеет каталогом, файлом или корень.
# chmod o + t [каталог]
Чтобы установить липкий кусочек в восьмеричной форме добавьте число 1 к текущим (или желаемым) базовым разрешениям.
# chmod 1755 [каталог]
Без липкого бита любой, кто может писать в каталог, может удалять или переименовывать файлы. По этой причине липкий бит обычно находится в каталогах, таких как /tmp, которые доступны для записи во всем мире.
Существуют и другие атрибуты, которые позволяют дополнительно ограничивать операции, разрешенные с файлами. Например, запретите переименование, перемещение, удаление или даже изменение файла. Они установлены с команда chattr и его можно просмотреть с помощью lsattr инструмент, как указано ниже.
# chattr + i file1. # chattr + файл 2.
После выполнения этих двух команд file1 будет неизменным (что означает, что его нельзя переместить, переименовать, изменить или удалить), тогда как файл2 войдет в режим только добавления (может быть открыт только в режиме добавления для записи).
Один из способов получить доступ к учетной записи root - ввести.
$ su.
а затем введите пароль root.
Если аутентификация прошла успешно, вы войдете в систему как корень с текущим рабочим каталогом, как и раньше. Если вместо этого вы хотите, чтобы вас поместили в домашний каталог root, запустите.
$ su -
а затем введите пароль root.
Вышеупомянутая процедура требует, чтобы обычный пользователь знал пароль root, что представляет серьезную угрозу безопасности. По этой причине системный администратор может настроить судо команда, позволяющая обычному пользователю выполнять команды от имени другого пользователя (обычно суперпользователя) контролируемым и ограниченным образом. Таким образом, для пользователя могут быть установлены ограничения, позволяющие ему запускать одну или несколько определенных привилегированных команд и никаких других.
Читайте также: Разница между пользователем su и sudo
Для аутентификации с помощью судо, пользователь использует собственный пароль. После ввода команды нам будет предложено ввести пароль (не суперпользователя), и если аутентификация прошла успешно (и если пользователю были предоставлены права на выполнение команды), указанная команда осуществляется.
Чтобы предоставить доступ к sudo, системный администратор должен отредактировать /etc/sudoers файл. Рекомендуется редактировать этот файл с помощью Visudo вместо того, чтобы открывать ее непосредственно в текстовом редакторе.
# visudo.
Это открывает /etc/sudoers файл с использованием vim (вы можете следовать инструкциям, приведенным в Установка и использование vim в качестве редактора - часть 2 этой серии для редактирования файла).
Это самые актуальные строки.
По умолчанию secure_path = "/ usr / sbin: / usr / bin: / sbin" root ALL = (ВСЕ) ВСЕ. tecmint ALL = / bin / yum update. gacanepa ALL = NOPASSWD: / bin / updatedb. % admin ALL = (ВСЕ) ВСЕ.
Давайте посмотрим на них поближе.
По умолчанию secure_path = "/ usr / sbin: / usr / bin: / sbin: / usr / local / bin"
Эта строка позволяет указать каталоги, которые будут использоваться для судо, и используется для предотвращения использования пользовательских каталогов, которые могут нанести вред системе.
Следующие строки используются для указания разрешений.
root ALL = (ВСЕ) ВСЕ.
tecmint ALL = / bin / yum update.
Если после = знак, sudo предполагает пользователя root. В этом случае пользователь Tecmint сможет бежать ням обновление как корень.
gacanepa ALL = NOPASSWD: / bin / updatedb.
В NOPASSWD директива позволяет пользователю gacanepa запускать /bin/updatedb без необходимости вводить его пароль.
% admin ALL = (ВСЕ) ВСЕ.
В % знак указывает, что эта строка относится к группе под названием «админ”. Смысл остальной части строки идентичен значению обычного пользователя. Это означает, что участники группы «админ»Может запускать все команды от имени любого пользователя на всех хостах.
Чтобы узнать, какие привилегии предоставляет вам sudo, используйте «-l»Возможность перечислить их.
Подключаемые модули аутентификации (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.
На изображении выше мы видим, что libpam был связан с приложением входа в систему. Это имеет смысл, поскольку это приложение участвует в операции аутентификации пользователей системы, а top - нет.
Давайте проверим файл конфигурации PAM на предмет пароль - да, известная утилита для смены паролей пользователей. Он расположен по адресу /etc/pam.d/passwd:
# cat / etc / passwd.
В первом столбце указывается тип
аутентификации, которая будет использоваться с путь к модулю
(третий столбец). Когда перед типом стоит дефис, PAM не будет записывать в системный журнал, если модуль не может быть загружен, потому что он не может быть найден в системе.
Доступны следующие типы аутентификации:
учетная запись
: этот тип модуля проверяет, предоставил ли пользователь или служба действительные учетные данные для аутентификации.авторизация
: этот тип модуля проверяет, является ли пользователь тем, за кого себя выдает, и предоставляет все необходимые привилегии.пароль
: этот тип модуля позволяет пользователю или службе обновлять свой пароль.сессия
: этот тип модуля указывает, что должно быть сделано до и / или после успешной аутентификации.Второй столбец (называемый контроль
) указывает, что должно произойти, если аутентификация с этим модулем не удалась:
реквизит
: если аутентификация через этот модуль не удалась, общая аутентификация будет немедленно отклонена.обязательный
аналогичен реквизиту, хотя все остальные перечисленные модули для этой службы будут вызываться перед отказом в аутентификации.достаточный
: если аутентификация через этот модуль не удалась, PAM все равно предоставит аутентификацию, даже если предыдущий, помеченный как обязательный, не прошел.по желанию
: если аутентификация через этот модуль не удалась или завершилась успешно, ничего не произойдет, если только это единственный модуль такого типа, определенный для данной службы.включают
означает, что строки данного типа следует читать из другого файла.подстаканник
аналогичен include, но сбои или успехи аутентификации вызывают выход не всего модуля, а только подстека.Четвертый столбец, если он существует, показывает аргументы, передаваемые модулю.
Первые три строки в /etc/pam.d/passwd (показано выше), загрузите system-auth модуль, чтобы проверить, что пользователь предоставил действительные учетные данные (учетную запись). Если да, это позволяет ему / ей изменить токен аутентификации (пароль), дав разрешение на использование passwd (авторизация).
Например, если вы добавите
помните = 2.
к следующей строке
пароль достаточный pam_unix.so sha512 shadow nullok try_first_pass use_authtok.
в /etc/pam.d/system-auth:
достаточный пароль pam_unix.so sha512 shadow nullok try_first_pass use_authtok Remember = 2.
последние два хешированных пароля каждого пользователя сохраняются в /etc/security/opasswd чтобы их нельзя было использовать повторно:
Навыки эффективного управления пользователями и файлами являются важными инструментами для любого системного администратора. В этой статье мы рассмотрели основы и надеемся, что вы сможете использовать ее как хорошую отправную точку для дальнейшего развития. Не стесняйтесь оставлять свои комментарии или вопросы ниже, и мы оперативно ответим.