Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание

Тут можно читать онлайн Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2017
  • Город:
    СПб.
  • ISBN:
    978-5-496-03029-8
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание краткое содержание

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - описание и краткое содержание, автор Дейв Тейлор, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ. А решения даются так, что их легко можно взять за основу и экстраполировать на другие схожие задачи.
Цель этой книги — продемонстрировать практические приемы программирования сценариев на bash и познакомить с самыми распространенными утилитами на коротких и компактных примерах, не вдаваясь в излишние подробности. Экспериментируйте с этими сценариями — ломайте, исправляйте и приспосабливайте их под свои нужды, чтобы понять, как они работают. Только так вы сможете решать самые сложные задачи.

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - читать онлайн бесплатно полную версию (весь текст целиком)

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - читать книгу онлайн бесплатно, автор Дейв Тейлор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

··#·· Для стандартных систем Unix/Linux, не для OS X.

··pwfile="/etc/passwd"

··shadowfile="/etc/shadow"

··gfile="/etc/group"

··hdir="/home"

··if ["$(id −un)"!= "root"]; then

····echo "Error: You must be root to run this command." >&2

····exit 1

··fi

··echo "Add new user account to $(hostname)"

··/bin/echo −n "login: "; read login

··# Следующая строка ограничивает максимальный числовой идентификатор

··#·· пользователя значением 5000, скорректируйте это значение,

··#·· чтобы оно соответствовало верхней границе вашего диапазона

··#·· числовых идентификаторов пользователей.

картинка 283··uid="$(awk −F: '{ if (big < $3 && $3 < 5000) big=$3 } END { print big + 1 }'\

········ $pwfile)"

··homedir=$hdir/$login

··# Для каждого пользователя создается собственная группа.

··gid=$uid

··/bin/echo −n "full name: "; read fullname

··/bin/echo −n "shell: "; read shell

··echo "Setting up account $login for $fullname…"

··echo ${login}:x:${uid}:${gid}:${fullname}:${homedir}:$shell >> $pwfile

··echo ${login}:*:11647:0:99999:7::: >> $shadowfile

··echo "${login}:x:${gid}:$login" >> $gfile

··mkdir $homedir

··cp −R /etc/skel/.[a-zA-Z]* $homedir

··chmod 755 $homedir

··chown −R ${login}:${login} $homedir

··# Установка начального пароля

··exec passwd $login

Как это работает

Самая замысловатая команда в этом сценарии находится в строке картинка 284. Она перебирает записи в файле /etc/passwd , отыскивает наибольший числовой идентификатор, который меньше наибольшего допустимого значения для учетных записей пользователей (в этом сценарии используется число 5000, но вы должны скорректировать его для своей конфигурации), и затем прибавляет 1, чтобы получить числовой идентификатор для новой учетной записи. Это избавляет администратора от необходимости запоминать следующий доступный числовой идентификатор, а также гарантирует высокую степень согласованности информации об учетных записях в процессе развития и изменения коллектива пользователей.

Сценарий добавляет учетную запись с новым числовым идентификатором. Затем создает домашний каталог для нового пользователя и копирует в него содержимое каталога /etc/skel . В соответствии с соглашениями, каталог /etc/skel должен хранить шаблоны файлов .cshrc, login, bashrc и .profile . На сайтах, где имеется веб-сервер, поддерживающий службу ~account, в новый домашний каталог необходимо также скопировать каталог, такой как /etc/skel/public_html . Это особенно удобно, если в вашей организации предусматривается настройка рабочих станций с Linux для инженеров или разработчиков специальными конфигурациями bash.

Запуск сценария

Этот сценарий не имеет аргументов и должен запускаться с привилегиями root.

Результаты

В нашей системе уже есть учетная запись для tintin, поэтому мы решили создать отдельную учетную запись для snowy [4] Вам непонятно, о чем это мы? Это персонажи из замечательной серии иллюстрированных комиксов «Adventures of Tintin» (Приключения Тинтина), созданной бельгийским художником Эрже (Hergé) и вышедшей в середине XX века. Подробности смотрите на сайте: http://www.tintin.com/ ( https://ru.wikipedia.org/wiki/Приключения_Тинтина — Примеч. пер. ). (как показано в листинге 5.15).

Листинг 5.15.Тестирование сценария adduser

$ sudo adduser

Add new user account to aurora

login: snowy

full name: Snowy the Dog

shell: /bin/bash

Setting up account snowy for Snowy the Dog…

Changing password for user snowy.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

Усовершенствование сценария

Одним из значительных преимуществ использования собственного сценария adduser является возможность расширять его и изменять логику отдельных операций, не заботясь об обновлении системы под эти изменения. В числе вероятных расширений автоматическая отправка приветственного электронного письма, в общих чертах обрисовывающего порядок работы и способы получения справочной информации, автоматическая печать на бумаге сводной информации об учетной записи для передачи пользователю, добавление псевдонима firstname_lastname или firstname.lastname в файл aliases сервера электронной почты и даже копирование комплекта файлов в домашний каталог учетной записи, чтобы пользователь мог немедленно включиться в коллективную работу над проектом.

№ 41. Приостановка действия учетной записи

Есть много случаев, когда желательно заблокировать учетную запись, не удаляя ее из системы, например, когда пользователь уличен в краже промышленных секретов и идет разбирательство, студент отправился отдыхать на летние каникулы или подрядчик ушел в отпуск.

Можно просто изменить пароль пользователя и не сообщить ему, но, если пользователь в это время находится в системе, также важно было бы принудительно вывести его из системы и закрыть доступ к его домашнему каталогу из других учетных записей в системе. Когда действие учетной записи приостанавливается, почти всегда требуется вывести пользователя из системы немедленно , а не когда он сам пожелает сделать это.

Бо́льшая часть сценария в листинге 5.16 связана с определением присутствия пользователя в системе, его уведомлением о завершении сеанса и принудительным выводом из системы.

Код

Листинг 5.16.Сценарий suspenduser

#!/bin/bash

# suspenduser — приостанавливает действие учетной записи до неопределенного

#·· момента в будущем

homedir="/home" # Местонахождение домашних каталогов пользователей

secs=10········ # Пауза в секундах перед выводом пользователя из системы

if [-z $1]; then

··echo "Usage: $0 account" >&2

··exit 1

elif ["$(id −un)"!= "root"]; then

··echo "Error. You must be 'root' to run this command." >&2

··exit 1

fi

echo "Please change the password for account $1 to something new."

passwd $1

# Теперь посмотрим, если пользователь зарегистрирован в системе.

#·· выведем его принудительно.

if who|grep "$1" > /dev/null; then

··for tty in $(who | grep $1 | awk '{print $2}'); do

····cat << "EOF" > /dev/$tty

******************************************************************************

URGENT NOTICE FROM THE ADMINISTRATOR:

This account is being suspended, and you are going to be logged out

in $secs seconds. Please immediately shut down any processes you

have running and log out.

If you have any questions, please contact your supervisor or

John Doe, Director of Information Technology.

******************************************************************************

EOF

··done

··echo "(Warned $1, now sleeping $secs seconds)"

··sleep $secs

··jobs=$(ps −u $1 | cut −d\ −f1)

картинка 285kill −s HUP $jobs # Послать сигнал остановки процессам пользователя.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Дейв Тейлор читать все книги автора по порядку

Дейв Тейлор - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание отзывы


Отзывы читателей о книге Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание, автор: Дейв Тейлор. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x