Дейв Тейлор - Сценарии командной оболочки. 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-е издание - читать книгу онлайн бесплатно, автор Дейв Тейлор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

http://www.bloghop.com/ratemyblog.htm fails with error code 6

http://www.blogphiles.com/webring.shtml fails with error code 56

http://www.blogstreet.com/blogsqlbin/home.cgi fails with error code 56

http://www.builder.cnet.com/ fails with error code 6

http://www.buzz.builder.com/ fails with error code 6

http://www.chem.emory.edu/html/html.html fails with error code 6

http://www.cogsci.princeton.edu/~wn/ fails with error code 6

http://www.ourecopass.org/ fails with error code 6

http://www.portfolio.intuitive.com/portfolio/ fails with error code 6

Done. Checked 156 URLs and found 23 errors.

Похоже, пришло время немного прибраться!

№ 71. Управление паролями в Apache

Одна из необычных возможностей веб-сервера Apache — встроенная поддержка защиты каталогов паролями, даже на общедоступном сервере. Это отличный способ ограничить доступ к закрытой информации на вашем веб-сайте, будь то платная служба или просто личный фотоальбом, предназначенный только для членов семьи.

Стандартные конфигурации требуют наличия в защищенном каталоге файла с именем .htaccess . Этот файл определяет название «зоны» безопасности и, что более важно, ссылается на отдельный файл, содержащий пары из имени учетной записи и пароля, которые используются для проверки права доступа к каталогу. Управление упомянутым файлом не вызывает проблем, за исключением того, что в составе Apache для этой цели имеется единственный инструмент — простенькая программа htpasswd, которая запускается из командной строки. Другой вариант — описываемый здесь сценарий apm, один из самых сложных сценариев в книге, — инструмент управления паролями, который можно запускать в браузере как CGI-сценарий и с его помощью добавлять новые учетные записи, изменять пароли существующих и удалять учетные записи из списка доступа.

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

$ cat.htaccess

AuthUserFile /usr/lib/cgi-bin/.htpasswd

AuthGroupFile /dev/null

AuthName "Members Only Data Area."

AuthType Basic

require valid-user

Имена учетных записей и пароли хранятся в отдельном файле .htpasswd . Если он отсутствует, его нужно создать. Вполне подойдет пустой файл: выполните команду touch.htpasswd и убедитесь, что созданный файл доступен для записи пользователю, с идентификатором которого запускается сам веб-сервер Apache (это может быть пользователь nobody). Теперь самое время переходить к сценарию в листинге 9.7. Однако он требует подготовки CGI-окружения, как описано в разделе «Запуск сценариев из этой главы» (глава 8). Сохраните сценарий в своем каталоге cgi-bin .

Код

Листинг 9.7.Сценарий apm

··#!/bin/bash

··# apm — Apache Password Manager (диспетчер паролей Apache) позволяет

··#·· администратору легко добавлять, изменять или удалять учетные записи

··#·· и пароли для доступа к подкаталогам в типичной конфигурации Apache

··#·· (когда конфигурационный файл имеет имя. htaccess).

··echo "Content-type: text/html"

··echo ""

··echo "

"

··basedir=$(pwd)

··myname="$(basename $0)"

··footer="$basedir/apm-footer.html"

··htaccess="$basedir/.htaccess"

··htpasswd="$(which htpasswd) −b"

··# Настоятельно рекомендуется включить следующий код для безопасности:

··#

··# if ["$REMOTE_USER"!= "admin" −a — s $htpasswd]; then

··#·· echo "Error: You must be user admin to use APM."

··#·· exit 0

··# fi

··# Получить имя файла с паролями из файла. htaccess

··if [! -r "$htaccess"]; then

····echo "Error: cannot read $htaccess file."

····exit 1

··fi

··passwdfile="$(grep "AuthUserFile" $htaccess | cut −d\ −f2)"

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

····echo "Error: can't read password file: can't make updates."

····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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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