Как упоминалось в Гл. 8, вам обычно не следует входить в систему под root'ом. Вместо этого вам следует создать учётную запись обычного пользователя для повседневного использования и использовать учётную запись root'а только для задач по обслуживанию системы. Для создания пользователя вы можете использовать либо утилиты, поставляемые со Slackware, либо отредактировать файл паролей вручную.
12.1.1. Вспомогательные скрипты
Самым простым способом для управления пользователями и группами является использование вспомогательных скриптов и программ. В состав Slackware входят следующие программы для работы с пользователями: adduser, userdel(8), chfn(1), chsh(1) и passwd(1). Команды groupadd(8), groupdel(8) и groupmod(8) предназначены для работы с группами. Эти программы, за исключением chfn, chsh и passwd, запускаются в основном только root'ом, и поэтому находятся они в /usr/sbin. chfn, chsh и passwd могут выполняться кем-угодно и находятся они в /usr/bin.
Пользователей можно добавлять при помощи утилиты adduser. Мы начнём рассмотрение этого вопроса с полной процедуры, показывая все задаваемые вопросы и давая краткие пояснения к ним. Ответ по умолчанию заключён в квадратные скобки, и его можно использовать почти во всех диалогах, если вы только не захотите изменить что-либо. (Для удобства под диалогами будет представлен их перевод. На самом деле их там нет, однако они вполне могут появиться в DeepStyle Linux, если Хоттаб поднапряжётся конечно :) - прим. переводчика.)
# adduser Login name for new user []: jellyd |
Это означает имя, которое пользователь будет использовать для входа в систему. Традиционно сложилось так, что логины состоят из восьми или менее символов в нижнем регистре. (Вы можете использовать использовать и большее количество символов, включая цифры, однако старайтесь не делать этого, если у вас нет на то серьёзной причины.)
Вы также можете указать логин в качестве аргумента сразу в командной строке:
#adduser jellyd |
В любом случае после ввода логина adduser попросит вас ввести идентификатор пользователя:
User ID ('UID') [ defaults to next available ]: |
Идентификатор пользователя (user ID, UID) - это то, по чём на самом деле определяются права владения в Linux. Каждый пользователь имеет уникальный номер, начиная с 1000 (в Slackware). Вы можете сами указать UID для нового пользователя или же позволить программе самой назначить его из списка доступных.
Initial group [users]: |
По умолчанию все пользователи заносятся в группу users. Вы можете занести нового пользователя в другую группу, однако это не рекомендуется, если только вы не отдаёте себе отчёт в том, что делаете.
Additional groups (comma separated) []: |
Этот вопрос позволяет занести нового пользователя в дополнительные группы. Пользователь может быть членом нескольких групп одновременно. Это полезно в том случае, если вы определили отдельные группы для таких целей, как изменение веб-файлов, запуск игр, запись на оптические носители, прослушивание музыки и т.п. Например, в некоторых системах команду su могут использовать только члены группы wheel. В Slackware по умолчанию есть группа sys, членам которой разрешается воспроизводить звук через внутреннюю звуковую карту.
Home directory [/home/jellyd] |
По умолчанию домашние каталоги находятся в /home. Если у вас слишком большая система, вы можете перенести домашние каталоги в другое место (или даже в несколько других мест). Этот этап позволяет вам определить местонахождение домашнего каталога пользователя.
Shell [ /bin/bash ] |
В Slackware Linux командным процессором по умолчанию является bash, и его будет достаточно для большинства пользователей. Если ваш новый пользователь пришёл из мира Unix, он может быть уже хорошо знаком с различными шеллами. На этом этапе вы можете изменить шелл пользователя или же он позже может сам изменить его с помощью команды chsh.
Expiry date (YYYY-MM-DD) []: |
Для учётных записей можно установить дату истечения их действия. По умолчанию эта дата отсутствует. По желанию вы можете изменить это. Этот параметр может оказаться полезным для администраторов провайдеров услуг Интернета, которые могут пожелать, чтобы учётная запись была заблокирована по истечении некоторого срока, если не была получена оплата за следующий период.
New account will be created as follows: --------------------------------------- Login name: jellyd UID: [ Next available ] Initial group: users Additional groups: [ None ] Home directory: /home/jellyd Shell: /bin/bash Expiry date: [ Never ] |
Перед вами представлена вся информация, которую вы ввели для новой учётной записи, и у вас есть возможность прервать создание этой учётной записи. Если вы где-то ошиблись, нажмите Control+C и начните всё сначала. В противном случае, если всё в порядке, нажмите Enter, и учётная запись будет создана.
Creating new account... Changing the user information for jellyd Enter the new value, or press return for the default Full Name []: Jeremy Room Number []: Smith 130 Work Phone []: Home Phone []: Other []: |
Вся эта информация является необязательной. Если не хотите, можете не указывать её. Пользователь сам может изменить её в любое время с помощью команды chfn. Однако может оказаться полезным указать по крайней мере полное имя и номер телефона, чтобы вы позже могли связаться с этим человеком.
Changing password for jellyd Enter the new password (minimum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Re-enter new password: Password changed. Account setup complete. |
Вы должны будете ввести пароль для нового пользователя. Обычно, если этого пользователя в данный момент нет рядом с вами, вам просто нужно установить какой-то простой пароль, а затем сказать пользователю, чтобы он изменил его на что-то более безопасное.
Выбор пароля: выбор безопасного пароля является первой линией обороны против атак на взлом системы. Вам не следует использовать простые для угадывания пароли, потому что это облегчает задачу несанкционированного проникновения в вашу систему. В идеале пароль должен представлять собой строку из случайного набора символов, включая буквы верхнего и нижнего регистров, цифры и специальные символы. (Символ табуляции не следует использовать, поскольку у вас могу возникнуть проблемы со входом в систему с разного типа компьютеров.) Также не следует пытаться использовать кириллицу, поскольку, даже если вам удастся добиться этого (что, в принципе, возможно), результат может оказаться просто непредсказуемым (прим. переводчика). Есть много программ, генерирующих за вас случайные пароли; поищите их в Интернете. В общем случае просто придерживайтесь общепринятых рекомендаций: не выбирайте в качестве пароля дату чьего-либо дня рождения, общие фразы, что-то, что можно найти на вашем столе, или что-то такое, что можно легко ассоциировать с вами. Пароль наподобие “secure1” или любой другой пароль, который вы увидели в печатном издании или на веб-странице, также будет плохим выбором. |
Удалять пользователей довольно легко. Просто запустите userdel с именем удаляемой учётной записи в качестве аргумента. Вам следует сначала убедиться, что пользователь вышел из системы, и отсутствуют процессы, выполняемые от его имени. Также помните, что после того, как вы удалите пользователя, вся информация о его пароле также исчезнет.
# userdel jellyd |
Эта команда удалит из вашей системы упомянутого пользователя jellyd. Неплохая чистка :) Пользователь был удалён из файлов /etc/passwd, /etc/shadow и /etc/group, однако не был удалён его домашний каталог.
Если вы хотите удалить и его каталог, вам нужно было использовать команду со следующей опцией:
# userdel -r jellyd |
Временное отключение учётных записей будет рассмотрено в следующем разделе, посвящёном паролям, поскольку временные изменения влекут за собой изменение пароля пользователя. Изменение другой информации, касающейся учётной записи, рассматривается в Разд. 12.1.3.
Программы для добавления и удаления групп очень просты. groupadd добавляет в файл /etc/group ещё одну запись с уникальным идентификатором группы, а groupdel удаляет указанную группу. Вам остаётся только отредактировать /etc/group, чтобы добавить пользователей в нужную группу. Например, чтобы добавить группу с именем cvs:
# groupadd cvs |
А чтобы удалить её:
# groupdel cvs |
12.1.2. Изменение паролей
Программа passwd изменяет пароли путям внесения изменений в файл /etc/shadow. В этом файле хранятся в зашифрованном виде все пароли системы. Чтобы изменить свой собственный пароль, наберите следующее:
% passwd Changing password for chris Old password: Enter the new password (minumum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: |
Как видите, вам нужно ввести свой старый пароль. Он не будет показан на экране, когда вы будете набирать его, точно так же, как и при входе в систему. Затем вам надо будет ввести новый пароль. passwd выполнит ряд проверок вашего нового пароля, и если он не будет одобрен, вы увидите предупреждение. Если хотите, вы можете проигнорировать эти предупреждения. Вам надо будет ещё раз ввести новый пароль для подтверждения.
В случае, если у вас есть права root'а, вы можете изменить пароль другого пользователя:
# passwd ted |
Затем вам нужно будет пройти процедуры, описанные выше, за тем исключением, что вам не надо будет вводить старый пароль пользователя. (Одно из многих преимуществ root'а...)
При необходимости вы можете также временно отключить (заблокировать) учётную запись и позже повторно включить (разблокировать) её. И блокирование, и разблокирование учётной записи можно выполнить при помощи утилиты passwd. Чтобы отключить учётную запись, выполните под root'ом следующее:
# passwd -l david |
При этом пароль пользователя david будет изменён на нечто, что никогда не сможет совпасть с какой-либо зашифрованной комбинацией символов. Разблокировать учётную запись можно с помощью следующей команды:
# passwd -u david |
Теперь учётная запись david'а снова возвращена в нормальное состояние. Отключение учётной записи может быть полезным в том случае, если пользователь не соблюдает правила, которые вы установили для своей системы, или если вы обнаружили слишком много экспортированных копий xeyes(1) на своём рабочем столе.
12.1.3. Изменение информации о пользователях
Существует два типа личной информации, которую пользователи могут изменить в любое время: это командный процессор и информация для finger. В Slackware Linux для изменения этих данных используются утилиты chsh (change shell) и chfn (change finger).
Пользователь может выбрать себе любой шелл из тех, что перечислены в файле /etc/shells. Большинство пользователей вполне устроит /bin/bash. Другие могут быть хорошо знакомы с другим шеллом, который используется в их системе на работе или в школе, и поэтому наверняка захотят пользоваться тем, что уже хорошо знают. Чтобы изменить свой командный процессор, воспользуйтесь командой chsh:
% chsh Password: Changing the login shell for chris Enter the new value, or press return for the default Login Shell [/bin/bash]: |
После ввода своего пароля введите полный путь к новому командному процессору. Сначала убедитесь в том, что он перечислен в файле /etc/shells(5). Также root может изменить шелл любого пользователя, запустив chsh и именем этого пользователя в качестве аргумента.
Информация finger содержит опциональные данные о вас: полное имя, номера телефонов и номер офиса/кабинета. Эти данные могут быть изменены с помощью команды chfn, а процесс представляет собой ту же самую процедуру, что и при создании учётной записи. Как обычно root может изменить finger-информацию любого пользователя.