Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

После этого следует небольшой фрагмент кода, который дает пользователям возможность регистрироваться дважды, но только одновременно для двух пользователей. Это правило не распространяется на следующих трех пользователей: idink, psalom, dave. Остальным пользователям будет отказано в доступе, если они попытаются зарегистрироваться более двух раз.

И в завершение последняя строка файла задает вид командной строки, содержащей регистрационное имя соответствующего пользователя.

В результате описанных выше действий устанавливается среда для глобального применения. А теперь выполним ее настройку, руководствуясь профильным файлом текущего пользователя.

13.2. Пользовательский файл $НОМЕ/.profile

После выполнения файла /etc/profile пользователь попадает в собственный начальный каталог $HOME. Если вернуться к файлу passwd, то видно, что имя этого каталога находится во втором поле от конца файла.

Этот каталог действительно является исходным каталогом пользователя, поскольку именно в нем хранится вся личная информация пользователя.

Если имеется файл .profile, система использует его в качестве исходного файла. Значит, данный процесс обращается к существующему интерпретатору shell. В результате этого все существующие среды {/etc/profile) не будут изменяться под влиянием информации файла (.profile). При создании другого процесса локальные переменные интерпретатора shell фактически переписываются.

Вернемся к файлу .profile. Как правило, если учетная запись уже установлена, профильный файл в каком-то виде уже существует. Важно помнить, что установки файла /etc/profile могут быть переопределены при добавлении в файл .profile нового элемента с другим значением либо при выполнении команды unset. Специальная настройка данного файла остается в ведении пользователя, поэтому рассмотрим стандартный файл .profile:

$ pg .profile

#.profile

set -a

MAIL=/usr/mail/$(LOGNAME:?)

PATH=$PATH export PATH

#

А теперь приступим к настройке данного файла.

Необходимо установить ряд переменных среды, подобных editor, чтобы утилита cron и другие приложения были осведомлены о применяемом редакторе. Кроме того, нас не устраивает режим эмуляции терминала vt220. Поэтому, изменим это значение на режим эмуляции терминала vt100. Это обстоятельство связано с переменной TERM.

Также можно создать каталог bin и указать его в настройках пути к своим файлам. Наличие подобного каталога желательно, поскольку именно в нем можно хранить все свои сценарии. Если же указать каталог в переменной path, можно вводить не полное имя пути к исполняемому сценарию, а лишь имя сценария.

Нужно ли, чтобы регистрационное имя отображалось в командной строке? Скорее всего, нет. Желательно, чтобы в командной строке отображался текущий каталог, а возможно, даже имя сервера используемой системы. Ниже показано, каким образом устанавливается имя базового компьютера.

$ P$1="`имя_сервера`>"

dns-cepвep>

Или для текущего каталога, в котором вы находитесь,

$ P$1="\`pwd\`>"

\home\dave>

Если в приведенной выше командной строке возвращается слово "pwd", то вместо него воспользуйтесь командной строкой:

P$1='$PWD >';

В качестве дополнительной командной строки (которая обычно применяется при выполнении многострочной команды в командной строке) можно применять знак авторского права ©. Значение этого символа в коде ASCII равно восьмеричному числу 251, или десятичному числу 169.

$ PS2=" `echo "\251" `:"

/home/dave> while read line

В Linux…

Для использования в echo восьмеричного значения применяется следующий синтаксис:

$ PS2="`echo -e "\251"`:"

Так как пользователи имеют доступ к параметрам администрирования системы, размещенным в каталоге /usr/admin, этот каталог следует задать в виде переменной среды. Тогда в данный каталог можно переходить с помощью команды cd.

ADMIN=/usr/adm

Кроме того, сразу же после регистрации желательно знать, сколько пользователей находится в системе. Для этого можно воспользоваться командой who или wc.

$ echo "`who | wc -l` users are on today"

19 users are on today

Итак, добавим в файл .profile все изменения. Для того чтобы возымели действие любые изменения в файле .profile или в файле /etc/profile, нужно выйти из системы, а затем повторно зарегистрироваться либо обращаться к данному файлу в качестве исходного. При этом используется следующий формат:

. /имя_пути/имя_файла

Чтобы использовать файл .profile в качестве исходного, достаточно ввести следующую команду:

$ . .profile

Если приведенный вариант не действует, можно попробовать следующий: $ . ./profile

Ниже показан измененный файл .profile.

$ pg .profile

#.profile

MAIL=/usr/mai1/${LOGNAME:?}

PATH=$PATH:$HOME:bin

#

EDITOR=vi

TERM=vt100

ADMIN=/usr/adm

P$1=" `hostname`>"

PS2=" `echo "\0251"`:"

  • Читать дальше
  • 1
  • ...
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win