Сегодняшний выпуск посвящен команде newgrp(1), позволяющей
изменить реальный и эффективный идентификаторы группы для текущего сеанса.
Перевод закончен сегодня, 13 ноября, по справочному руководству Solaris 8.
Новые публикации на сайте OpenXS Initiative
Поскольку ваши интересы, скорее всего, не ограничиваются только
справочным руководством UNIX, хочу сообщить о новых публикациях на моем сайте
по другим темам:
Команда newgrp переводит пользователя в новую группу, изменяя реальный и
эффективный идентификатор группы. Пользователь остается зарегистрированным и текущий каталог
не изменяется. Выполнение команды newgrp всегда заменяет текущий командный интерпретатор
новым, даже если эта команда выполняется с ошибкой (указана неизвестная группа).
Любая не экспортированная переменная при этом сбрасывается в пустую строку или стандартное
значение. Значения экспортированных переменных остаются. Системные переменные (такие как
PS1, PS2, PATH, MAIL и HOME) сбрасываются в стандартные значения,
если не экспортированы системой или пользователем. Например, если пользователь задал нестандартную
строку основного приглашения (PS1), отличающуюся от $ (стандартной), и не
экспортировал переменную PS1, переменная PS1 пользователя будет сброшена в стандартное
значение, $, даже если программа newgrp завершится с ошибкой. Помните, что сохранения
значений в порожденных командных интерпретаторах переменные экспортируются командой export
(см. sh(1) и set(1)).
При отсутствии операндов и опций, команда newgrp восстанавливает индентификаторы группы
пользователя (реальный и эффективный) в соответствии с группой, указанной в учетной записи
пользователя. Это позволяет отменить действие предыдущей команды newgrp.
Если для группы задан пароль и текущий пользователь не указан в файле /etc/group как
принадлежащий к этой группе, запрашивается пароль. Единственный способ задать пароль для
группы - использовать команду passwd(1) для задания
пароля пользователя, а затем вырезать пароль из файла /etc/shadow и вставить в
/etc/group. Применение паролей для групп считается устаревшей практикой и используется
не часто.
Встроенная команда sh
Она эквивалентна команде exec newgrp аргумент, где аргумент представляет собой
опции и/или операнд внешней команды newgrp.
Встроенная команда ksh
Она эквивалентна команде exec /usr/bin/newgrp аргумент, где аргумент представляет
собой опции и/или операнд внешней команды newgrp.
Упомянутые на этой странице справочного руководства команды ksh(1),
перед которыми идет одна или две звездочки (*) обрабатываются специальным образом,
а именно:
Списки присваиваний переменным, идущие перед именем команды, остаются в силе после
выполнения команды.
Перенаправления ввода/вывода обрабатываются после присваивания значений переменным.
Ошибки приводят к прекращению работы сценария, в котором они возникли.
Слова, после которых идет команда, предваренная **, соответствующие формату
присваивания значений переменным, обрабатываются по тем же правилам, что и присваивания переменным.
Это означает, что подстановка тильды выполняется после того, как обработаны знаки =,
выполнено разбиение на слова и подстановка имен файлов.
Имя группы из базы данных групп или неотрицательное число-идентификатор группы.
Задает идентфикатор группы, который будет установлен в качестве реального и эффективного
идентификатора группы для командного интерпретатора. Если группа - строка, представляющая
неотрицательное число и существует группа с таким же именем в базе данных групп
(см. getgrnam(3C)), будет использован соответствующий этому
имени идентификатор группы.
аргумент
Только для встроенных команд интерпретаторов sh и ksh. Опции и/или операнды команды
newgrp.
Описание следующих переменных среды:
LC_CTYPE, LC_MESSAGES и NLSPATH,
влияющих на работу команды newgrp,
см. на странице справочного руководства environ(5).
Если команда newgrp успешно создает новый командный интерпретатор, то независимо от
того, успешно или нет были изменены идентификаторы группы, статусом выхода будет статус выхода командного интерпретатора. В противном случае, возвращается следующее значение:
man ndd(1M) из Solaris 8 или man emergency_rec(1M) из
OpenUNIX 8 (UnixWare 7.1.2). Выпуск выйдет в конце недели.
Следите за новостями
на сайте рассылки.