ГЛАВА 2 ОБСЛУЖИВАНИЕ ПОЛЬЗОВАТЕЛЕЙ СОДЕРЖАНИЕ ВВЕДЕНИЕ УПРАВЛЕНИЕ ВХОДАМИ Регистрация пользователей Изменение или удаление записей в файле паролей Идентификаторы групп ОКРУЖЕНИЕ ПОЛЬЗОВАТЕЛЯ Переменные окружения Маска пользователя Подразумеваемый shell и ограниченный shell СЛУЖБА СВЯЗИ МЕЖДУ ПОЛЬЗОВАТЕЛЯМИ Сообщение дня Новости Сообщение всем пользователям Команды mail и mailx ЗАПРОСЫ ПОЛЬЗОВАТЕЛЕЙ Бланки запросов пользователя ВВЕДЕНИЕ В этой главе обсуждаются различные виды обслуживания пользова- телей Вашей системы. Управление входами Присваивание идентификаторов пользователя и группы ли- цам, регистрируемым как пользователи Вашей системы. Поддержка файла паролей /etc/passwd и файла групп /etc/group. Окружение пользователя Подготовка главного профайла и оказание помощи пользо- вателям в разработке индивидуальных профайлов. Уста- новка переменных окружения. Служба связи Организация и поддержка таких служб, как "сообщение дня", "новости", почтовая. Запросы пользователей Организационные мероприятия по оказанию помощи пользо- вателям при затруднениях в работе с системой. УПРАВЛЕНИЕ ВХОДАМИ Регистрация пользователей Прежде чем пользователи получат доступ к системе, они должны быть занесены в список пользователей в файле /etc/passwd. Выб- рав подкоманду adduser из меню sysadm usermgmt(1M), Вы получите серию приглашений для ввода данных, которые попадут во вновь создаваемую строку файла /etc/passwd (см. процедуру 2.1). Необ- ходимые изменения в файл паролей можно внести также при помощи текстового редактора, если Вам это удобнее. Для этого необходи- мо войти как root, т. к. обычно файл /etc/passwd доступен толь ко для чтения. Запись в файле паролей представляет собой одну строку, которая состоит из семи полей, разделенных символами двоеточия. |имя:g0Q3xsv05bWuM,9/TA:103:123:Allen B. Cipfer:/usr/abc: Поля: Входное имя Имя для входа в систему. Входное имя содержит от трех до шести литер и начинается с буквы. Обычно оно выбирается самим пользователем. Пароль Пароль (если он имеется) данного пользователя в зашифрованном виде. Зашифрованный пароль занима- ет 13 байт. Фактически пароль состоит из не бо- лее чем 8 символов. Один из них должен быть циф- рой. Тем самым пользователь лишается возможности выбрать в качестве пароля обычное слово. Добав- ляя в файл нового пользователя, Вы можете опре- делить для него какой-нибудь стандартный пароль, например, passwd9, и дать указание пользователю сменить его, как только он войдет в систему. Правее зашифрованного пароля, через запятую, мо жет находиться поле сроков действия. См. раздел "Сроки действия паролей" в гл. 1 "Идентификация пользователей и защита системы". Идентификатор пользователя Числовой идентификатор пользователя (ИП) - это целое число от 0 до 50000. Число не должно со- держать запятых. Числа меньше 100 зарезервирова- ны. Идентификатор 0 зарезервирован для супер- пользователя. При регистрации пользователя средствами меню администратора не допускается задание идентификаторов меньше 100 Идентификатор группы Идентификатор группы (ИГ) должен удовлетворять тем же требованиям что и ИП, с единственным от личием - идентификатор 1 зарезервирован для группы "other". Пользователь В этом поле содержится фамилия и имя пользовате- ля, а также и другая информация о нем. Формат поля произвольный. Основной каталог Имя каталога, в который пользователь попадает при входе в систему. Обычно в качестве имени ка- талога берется входное имя пользователя, к кото- рому слева приписывается имя надкаталога, напри- мер, /usr. Подразумеваемое имя надкаталога можн задать при помощи подкоманды modadduser из меню администратора. Основной каталог пользователя это верхняя точка дерева каталогов данного поль зователя. Программа Имя программы, которая вызывается после входа пользователя в систему. Если поле пусто, то под- разумевается программа /bin/sh. Как правило, это поле используется для вызова особого shell'а, например, /bin/rsh (ограниченный shell). Как упоминалось выше, поле пароля может содержать информацию о сроках действия. О том как работает механизм сроков действия, можно прочитать в гл. 1 и в описании passwd(4) в Справочнике пользователя. Смысл его сводится к тому, чтобы вынудить пользо вателя периодически изменять свой пароль. Если сроки действия паролей не заданы, то пользователь может в принципе не менять свой пароль сколь угодно долго. Просматривая файл /etc/passwd на своем компьютере, Вы заметите среди имен пользователей также имена некоторых команд. Это ко манды, которые могут иметь пароль [пример - sysadm(1M)]. Изменение или удаление записей в файле паролей В меню sysadm usermgmt наряду с подкомандой регистрации пользо вателей имеются подкоманды для изменения и удаления записей в файле /etc/passwd (см. процедуры 2.2 и 2.3). Вы можете также по своему усмотрению внести необходимые изменения средствами текс- тового редактора. Довольно часто кто-то из пользователей забывает свой пароль. Если такое случилось (скажем, с пользователем abc), то войдите как root и введите команду: |# passwd abc | (Приглашение # означает, что Вы - суперпользователь) |New password: | (Вводимый пароль на экране не отображается) |Re-enter new password: Вам как суперпользователю не выдается приглашение для ввода прежнего пароля. Этой командой Вы устанавливаете для пользова теля abc пароль passwd9. Следует убедиться, что пользователь немедленно поменяет этот пароль. Когда Вы удаляете запись из файла /etc/passwd средствами меню sysadm usermgmt, то все файлы и каталоги данного пользователя также удаляются. Если же Вы удаляете строку из файла паролей при помощи текстового редактора, то Вы удаляете только запись. Файлы пользователя остаются. Идентификаторы групп Идентификаторы групп - это средство для установления дополни- тельного уровня владения, а также доступа к файлам. Пользовате- ли, которых объединяют какие-либо общие интересы, могут быть причислены к одной и той же группе. Любой вновь создаваемый файл имеет вторичную идентификацию, в которой содержится номер группы. Владелец (или некто с действующим идентификатором вла- дельца) может, манипулируя с полем прав доступа этого файла, предоставить другим членам группы право на запись, чтение и вы- полнение файла. Информация о группах содержится в файле /etc/group. Ниже приво- дится образец записи этого файла с пояснениями. |prog::123:jqp,abc Каждая запись занимает одну строку, строка состоит из следующих полей Имя группы Содержит от 3 до 8 символов и должно начинаться с буквы. Пароль Это поле не следует использовать. Идентификатор группы Целое от 0 до 50000 без запятой. Значения мень ше 100 зарезервированы. Входные имена Список входных имен членов группы через запя- тую. Входное имя не должно принадлежать более чем одной группе. При этом нет никаких пре- пятствий к тому, чтобы один и тот же пользова тель имел более чем одно входное имя, если только эти имена уникальны внутри системы. ОКРУЖЕНИЕ ПОЛЬЗОВАТЕЛЯ Основное средство для создания окружения, в котором пользовате- ли могут успешно взаимодействовать с компьютером, это профайл. Профайлы бывают двух типов. 1. Системный профайл Это текстовой ASCII-файл /etc/profile, который содержит ко- манды, shell-процедуры и переменные окружения. Всякий раз, когда пользователь входит в систему, процесс входа регулиру- ется этим файлом. 2. Индивидуальный профайл Это выполняемый командный файл .profile, который может нахо- диться в основном каталоге пользователя. Индивидуальный про- файл может содержать команды и переменные окружения, которые служат для дальнейшей настройки окружения пользователя. Если такой файл существует, то он также выполняется в процесс входа, после выполнения /etc/profile. Образец файла /etc/profile показан ниже: |# Профайл, который выполняется при входе в систему |# перед файлом .profile пользователя |trap "" 2 3 |export LOGNAME |. /etc/TIMEZONE |# Shell'ы login и su обслуживаются профайлом /etc/profile |# Окружение для -rsh задано в собственном профайле пользователя |case "$0" in |-su) | export PATH | ;; |-sh) | export PATH |# Разрешить пользователю прерывать только сообщение дня | trap "trap ''2" 2 | cat -s /etc/motd | trap ""2 | if mail -e | then | echo "you have mail" | fi | if [ ${LOGNAME} != root ] | then | news -n | fi | ;; |esac |umask 022 |trap 2 3 В этом профайле есть несколько интересных моментов. Некоторые переменные окружения экспортируются (см. "Перемен- ные окружения" далее в этой главе) Файл с именем /etc/motd распечатывается командой cat (см. "Сообщение дня" далее в этой главе) Если пользователь, который входит в систему, не является су- перпользователем, то ему распечатываются имена всех имеющихся новостей (news -n, см. "Новости" далее в этой главе) Если у пользователя есть почта (mail -e), то сообщение об этом выводится на экран (см. "Почта" далее в этой главе) Cведения о командах языка shell, которые использованы в приме- ре, содержатся в описании sh(1) в Справочнике пользователя. Переменные окружения Когда процесс инициируется, то процедура exec(2) передает ему массив строк, называемый окружением. Поскольку login является процессом, то ему также доступен некоторый массив строк, задаю- щий окружение. Пример типичного массива показан ниже: |PS1="$ " |LOGNAME=abc |PWD=/usr/abc |HOME=/usr/abc |PATH=:/bin:/usr/bin:/usr/lbin |SHELL=/bin/sh |MAIL=/usr/mail/abc |TERM=5420 |PAGER=pg |TZ=EST5EDT |TERMINFO=/usr/lib/terminfo |EDITOR=vi В массиве окружения пользователя abc заданы значения 12-ти п ременных. Эта информация используется другими программами. Нап- ример, терминал пользователя определен как терминал типа 5420 (TERM=5420). Когда пользователь вызывает редактор vi(1), то пограмма vi просматривает каталог, имя которого задано как зна- чение переменной TERMINFO (/usr/lib/terminfo), и выясняет ха- рактеристики терминала 5420 (такие, например, как высота экра- на, равная 24 строкам). В любой момент можно доопределить новые строки. Строка начинается с имени переменной, набранного заг лавными буквами, затем идет знак равенства и значение перемен- ной. Если какая-либо переменная определена, то при помощи ко- манды export ее значение можно сделать глобальным для пользова- теля. Индивидуальный профайл .profile может содержать все что угодно (по усмотрению пользователя). Маска создания файлов В системе установлен по умолчанию определенный режим доступа ко всем файлам и каталогам, создаваемым пользователями: 666 для обычных файлов и 777 для каталогов. Это означает, что все авто- матически получают по отношению к файлам права на чтение и за- пись, а по отношению к каталогам - на чтение, запись и поиск. (Право на поиск для каталогов означает возможность сделать этот каталог текущим и копировать имеющиеся в нем файлы.) Пользователи часто устанавливают в своих профайлах собственную маску создания файлов при помощи команды umask(1). Команда umask понижает уровни прав доступа на указанные величины. Нап ример: |umask 027 оставляет для владельца прежний уровень прав доступа, для груп пы уменьшает уровень на 2, а для прочих пользователей уровень снижается до 0. Системное значение по умолчанию было 666; дан ная маска пользователя заменяет его на 640, что следует пони- мать как право на чтение и запись для владельца, право на чте- ние для группы и отсутствие прав доступа для всех прочих. Команда umask может содержаться в файле /etc/profile. Независи- мо от этого, пользователь может включить ее и в собственный профайл. Подразумеваемый shell и ограниченный shell Как правило, когда пользователь входит в систему, то по умолча- нию начинает выполняться программа /bin/sh. В ряде случев, од- нако, желательно бывает назначить для некоторых пользователей ограниченнный shell. В ограниченном shell'е пользователи не могут менять текущий каталог менять значение $PATH Задавать маршрутные имена или имена команд, содержащие символ /. Таким образом, пользователь, работающий в ограниченном shell'е, имеет доступ только к файлам из текущего каталога и каталогов, перечисленных в $PATH. переназначать вывод Эти ограничения вступают в силу после выполнения профайла. Администратор может применять стратегию ограниченного shell'а для того, чтобы свести возможности определенной категории поль- зователей к выполнению лишь небольшого числа команд и программ. Подготовив специальный каталог исполняемых программ (например, /usr/rbin) и определив переменную PATH таким образом, чтобы она указывала только на этот каталог, администратор может ограни чить деятельность пользователей любым желаемым образом. СЛУЖБА СВЯЗИ МЕЖДУ ПОЛЬЗОВАТЕЛЯМИ Система UNIX обеспечивает несколько видов взаимодействия адми- нистратора с пользователями, а также пользователей между собой. В этом разделе описываются некоторые наиболее часто применяемые виды связи. Сообщение дня Если Вы хотите довести до сведения пользователей какую-либо ин- формацию, представляющую интерес для всех, то поместите ее в файл /etc/motd. В поцессе входа в систему содержимое файла /etc/motd выдается на терминал пользователя. Процесс входа вы- полняет файл с именем /etc/profile, который представляет собой shell-процедуру и обычно среди прочих инструкций содержит ко- манду |cat /etc/motd Текст, находящийся в /etc/motd, выдается на экран всякий раз как пользователь входит в систему. Для того чтобы такие сообще- ния действительно воспринимались пользователями, следует прибе гать к этой возможности лишь время от времени и обязательно удалять из файла сообщения, утратившие актуальность. Типичный случай применения сообщения дня: 30.05: В четверг 30.05, с 18:11 система будет закры- та на профилактическое обслуживание. Частью этого профилактического обслуживания должно быть удале- ние данного сообщения из файла /etc/motd. Новости Другое электронное средство массовой информации реализовано в виде каталога новостей /usr/news и команды news(1). Каталог ис пользуется для хранения объявлений в виде текстовых файлов, имена которых как правило должны соответствовать содержанию. Команда news служит для распечатки новостей на Вашем терминале. Для того чтобы информировать пользователей о наличии новостей, используется также /etc/profile. Типичный профайл содержит строку |news -n Аргумент -n означает, что нужно выдать на пользовательский тер- минал имена всех файлов в каталоге news. Распечатываться будут только имена последних новостей, т. е. файлов, которые были до бавлены после того, как пользователь в последний раз просматри- вал новости. Идея выдачи только самых последних новостей реали- зована следующим образом: когда Вы считываете какой-либо файл новостей, то в Вашем основном каталоге создается файл news_ti- me. Как и всякий файл, news_time содержит сведения о дате и времени создания. Когда Вы входите в систему, то время создания каждого файла из /usr/news сравнивается с временем создания файла news_time в Вашем каталоге. Если от выдачи сообщения дня пользователь не может отказаться, то с новостями он может поступить одним из следующих способов. Читать все Если вводится команда news без аргументов, то на терминал выдаются все новости, поступившие с момента последнего обращения к этой команде. Читать выборочно Если в команде news перечислены в качестве ар- гументов имена одного или нескольких файлов новостей, то распечатываются только они. Читать и прерывать После того как команда введена, пользователь может прервать распечатку любой новости, нажав клавишу прерывания. Если нажать клавишу преры вания дважды подряд, то печать новостей прек- ращается. Игнорировать Если пользователь слишком занят, и ему некогда изучать новости, то он может пренебречь ими. Файлы новостей хранятся в каталоге /usr/news до тех пор, пока их кто-нибудь не удалит. Наз- вания новостей будут по-прежнему распечаты- ваться на терминале всякий раз, когда пользо- ватель входит в систему. Стирать Если пользователь желает, не просматривая но- востей, избавиться от распечатки их названий, то это можно сделать одним из двух способов: | $ touch news_time Эта команда переустанавливает поле времени последнего изменения файла news_time. Команда | $ news >/dev/null "распечатывает" новости на пустом устройстве. Сообщение всем пользователям Команда wall(1М), которая позволяет послать сообщение всем на- ходящимся в системе пользователям, представляет собой расшире- ние команды write(1). Полный эффект достигается, только если эту команду вводит суперпользователь. С одной стороны команда wall - полезный инструмент для рассылки всем пользователям ка кого-либо срочного сообщения. С другой стороны - пользователям могут мешать всевозможные назойливые сообщения, появляющиеся на дисплее непосредственно во время работы. Правда, они ничего не портят, но могут действовать раздражающе; поэтому многие стре мятся избавиться от них, включая в свой профайл команду |mesg n Эта команда блокирует выдачу на Ваш терминал сообщений, посту- пающих от обычных пользователей. Если же команда wall введена суперпользователем, то действие команды mesg n отменяется. Луч- ше всего прибегать к этой команде лишь в тех случаях, когда вы как администратор вынуждены попросить пользователей выйти из системы. Правила использования команды wall описаны в процедуре 2.5. Команды mail и mailx Система UNIX предлагает две утилиты электронной почты для обме на сообщениями между пользователями. Если Ваша система посредс твом сети связана с другими системами, то при помощи команд mail(1) и mailx(1) Вы можете взаимодействовать с пользователями других систем. Утилита mail - базовое средство обмена сообщениями. Утилит mailx использует mail для отсылки и получения сообщений, но имеет ряд дополнительных возможностей, которые полезны при ор ганизации сообщений в виде текстовых файлов, добавлении заго- ловков, а также для многих других функций. При использовании утилиты mailx полезен установочный файл. Све- дения о том как применять установочный файл .mailrc Вы найдете в описании утилиты mailx(1) в Справочнике пользователя. ЗАПРОСЫ ПОЛЬЗОВАТЕЛЕЙ Следует ожидать, что к Вам как администратору системы будут об- ращаться пользователи за разрешением возникающих затруднений. В дополнение к журналу системы, о котором будет рассказано в гл. 3, полезно также вести журнал обращений и жалоб пользователей. Затруднения, с которыми сталкиваются пользователи, как правило, можно классифицировать. Если Вы будете записывать, как удалось разрешить те или иные проблемы, то при возникновении аналогич- ных сложностей у других пользователей Вам не придется разби раться в них "с нуля". Бланки запросов пользователя Другая настоятельная рекомендация - разработать регулярную фор- му для сообщений пользователей о своих затруднениях. Ниже пока- зан образец бланков, которые можно использовать для описания и учета проблем пользователей. | Бланк-запрос | | Машина ................................... | Исполняемая программа..................... | .......................................... | Тип....................................... | Симптомы.................................. | Масштабы.................................. | Сообщения об ошибках...................... | | | ФИО пользователя...............вход....... | Комната.....................телефон.......