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

Здесь есть возможность читать онлайн «Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Питер, Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

····exit 1

··elif [! -w $passwdfile]; then

····echo "Error: can't write to password file: can't update."

····exit 1

··fi

··echo "

"

··echo "Apache Password Manager"

··action="$(echo $QUERY_STRING | cut −c3)"

··user="$(echo $QUERY_STRING|cut −d\& −f2|cut −d= −f2 |\

··tr '[: upper: ]' '[: lower: ]')"

картинка 412··case "$action" in

····A) echo "

Adding New User $user

"

········if [! -z "$(grep −E "^${user}:" $passwdfile)"]; then

··········echo "Error: user $user already appears in the file."

········else

··········pass="$(echo $QUERY_STRING|cut −d\& −f3|cut −d= −f2)"

картинка 413··········if [! -z "$(echo $pass|tr −d '[[: upper: ][:lower: ][:digit: ]]')"];

··········then

············echo "Error: passwords can only contain a-z A-Z 0–9 ($pass)"

··········else

картинка 414············$htpasswd $passwdfile "$user" "$pass"

············echo "Added!
"

··········fi

········fi

········;;

····U) echo "

Updating Password for user $user

"

········if [-z "$(grep −E "^${user}:" $passwdfile)"]; then

··········echo "Error: user $user isn't in the password file?"

··········echo "searched for "^${user}:" in $passwdfile"

········else

··········pass="$(echo $QUERY_STRING|cut −d\& −f3|cut −d= −f2)"

··········if [! -z "$(echo $pass|tr −d '[[: upper: ][:lower: ][:digit: ]]')"];

··········then

············echo "Error: passwords can only contain a-z A-Z 0–9 ($pass)"

··········else

············grep −vE "^${user}:" $passwdfile | tee $passwdfile > /dev/null

············$htpasswd $passwdfile "$user" "$pass"

············echo "Updated!
"

··········fi

········fi

········;;

····D) echo "

Deleting User $user

"

········if [-z "$(grep −E "^${user}:" $passwdfile)"]; then

··········echo "Error: user $user isn't in the password file?"

········elif ["$user" = "admin"]; then

··········echo "Error: you can't delete the 'admin' account."

········else

··········grep −vE "^${user}:" $passwdfile | tee $passwdfile >/dev/null

··········echo "Deleted!
"

········fi

········;;

··esac

··# Всегда перечислять текущих пользователей в файле паролей…

··echo "

"

··echo "

"

картинка 415··oldIFS=$IFS; IFS=":" # Изменить разделитель слов…

··while read acct pw; do

····echo "

"

··done < $passwdfile

··echo "

List "

··echo "of all current users

$acct "

····echo "[delete]

"

··IFS=$oldIFS·········· #…и восстановить его.

··# Собрать строку выбора со всеми учетными записями…

картинка 416··optionstring="$(cut −d: −f1 $passwdfile | sed 's/^/

/'|tr '\n' ' ')"

··if [! -r $footer]; then

····echo "Warning: can't read $footer"

··else

····#…и вывести нижний колонтитул.

картинка 417····sed −e "s/-myname-/$myname/g" −e "s/-options-/$optionstring/g" < $footer

··fi

··exit 0

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

Для нормальной работы этого сценария требуется очень многое. Необходимо правильно настроить не только конфигурацию веб-сервера Apache (или эквивалентного ему), но и содержимое файла .htaccess , и в файле .htpasswd должна иметься хотя бы запись для пользователя admin.

Сам сценарий извлекает в htpasswd имя файла с паролями из файла .htaccess и выполняет разные проверки, чтобы исключить наиболее типичные ошибки при работе с htpasswd, в том числе и ошибку недоступности файла для записи. Все это делает инструкция case перед основным блоком сценария.

Операции с файлом. htpasswd

Инструкция case картинка 418определяет, какая из трех возможных операций запрошена −A (добавить пользователя), U (изменить запись с информацией о пользователе) или D (удалить пользователя), — и выполняет соответствующий фрагмент кода. Код операции и имя пользователя хранятся в переменной QUERY_STRING. Значение для этой переменной посылается на сервер веб-браузером в составе URL, в виде a=X&u= Y , где X — буквенный код операции, а Y — имя пользователя. Когда запрашивается операция изменения пароля или добавления пользователя, должен передаваться третий аргумент, p, с паролем.

Например, допустим, что мы добавляем нового пользователя joe с паролем knife. В результате этого действия веб-сервер передаст сценарию следующее значение в переменной QUERY_STRING:

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

Интервал:

Закладка:

Сделать

Похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Представляем Вашему вниманию похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x