ГЛАВА 2 ОБСЛУЖИВАНИЕ ПОЛЬЗОВАТЕЛЕЙ СОДЕРЖАНИЕ ВВЕДЕНИЕ УПРАВЛЕНИЕ ВХОДАМИ Регистрация пользователей Изменение или удаление записей в файле паролей Идентификаторы групп ОКРУЖЕНИЕ ПОЛЬЗОВАТЕЛЯ Переменные окружения Маска пользователя Подразумеваемый shell и ограниченный shell СЛУЖБА СВЯЗИ Сообщение дня Новости Сообщение всем пользователям Команды mail и mailx ЗАПРОСЫ ПОЛЬЗОВАТЕЛЕЙ Бланки запросов пользователя ВВЕДЕНИЕ В этой главе обсуждаются различные виды обслуживания пользова- телей Вашей системы. Управление входами Присваивание идентификаторов пользователя и группы ли- цам, регистрируемым как пользователи Вашей системы. Поддержка файла паролей /etc/passwd и файла групп /etc/group. Окружение пользователя Подготовка главного профайла и оказание помощи пользо- вателям в разработке индивидуальных профайлов. Уста- новка переменных окружения. Служба связи Организация и поддержка таких служб, как "сообщение дня", "новости", почтовая. Запросы пользователей Организационные мероприятия по оказанию помощи пользо- вателям при затруднениях в работе с системой. УПРАВЛЕНИЕ ВХОДАМИ Регистрация пользователей Прежде чем пользователи получат доступ к системе, они должны быть занесены в список пользователей в файле /etc/passwd. Выб- рав подкоманду adduser из меню sysadm usermgmt(1), Вы получите серию приглашений для ввода данных, которые попадут во вновь создаваемую строку файла /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 на своем компьютере, Вы заметите среди имен пользователей также имена некоторых команд. Это ко- манды, которые могут иметь пароль, такие как mkfsys(1M) или sy- sadm(1). Изменение или удаление записей в файле паролей В меню sysadm usermgmt наряду с подкомандой регистрации пользо- вателей имеются подкоманды для изменения и удаления записей в файле /etc/passwd (см. процедуры 2.2 и 2.3). Вы можете также по своему усмотрению внести необходимые изменения средствами текс- тового редактора. Зарегистрируйтесь как 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 PATH=:/bin:/usr/bin:/usr/lbin SHELL=/bin/sh 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 для каталогов. Это означает, что все автоматически получают по отношению к файлам права на чтение и запись, а по отношению к каталогам - на чтение, запись и выполнение. (Право на выпол- нение для каталогов означает возможность сделать этот каталог текущим (cd) и копировать имеющиеся в нем файлы.) Пользователи часто устанавливают в своих профайлах собственную маску пользователя при помощи команды umask(1). Команда umask понижает уровни прав доступа на указанные величины. Например: umask 027 оставляет для владельца прежний уровень прав доступа, для груп- пы уменьшает уровень на 2, а для прочих пользователей уровень снижается до 0. Системное значение по умолчанию было 666; дан- ная маска пользователя заменяет его на 640, что следует пони- мать как право на чтение и запись для владельца, право на чте- ние для группы и отсутствие прав доступа для всех прочих. Команда umask может содержаться в файле /etc/profile. Независи- мо от этого, пользователь может включить ее и в собственный профайл. Подразумеваемый shell и ограниченный shell Как правило, когда пользователь входит в систему, то по умолча- нию начинает выполняться программа /bin/sh. В ряде случев, од- нако, желательно бывает назначить для некоторых пользователей ограниченнный shell. В ограниченном shell'е пользователи не могут менять текущий каталог менять значение $PATH Задавать маршрутные имена или имена команд, содержащие нак- лонную черту. Таким образом, пользователь, работающий в огра- ниченном shell'e имеет доступ только к файлам из текущего ка- талога и каталогов, перечисленных в PATH. переадресовывать вывод Эти ограничения вступают в силу после выполнения профайла. Администратор может применять стратегию ограниченного shell'а для того, чтобы свести возможности определенной категории поль- зователей к выполнению лишь небольшого числа команд и программ. Подготовив специальный каталог исполняемых программ (например, /bin/rsh) и определив переменную PATH таким образом, чтобы она указывала только на этот каталог, администратор может ограни- чить деятельность пользователей любым желаемым образом. СЛУЖБА СВЯЗИ Система UNIX обеспечивает несколько видов взаимодействия адми- нистратора с пользователями, а также пользователей между собой В этом разделе описываются некоторые наиболее часто применяемые виды связи. Сообщение дня Если Вы хотите довести до сведения пользователей какую-либо ин- формацию, представляющую интерес для всех, то поместите ее в файл /etc/motd. В поцессе входа в систему содержимое файла /etc/motd выдается на терминал пользователя. Процесс входа вы- полняет файл с именем /etc/profile, который представляет собой shell-процедуру и обычно среди прочих инструкций содержит ко- манду cat /etc/motd Текст, находящийся в /etc/motd, выдается на экран всякий раз, как пользователь входит в систему. Для того чтобы такие сообще- ния действительно воспринимались пользователями, следует прибе- гать к этой возможности лишь время от времени и обязательно удалять из файла сообщения, утратившие актуальность. Типичный случай применения Сообщения дня: 30.05: В четверг 30.05, с 18:11 система будет закры- та на профилактическое обслуживание. Частью этого профилактического обслуживания должно быть удале- ние данного сообщения из файла /etc/motd. Новости Другое электронное средство массовой информации реализовано в виде каталога новостей /etc/news и команды news(1). Каталог ис- пользуется для хранения объявлений в виде текстовых файлов, имена которых как правило должны соответствовать содержанию. Команда news служит для распечатки новостей на Вашем терминале. Для того чтобы информировать пользователей о наличии новостей, используется также /etc/profile. Типичный профайл содержит строку news -n Аргумент -n означает, что нужно выдать на пользовательский тер- минал имена всех файлов в каталоге news. Распечатываться будут только имена последних новостей, т. е. файлов, которые были до- бавлены после того, как пользователь в последний раз просматри- вал новости. Идея выдачи только самых последних новостей реали- зована следующим образом: когда Вы считываете какой-либо файл новостей, то в Вашем основном каталоге создается файл news_ti- me. Как и всякий файл, news_time содержит сведения о дате и времени создания. Когда Вы входите в систему, то время создания каждого файла из /etc/news сравнивается с временем создания файла news_time в Вашем каталоге. Если от выдачи сообщения дня пользователь не может отказаться, то с новостями он может поступить одним из следующих способов. Читать все Если вводится команда news без аргументов, то на терминал выдаются все новости, поступившие с момента последнего обращения к этой команде. Читать выборочно Если в команде news перечислены в качестве ар- гументов имена одного или нескольких файлов новостей, то распечатываются только они. Читать и прерывать После того как команда введена, пользователь может прервать распечатку любой новости, нажав клавишу DELETE. Если нажать клавишу DELETE дважды подряд, то печать новостей прекращает- ся. Игнорировать Если пользователь слишком занят, и ему некогда изучать новости, то он может пренебречь ими. Файлы новостей хранятся в каталоге /etc/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, полезно также вести журнал обращений и жалоб пользователей. Затруднения, с которыми сталкиваются пользователи, как правило, можно классифицировать. Если Вы будете записывать, как удалось разрешить те или иные проблемы, то при возникновении аналогич- ных сложностей у других пользователей Вам не придется разби- раться в них "с нуля". Бланки запросов пользователя Другая настоятельная рекомендация - разработать регулярную фор- му для сообщений пользователей о своих затруднениях. Ниже пока- зан образец бланков, которые можно использовать для описания и учета проблем пользователей. Бланк-запрос Машина ................................... Исполняемая программа..................... .......................................... Тип....................................... Симптомы.................................. Масштабы.................................. Сообщения об ошибках...................... ФИО пользователя..............вход........ Комната....................телефон........