- Запрет повышения прав пользователям через su
- С чего начать
- Создать группу wheel
- Как внести пользователя в группу wheel
- Запуск su только пользователями из группы wheel
- Как добавить пользователя в Sudoers в CentOS
- Добавление пользователя в группу wheel
- Добавление пользователя в файл sudoers
- Выводы
- Как добавить пользователя в sudoers – настроить sudo-доступ
- Как добавить обычного пользователя в группу wheel и предоставить группе wheel неограниченный доступ?
- Как добавить конкретного пользователя в sudoers?
- Пользователи и группы в Linux
- Различные типы пользователей
- Пользователи в Linux
- Работая как root
- Использование su
- Использование sudo
- PolicyKit
- Пример переключения учетных записей пользователей
- Управление аккаунтами пользователей
- Обычные и системные аккаунты
- Создание пользователей
- Изменение файлов конфигурации
- Использование useradd
- Каталог home
- Управление свойствами пользователя
- Файлы конфигурации для управления пользователями по умолчанию
- Управление свойствами пароля
- Создание пользовательской среды
- Создание и управление аккаунтами групп
- Группы в Linux
- Создание групп с помощью vigr или groupadd
- Создание групп с помощью vigr
- Создание групп с помощью groupadd
- Управление свойствами группы
- Пример работы с группами
Запрет повышения прав пользователям через su
Во многих руководствах по linux (и не только по linux) в вопросах безопасности регулярно появляются рекомендации выполнять все неадминистративные действия под пользователем, не имеющим прав администратора / суперпользователя. Проще говоря, все рекомендуют не работать постоянно под пользователем root и прибегать к работе под root только в необходимых случаях.
На самом деле, во многих ситуациях возникает необходимость запускать процессы под пользователем, который не только не имеет прав root, но и не может повысить свои права до root. Никак, никаким образом. Такая необходимость возникает (создавать таких пользователей имеет смысл) для сервисов, выполняющихся на сервере. Например, Apache, Asterisk, и так далее. То есть чтобы тот, кто может получить права такого пользователя, не только не получил бы прав root, но даже (вдруг) узнав пароль root, не смог бы зайти под этим паролем (повысить свои привилегии).
В более старых версиях linux по умолчанию был выставлен следующий режим: пользователи, относящиеся к группе wheel, могут запускать команду su, а все остальные — нет. То есть запускать su могут все, но для пользователей не из группы wheel команда su даже с правильным паролем root будет выдавать ошибку.
В современных версиях linux, к примеру, CentOS и Debian, по умолчанию такая возможность отключена, т.е. все пользователи могут повысить свои права (зная пароль root). В данной статье мы покажем как вернуть режим, который был раньше — чтобы только пользователи из группы wheel могли «поднимать» свои привилегии.
С чего начать
В первую очередь, надо обезопасить себя. То есть обязательно внесите того пользователя, под которым Вы работаете, в группу wheel. Ну а если в системе работает несколько пользователей, под которыми необходимо время от времени повышать привилегии до root, то каждый из этих пользователей должен быть внесен в группу wheel!
Обратите внимание, это важно сделать до того, как Вы измените настройки linux, иначе (если к примеру, Вы подключаетесь к серверу по SSH, по SSH доступ под рутом закрыт) зайдя под обычным пользователем по SSH, Вы не сможете повышать свои привилегии до рута!
Создать группу wheel
Возможно, что в Вашей версии linux по умолчанию нет группы wheel. Тогда ее необходимо создать. Для этого существует следующая команда:
addgroup wheel
Не бойтесь вводить эту команду: если группа wheel существует, будет выдано сообщение, что такая группа уже есть. Если же такой группы нет, она будет создана
Как внести пользователя в группу wheel
Для этого существует команда:
usermod -a -G wheel имя-пользователя
например:
usermod -a -G wheel username
Эта команда добавляет пользователя username в группу wheel. Если при этом пользователь состоит в одной или нескольких других группах, членство во всех группах сохраняется, просто пользователь добавляется в еще одну (дополнительную) группу.
Теперь проверьте, что все выполнено правильно. Для этого существует команда:
id имя-пользователя
например:
id username
Будет отображен ID пользователя, имя пользователя, а также ID и имя каждой группы, к которой пользователь принадлежит. Убедитесь, что все необходимые пользователи добавлены в группу wheel.
Запуск su только пользователями из группы wheel
Откройте в Вашем текстовом редакторе файл: /etc/pam.d/su
В этом файле найдите строку, подобную следующей:
auth required pam_wheel.so
или
auth required pam_wheel.so use_uid
По умолчанию эта строка начинается со знака «#», это энак комментария. Уберите знак комментария из начала этой строки и сохраните файл.
Всё! Теперь только пользователи из группы wheel могут выполнять команду su и повышать свои привилегии до root. Не забудьте это проверить!
Источник
Как добавить пользователя в Sudoers в CentOS
sudo — это утилита командной строки, позволяющая доверенным пользователям запускать команды от имени другого пользователя, по умолчанию root.
У вас есть два варианта предоставить пользователю доступ к sudo. Первый — добавить пользователя в файл sudoers . Этот файл содержит информацию, которая определяет, каким пользователям и группам предоставлены привилегии sudo, а также уровень этих привилегий.
Второй вариант — добавить пользователя в группу sudo, определенную в файле sudoers . По умолчанию в дистрибутивах на основе RedHat, таких как CentOS и Fedora, членам группы «wheel» предоставляются привилегии sudo.
Добавление пользователя в группу wheel
Самый простой способ предоставить привилегии sudo пользователю в CentOS — это добавить пользователя в группу «wheel». Члены этой группы могут запускать все команды через sudo и sudo запрос на аутентификацию с помощью своего пароля при использовании sudo .
Мы предполагаем, что пользователь уже существует. Если вы хотите создать нового пользователя, ознакомьтесь с этим руководством.
Чтобы добавить пользователя в группу , выполните приведенную ниже команду от имени пользователя root или другого пользователя sudo. Измените «имя пользователя» на имя пользователя, которому вы хотите предоставить разрешения.
Предоставления доступа sudo с помощью этого метода достаточно для большинства случаев использования.
Чтобы проверить доступ sudo, выполните команду whoami :
Вам будет предложено ввести пароль. Если у пользователя есть доступ к sudo, команда выведет «root»:
Если вы получаете сообщение об ошибке «пользователя нет в файле sudoers», это означает, что у пользователя нет прав sudo.
Добавление пользователя в файл sudoers
Права sudo пользователей и групп настраиваются в /etc/sudoers . Добавление пользователя в этот файл позволяет предоставить настраиваемый доступ к командам и настроить настраиваемые политики безопасности для пользователя.
Вы можете настроить доступ пользователя sudo, изменив файл sudoers или создав новый файл конфигурации в каталоге /etc/sudoers.d . Файлы внутри этого каталога включены в файл sudoers.
Чтобы отредактировать файл /etc/sudoers , используйте команду visudo . Эта команда проверяет файл на наличие синтаксических ошибок при его сохранении. Если есть ошибки, файл не сохраняется. Если вы откроете файл в текстовом редакторе, синтаксическая ошибка может привести к потере доступа sudo.
Обычно visudo использует vim для открытия /etc/sudoers . Если у вас нет опыта работы с vim и вы хотите отредактировать файл с типом nano :
Допустим, вы хотите разрешить пользователю запускать команды sudo без запроса пароля. Откройте файл /etc/sudoers :
Прокрутите вниз до конца файла и добавьте следующую строку:
Сохраните файл и выйдите из редактора . Не забудьте изменить «имя пользователя» на имя пользователя, которому вы хотите предоставить доступ.
Другой распространенный пример — разрешить пользователю запускать только определенные команды через sudo . Например, чтобы разрешить использование только команд du и ping :
Вместо редактирования файла sudoers вы можете добиться того же, создав новый файл с правилами авторизации в каталоге /etc/sudoers.d . Добавьте то же правило, что и в файл sudoers:
Такой подход делает управление привилегиями sudo более удобным в обслуживании. Имя файла не имеет значения. Обычно имя файла совпадает с именем пользователя.
Выводы
Предоставление доступа sudo пользователю — простая задача, все, что вам нужно сделать, это добавить пользователя в группу «wheel».
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Источник
Как добавить пользователя в sudoers – настроить sudo-доступ
Команда sudo предлагает механизм предоставления доверенным пользователям административного доступа к системе без совместного использования пароля пользователя root.
Sudoer (обычный пользователь, добавленный в sudoers) после аутентификации, может выполнять административные команды, как если бы они были запущены пользователем root.
В этом уроке мы приводим два примера:
- Как добавить обычного пользователя в группу wheel и дать группе wheel неограниченный доступ к root
- Как добавить конкретного пользователя в sudoers
Как добавить обычного пользователя в группу wheel и предоставить группе wheel неограниченный доступ?
1. Войдите в систему как пользователь root
2. Создайте обычного пользователя
3. Задайте пароль для нового пользователя.
4. Отредактируйте файл sudoers
Измените файл /etc/sudoers с помощью команды visudo:
Раскомментируйте wheel, удалив отметку # (позволяет пользователям группы wheel выполнять команды как root после проверки пароля):
Примечание: никогда не редактируйте файл sudoers с помощью различных инструментов, кроме visudo, который безопасно редактирует файл sudoers – он блокирует файл sudoers при наличии нескольких одновременных изменений, обеспечивает основные проверки работоспособности и проверяет ошибки синтаксиса.
5. Добавьте обычного пользователя в дополнительную группу wheel:
Проверьте дополнительную группу для пользователя:
6. Проверьте конфигурацию sudo для обычного пользователя.
Выйдите из системы как пользователь root и войти в качестве вновь созданного обычного пользователя:
Попробуйте выполнить некоторую административную команду (обычно для которой требуется аутентификация root), но обычный пользователь использует sudo:
Как добавить конкретного пользователя в sudoers?
1. Войдите в систему как пользователь root
2. Создайте обычного пользователя
3. Задайте пароль для нового пользователя.
4. Отредактируйте файл sudoers
Измените файл /etc/sudoers с помощью команды visudo:
Добавьте следующие строки (позволяет пользователю tuxfixer выполнять команды root после проверки пароля):
5. Проверьте конфигурацию sudo для конкретного пользователя.
Залогитьтесь под новым пользователем:
Выполните административную команду (обычно это требует проверки подлинности root) как sudoer с использованием sudo:
Источник
Пользователи и группы в Linux
Различные типы пользователей
В этой главе вы узнаете, как создавать и управлять учетными записями пользователей. Прежде чем углубляться в детали управления пользователями, вы узнаете, как пользователи используются в среде Linux.
Пользователи в Linux
В Linux есть два способа взглянуть на безопасность системы. Есть привилегированные пользователи, и есть непривилегированные пользователи. Привилегированный пользователь по умолчанию — root. Эта учетная запись пользователя имеет полный доступ ко всему на сервере Linux и может работать в системном пространстве без ограничений. Учетная запись пользователя root предназначена для выполнения задач системного администрирования и должна использоваться только для этого. Для всех других задач следует использовать непривилегированную учетную запись пользователя.
Чтобы получить информацию об учетной записи пользователя, вы можете использовать команду id. При использовании этой команды из командной строки вы можете увидеть подробности о текущем пользователе.
Вы также можете использовать его в других учетных записях пользователей, чтобы получить подробную информацию об этих учетных записях.
Ниже показан пример вывода команды.
Работая как root
Во всех системах Linux по умолчанию присутствует пользователь root, также известный как суперпользователь. Эта учетная запись используется для управления Linux. Root, например, может создавать другие учетные записи пользователей в системе. Для некоторых задач требуются права суперпользователя. Некоторые примеры — установка программного обеспечения, управление пользователями и создание разделов на дисковых устройствах. Вообще говоря, для всех задач, связанных с прямым доступом к устройствам, требуются права суперпользователя.
Поскольку учетная запись root очень полезна для управления средой Linux, некоторые люди имеют привычку входить в систему как root напрямую. Это не рекомендуется, особенно если вы входите в графическую среду. Когда вы входите в систему как пользователь root в графической среде, все выполняемые задачи также выполняются как пользователь root, что создает ненужную угрозу безопасности. Поэтому вы должны вместо этого использовать один из следующих альтернативных методов. В таблице представлен обзор этих методов.
Использование su
Команда su позволяет пользователям открывать окно терминала и с этого терминала запускать вспомогательную оболочку, в которой у пользователя есть другой идентификатор. Например, для выполнения административных задач вы можете войти в систему с учетной записью обычного пользователя и набрать su, чтобы открыть root-оболочку. Это приносит то преимущество, что только в root-оболочке используются root-привилегии.
Если набрана только команда su, подразумевается имя пользователя root. Но su можно использовать для запуска задач от имени другого пользователя. Например, введите su user, чтобы открыть подоболочку от имени пользователя user. При использовании su в качестве обычного пользователя вам будет предложено ввести пароль, и после ввода вы получите учетные данные целевого пользователя:
При использовании su запускается вложенная оболочка. Это среда, в которой вы можете работать как целевая учетная запись пользователя, но параметры среды для этой учетной записи не установлены. Если вам нужен полный доступ ко всей среде целевой учетной записи пользователя, вы можете использовать su — для запуска оболочки входа. Если вы запустите оболочку входа в систему, все сценарии, составляющие пользовательскую среду, будут обработаны, что заставит вас работать в среде, точно такой же, как при входе в систему от имени этого пользователя.
Использование sudo
Вместо использования учетной записи root, непривилегированные пользователи могут быть настроены на использование разрешений администратора для определенных задач с помощью sudo. Когда sudo настроен, обычные пользователи имеют привилегии sudo, и для использования этих привилегий они запускают команду с помощью sudo. Таким образом, вместо использования таких команд, как useradd в качестве пользователя root, вы используете обычную учетную запись пользователя и набираете sudo useradd. Это определенно более безопасно, потому что вы сможете действовать так, как если бы у вас были права администратора при выполнении этой конкретной команды.
При создании пользователей Linux в процессе установки вы можете выбрать предоставление прав администратора этому конкретному пользователю. Если вы решите сделать это, пользователь сможет использовать все команды администратора, используя sudo. Также возможно установить привилегии sudo после установки. Чтобы сделать это очень простым способом, вы должны выполнить простую двухэтапную процедуру:
- Сделайте административную учетную запись членом группы wheel с помощью usermod -aG wheel user.
- Введите visudo и убедитесь, что строка %wheel ALL=(ALL) ALL включена.
PolicyKit
Большинство программ администрирования с графическим интерфейсом пользователя используют PolicyKit для аутентификации в качестве пользователя root. Если обычный пользователь не входит в группу доступа wheel, ему будет предложено пройти аутентификацию. Если он входит в группу wheel, откроется приложение PolicyKit.
Пример переключения учетных записей пользователей
- Войдите в систему под обычным пользователем;
- Введите whoami, чтобы увидеть, какую учетную запись вы используете в данный момент. Также введите id и обратите внимание, что вы получаете больше информации о ваших текущих учетных данных при использовании id;
- Наберите su. При запросе пароля введите пароль root. Введите id еще раз. Вы видите, что вы в настоящее время root;
- Введите visudo и убедитесь, что строка %wheel ALL=(ALL) ALL включена;
- Введите useradd -G wheel user, чтобы создать пользователя user, который является членом группы wheel;
- Введите id user, чтобы убедиться, что он добавлен в группу wheel;
- Установите пароль для User, введя passwd user. Введите пароль дважды;
- Выйдите из системы и войдите в систему как user;
- Наберите sudo useradd user1. Введите пароль при запросе. Вот вы и создали еще одного пользователя.
Управление аккаунтами пользователей
Теперь, когда вы знаете, как выполнять задачи как пользователь с правами администратора или без прав администратора, настало время научиться управлять учетными записями пользователей в Linux. В этом разделе вы узнаете, что в этом участвует.
Обычные и системные аккаунты
В типичной среде Linux существуют два типа учетных записей пользователей. Существуют учетные записи пользователей, которым необходимо работать на сервере и которым требуется ограниченный доступ к ресурсам на этом сервере. Эти учетные записи обычно имеют пароль, который используется для аутентификации пользователя в системе. Существуют также системные учетные записи, которые используются службами, которые предлагает сервер. Обе учетные записи пользователей имеют общие свойства, которые хранятся в файлах /etc/passwd и /etc/shadow. Ниже показано содержимое файла /etc/passwd.
Как видите, для определения учетной записи пользователя в /etc/passwd используются разные поля. Поля отделены друг от друга двоеточием. Ниже приводится краткое изложение этих полей, а затем краткое описание их назначения.
Имя пользователя (Username): это уникальное имя для пользователя. Имена пользователей важны для соответствия пользователя его паролю, который хранится отдельно в /etc/shadow. В Linux в имени пользователя не должно быть пробелов.
Пароль: в старые времена второе поле /etc/passwd использовалось для хранения хеш-пароля пользователя. Поскольку файл /etc/passwd доступен для чтения всем для пользователей это создает угрозу безопасности, и по этой причине в современных системах Linux пароли хэшей хранятся в /etc/shadow.
UID: каждый пользователь имеет уникальный идентификатор пользователя (UID). Это числовой идентификатор. Именно UID действительно определяет, что может делать пользователь. Когда для пользователя установлены разрешения, UID сохраняется в метаданных файла (а не в имени пользователя). UID 0 зарезервирован для root, неограниченной учетной записи пользователя. Более низкие UID (обычно до 999) используются для системных учетных записей, а более высокие UID (по умолчанию от 1000) зарезервированы для людей, которым необходимо подключить каталог к серверу. Диапазон UID, которые используются для создания учетных записей обычных пользователей, задается в /etc/login.defs.
GID: в Linux каждый пользователь является членом хотя бы одной группы. Эта группа называется основной, и эта группа играет центральную роль в управлении разрешениями.
Поле комментариев (Comment field): поле комментариев, как можно догадаться, используется для добавления комментариев к учетным записям пользователей. Это поле является необязательным, но его можно использовать для описания того, для чего создается учетная запись пользователя. Некоторые утилиты, такие как устаревшая утилита finger, могут использоваться для получения информации из этого поля. Это поле также называется полем GECOS, которое обозначает General Electric Comprehensive Operating System и имело конкретную цель для определения рабочих мест в начале 1970-х годов, когда General Electric была еще важным производителем серверов.
Каталог (Directory): это начальный каталог, в который пользователь помещается после входа в систему, также называемый домашним каталогом. Если учетная запись пользователя используется человеком, именно здесь он будет хранить свои личные файлы и программы. Для системной учетной записи пользователя это среда, в которой служба может хранить нужные файлы во время работы.
Оболочка (Shell): это программа, которая запускается после успешного подключения пользователя к серверу. Для большинства пользователей это будет /bin/bash, оболочка Linux по умолчанию. Для системных учетных записей это обычно будет оболочка типа /sbin/nologin.
Команда /sbin/nologin — это специальная команда, которая молча запрещает доступ пользователям (чтобы гарантировать, что если случайно злоумышленник войдет на сервер, он не сможет получить доступ к оболочке). Вы можете создать файл с именем /etc/nologin.txt, который содержит сообщение, которое будет отображаться, когда пользователь, имеющий /sbin/nologin в качестве оболочки, попытается войти в систему.
Часть пользовательских свойств хранится в /etc/passwd, который только что обсуждался.
Другая часть конфигурации пользовательских свойств находится в /etc/shadow. Настройки в этом файле используются для определения срока действия пароля. Типичным для /etc/shadow является то, что никто, кроме суперпользователя root и процессов, запущенных с правами root, такими как механизмы аутентификации на сервере, не имеет разрешений для доступа к нему, что имеет смысл, так как содержит всю информацию, необходимую для подключения в систему.
Пример содержимого /etc/shadow.
Следующие поля определены в /etc/shadow:
■ Имя для входа: обратите внимание, что /etc/shadow не содержит никаких UID, а только имена пользователей. Это открывает возможность для нескольких пользователей использовать один и тот же UID, но разные пароли (что, кстати, не очень рекомендуется);
■ Зашифрованный пароль: в этом поле содержится все, что необходимо для безопасного хранения пароля;
■ Дни с 1 января 1970 года, когда пароль последний раз изменялся: многие вещи в Linux относятся к этой дате, которая в Linux считается началом дней. Это также упоминается как эпоха;
■ За несколько дней до того, как пароль может быть изменен: это позволяет системным администраторам использовать более строгую политику паролей, когда невозможно сразу вернуться к исходному паролю, если пароль был изменен. Обычно это поле имеет значение 0;
■ Дни, после которых пароль должен быть изменен: в этом поле указан максимальный срок действия паролей. Обратите внимание, что по умолчанию он установлен на 99 999 (около 273 лет);
■ За несколько дней до истечения срока действия пароля пользователь получает предупреждение: это поле используется для предупреждения пользователя о предстоящей смене пароля. Обратите внимание, что по умолчанию установлено значение 7 (даже если срок действия пароля установлен на 99 999 дней!);
■ Через несколько дней после истечения срока действия пароля эта учетная запись отключена: используйте это поле для принудительного изменения пароля. После истечения срока действия пароля пользователи больше не могут входить в систему;
■ Дни с 1 января 1970 года эта учетная запись отключена: администратор может установить это поле, чтобы отключить учетную запись. Обычно это лучший подход, чем удаление учетной записи, поскольку все связанные свойства и файлы этой учетной записи будут сохранены, но больше не могут использоваться для аутентификации на вашем сервере;
■ Зарезервированное поле, которое когда-то было добавлено «для будущего использования»: это было давно; это поле, вероятно, никогда не будет использовано;
Большинством свойств пароля можно управлять с помощью команды passwd или chage, которые обсуждаются далее.
Создание пользователей
Существует множество решений для создания пользователей на сервере Linux. Для начала вы можете отредактировать содержимое файлов /etc/passwd и /etc/shadow напрямую (с риском сделать ошибку, из-за которой вход в систему невозможен для кого-либо; лучше просто этого не делать).
Также есть useradd. useradd — это утилита, которую вы должны использовать для создания пользователей.
Чтобы удалить пользователей, вы можете использовать команду userdel. Используйте userdel -r для удаления пользователя, включая всю пользовательскую среду.
Изменение файлов конфигурации
Для добавления учетных записей пользователей достаточно, чтобы одна строка была добавлена в /etc/passwd, а другая — в /etc/shadow, в которой определены учетная запись пользователя и все ее свойства. Это не рекомендуется. Сделав ошибку, вы можете испортить целостность файла и сделать регистрацию абсолютно невозможной для всех. Кроме того, могут возникнуть проблемы с блокировкой, если один администратор пытается изменить содержимое файла напрямую, а другой администратор хочет написать изменение с помощью какого-либо инструмента.
Если вы настаиваете на изменении файлов конфигурации напрямую, вам следует использовать vipw. Эта команда открывает интерфейс редактора для ваших файлов конфигурации и, что более важно, устанавливает соответствующие блокировки файлов конфигурации для предотвращения повреждения. Однако он не проверяет синтаксис, поэтому убедитесь, что вы знаете, что делаете, потому что, даже сделав опечатку, вы все равно можете серьезно испортить свой сервер. Если вы хотите использовать этот инструмент для изменения файла /etc/shadow, используйте vipw -s. Для редактирования содержимого файла /etc/group, в котором определены группы, существует аналогичная команда с именем vigr.
Использование useradd
Утилита useradd, вероятно, является наиболее распространенным инструментом в Linux для управления пользователями.
Это позволяет вам добавлять учетную запись пользователя из командной строки, используя множество ее параметров. Используйте, например, команду useradd -m -u 1201 -G sales,ops user, чтобы создать пользователя user, который является участником группы sales и ops с UID 1201, а также добавить домашний каталог в учетную запись пользователя.
Каталог home
У всех обычных пользователей будет домашний каталог. Для людей домашний каталог — это каталог, в котором можно хранить личные файлы. Для системных учетных записей домашний каталог часто содержит рабочую среду для служебной учетной записи.
Как администратор, вы, как правило, не будете изменять параметры, связанные с домашним каталогом, для системных учетных записей, поскольку они создаются автоматически из сценариев постустановки RPM при установке соответствующих пакетов программного обеспечения. Если у вас есть люди, которым нужна учетная запись пользователя, вы, вероятно, хотите немного управлять содержимым домашнего каталога.
Если при создании учетных записей пользователей вы также указываете своему серверу добавить домашний каталог (например, с помощью useradd -m), содержимое каталога «skeleton» копируется в домашний каталог пользователя. Каталог skeleton (каркас) — /etc/skel, и он содержит файлы, которые копируются в домашний каталог пользователя в момент создания этого каталога. Эти файлы также получат соответствующие разрешения, чтобы новый пользователь мог использовать их и получать к ним доступ.
По умолчанию каталог skeleton содержит в основном файлы конфигурации, которые определяют, как настраивается пользовательская среда. Если в вашей среде конкретные файлы должны присутствовать в домашних каталогах всех пользователей, вы должны позаботиться об этом, добавив файлы в каталог skeleton.
Управление свойствами пользователя
Для изменения свойств пользователя применяются те же правила, что и для создания учетных записей пользователей.
Вы можете работать непосредственно в файлах конфигурации с помощью vipw или использовать инструменты командной строки.
Конечная утилита командной строки для изменения пользовательских свойств — usermod. Его можно использовать для установки всех свойств пользователей, хранящихся в /etc/passwd и /etc/shadow, а также некоторых дополнительных задач, таких как управление членством в группе. Есть только одна задача, которую она не выполняет: установка паролей. Хотя в usermod есть опция -p, которая сообщает чтобы вы «использовали зашифрованный пароль для нового пароля», он ожидает, что вы выполните шифрование пароля перед добавлением учетной записи пользователя. Это не делает его особенно полезным. Если от имени пользователя root вы хотите изменить пароль пользователя, вам лучше использовать команду passwd.
Файлы конфигурации для управления пользователями по умолчанию
При работе с инструментами как useradd предполагаются некоторые значения по умолчанию. Эти значения по умолчанию установлены в двух файлах конфигурации: /etc/login.defs и /etc/default/useradd. Ниже показано содержимое /etc/default/useradd.
Как показано выше файл /etc/default/useradd содержит некоторые значения по умолчанию, которые применяются при использовании useradd.
В файле /etc/login.defs установлены различные переменные, связанные с логином. Этот файл используется различными командами и относится к настройке соответствующей среды для новых пользователей.
Список некоторых наиболее важных свойств, которые можно установить в /etc/login.defs:
MOTD_FILE: Определяет файл, который используется как файл «сообщения дня». В этот файл можно включить сообщения, которые будут отображаться после успешного входа пользователя на сервер.
ENV_PATH: определяет переменную $PATH, список каталогов, в которых следует искать исполняемые файлы после входа в систему.
PASS_MAX_DAYS, PASS_MIN_DAYS и PASS_WARN_AGE: определение свойств срока действия пароля по умолчанию при создании новых пользователей.
UID_MIN: первый UID, который будет использоваться при создании новых пользователей.
CREATE_HOME: указывает, следует ли создавать домашний каталог для новых пользователей.
USERGROUPS_ENAB: установите yes, чтобы создать личную группу для всех новых пользователей. Это означает, что у нового пользователя есть группа с тем же именем, что и пользователь, в качестве группы по умолчанию. Если установлено значение no, все пользователи становятся членами группы users.
Управление свойствами пароля
Вы узнали о свойствах пароля, которые можно установить в /etc/shadow. Вы можете использовать две команды для изменения этих свойств для пользователей: chage и passwd. Команды довольно просты. Например, команда passwd -n 30 -w 3 -x 90 user устанавливает для пароля пользователя user минимальный период использования 30 дней и срок его действия через 90 дней, когда за 3 дня до истечения срока действия генерируется предупреждение.
Многие из задач, которые можно выполнить с помощью passwd, можно выполнить и с помощью chage. Например, используйте chage -E 2019-12-31 user1, чтобы срок действия учетной записи пользователя user1 истек 31 декабря 2019 г.
Чтобы увидеть текущие настройки управления паролями, используйте chage –l.
Создание пользовательской среды
Когда пользователь входит в систему, создается среда. Среда состоит из нескольких переменных, которые определяют, как используется пользовательская среда. Например, одной из таких переменных является переменная $PATH, которая определяет список каталогов, которые следует искать, когда пользователь вводит команду.
Для создания пользовательской среды несколько файлов играют роль:
- /etc/profile: используется для настроек по умолчанию для всех пользователей при запуске оболочки входа;
- /etc/bashrc: используется для определения значений по умолчанию для всех пользователей при запуске подоболочки;
/.profile: специальные настройки для одного пользователя, применяемые при запуске оболочки входа;
/.bashrc: специальные настройки для одного пользователя, применяемые при запуске подоболочки.
При входе в систему файлы читаются в этом порядке, и к ним применяются переменные и другие параметры, определенные в этих файлах. Если переменная или параметр встречаются в более чем одном файле, побеждает последний.
В этом примере вы применяете общие решения для создания учетных записей пользователей.
1. Введите vim /etc/login.defs, чтобы открыть файл конфигурации /etc/login.defs, и измените несколько параметров, прежде чем приступить к настройке параметров файла. Найдите параметр CREATE_HOME и убедитесь, что он установлен на «yes». Также установите параметр USERGROUPS_ENAB на «no», что означает, что новый пользователь добавляется в группу с тем же именем, что и пользователь, и больше ничего;
2. Введите cd /etc/skel, чтобы перейти в каталог /etc/skell. Введите mkdir Pictures и mkdir Documents, чтобы добавить два каталога по умолчанию во все домашние каталоги пользователей. Также измените содержимое файла .bashrc, и вставьте строку export EDITOR=/usr/bin/vim, эта строка устанавливает редактор по умолчанию для инструментов, которые должны изменять текстовые файлы;
3. Введите useradd linda, чтобы создать учетную запись для пользователя linda. Затем введите id linda, чтобы убедиться, что linda является членом группы с именем linda и больше ничего. Также убедитесь, что каталоги Pictures и Documents были созданы в домашнем каталоге linda;
4. Используйте passwd linda, чтобы установить пароль для пользователя, которого вы только что создали;
5. Введите passwd -n 30 -w 3 -x 90 linda, чтобы изменить свойства пароля. Срок действия пароля истекает через 90 дней (-x 90). За три дня до истечения срока действия пользователь получит предупреждение (-w 3), и пароль должен быть использован не менее 30 дней, прежде чем (-n 30) его можно будет изменить;
6. Создайте еще несколько пользователей: lisa, lori и bob, используя for i in lisa lori bob; do useradd $i; done;
7. Введите grep lori /etc/passwd /etc/shadow/ etc/group. Это покажет, что пользователь lori создан во всех трех критических файлах, и подтверждает, что они были установлены правильно.
Создание и управление аккаунтами групп
Каждый пользователь Linux должен быть членом хотя бы одной группы. В этом разделе вы узнаете, как управлять настройками учетных записей групп Linux.
Группы в Linux
Пользователи Linux могут быть членами двух разных типов групп. Во-первых, есть основная группа. Каждый пользователь должен быть членом основной группы, и существует только одна основная группа. При создании файлов основная группа становится владельцем группы этих файлов. Пользователи также могут получить доступ ко всем файлам, к которым имеет доступ их основная группа. Членство в основной группе пользователей определено в /etc/passwd; сама группа хранится в файле конфигурации /etc/group.
Помимо обязательной первичной группы пользователи также могут быть членами одной или нескольких вторичных групп. Вторичные группы важны для получения доступа к файлам. Если группа, в которую входит пользователь, имеет доступ к определенным файлам, пользователь также получит доступ к этим файлам. Работа со вторичными группами важна, особенно в средах, где Linux используется в качестве файлового сервера, чтобы люди, работающие в разных отделах, могли обмениваться файлами друг с другом.
Создание групп с помощью vigr или groupadd
Как и в случае с созданием пользователей, существуют также различные варианты создания групп.
Файлы конфигурации группы можно изменить напрямую, используя vigr или утилиту командной строки groupadd.
Создание групп с помощью vigr
С помощью команды vigr вы открываете интерфейс редактора непосредственно в файле конфигурации /etc/group. В этом файле группы определены в четырех полях на группу как показано ниже.
Следующие поля используются в /etc/group:
- Имя группы: как следует из названия поля, оно содержит название группы.
- Групповой пароль: функция, которая больше не используется. Групповой пароль может использоваться пользователями, которые хотят временно присоединиться к группе, поэтому доступ к файлам, к которым у группы есть доступ, разрешен.
- ID группы: уникальный числовой идентификационный номер группы.
- Участники: здесь вы найдете имена пользователей, которые являются членами этой группы в качестве дополнительной группы. Обратите внимание, что он не показывает пользователей, которые являются членами этой группы, в качестве основной группы.
Создание групп с помощью groupadd
Другой способ создания новых групп — использование команды groupadd. Эта команда проста в использовании. Просто используйте groupadd, за которым следует имя группы, которую вы хотите добавить. Существуют некоторые дополнительные параметры, единственным из которых является -g, который позволяет вам указать ID группы при создании группы.
Управление свойствами группы
Пример работы с группами
В этом примере вы создаете две группы и добавите в эти группы некоторых пользователей.
1. Введите groupadd sales, а затем groupadd account, чтобы добавить группы с именами sales и account.
2. Используйте usermod, чтобы добавить пользователей linda и lisa в группу продаж, а lori и bob в групповую учетную запись:
3. Введите id linda, чтобы убедиться, что пользователь linda правильно добавлен в группу sales. В результатах этой команды вы видите, что Линда назначена группе с gid=100(users). Это ее основная группа. С параметром groups упоминаются все группы, членом которых она является в качестве вторичной группы:
Источник