Показаны сообщения с ярлыком passwd. Показать все сообщения
Показаны сообщения с ярлыком passwd. Показать все сообщения

17 февр. 2017 г.

usermod -p

Для тестовых целей может потребоваться образ linux-а с предустановленным паролем root. При создании такого образа (через Docker, Vagrant, установочные скрипты) можно воспользоваться командой 
# usemod -p encrypted_password root
Чтобы получить шифрованное значение пароля
# openssl passwd my_pass

20 мар. 2009 г.

Настройка авторизации пользователя через .htaccess в Apache2

Возникла следующая задачка: нужно отдать файл через http, но только нужному пользователю. Наиболее простое имхо решение - apache2+аутентификация доступа. То есть это будет выглядеть как линк, http://example.com/restricted, по которому пользователя спросят явки/пароли. Если он их знает - велкам, иначе - лесом. Все просто. Реализуется это, как выяснилось, тоже элементарно. Работать будем под Debian Etch. Вообще, все нижеописанное справедливо для любой ОС, под которой запущен apache, однако некоторые моменты, вроде имени пользователя, от которого работает веб-сервер, или команда перезапуска, будут различны, и это стоит иметь в виду.
Итак, пусть у нас уже есть установленный и работающий апач. Для начала создадим файл aliases, в котором опишем необходимый алиас для доступа (можно было замутить более пальцевеерно выглядящий виртуальный хост - http://restricted.example.com, но в данном случае это некритично, поэтому ограничимся более простым вариантом):
interra:/# nano /etc/apache2/aliases

<IfModule alias_module>
Alias /restricted "/srv/www/restricted/"
<Directory "/srv/www/restricted/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</IfModule>
Далее расскажем об этом файле apache2:
echo "Include /etc/apache2/aliases" >> /etc/apache2/apache2.conf
После рестарта сервиса /etc/init.d/apache2 restart данная директория будет доступна через браузер по http://example.com/restricted.
Однако ее еще физически нет на сервере ;) Создаем, даем права доступа для www-data (пользователя, от имени которого работает www-сервер)
mkdir /srv/www/restricted; chown www-data.www-data /srv/www/restricted
Теперь ограничение доступа. Ограничивать мы будем с помощью локального .htaccess (именно для этого при описании алиаса используется AllowOverride all директива - для преимущества параметров .htaccess над глобальными настройками сервера). Создадим этот файл в корне /restricted со следующим содержанием:
interra:/# nano /srv/www/restricted/.htaccess

AuthName "Restricted Access. Authenficate yourself!"
AuthType Basic
AuthUserFile /srv/www/restricted/.htpasswd
<Limit GET>
order deny,allow
allow from all
require valid-user
</Limit>
То бишь теперь доступ к папке /restricted будет блокироваться всем, кроме списка valid-user'ов из /srv/www/restricted/.htpasswd и то только при их успешной аутентификации. Осталось создать файл .htpasswd.
Делается это одноименной утилитой, лежать файл может где угодно, ну и прав на чтение его стоит дать поменьше.. например 0600. Создаем тестового пользователя test c паролем test:
interra:/srv/www/restricted# htpasswd -c /srv/www/restricted/.htpasswd test
New password:
Re-type new password:
Adding password for user test
И если поглядеть на файл .htpasswd изнутри, то...
interra:/# more /srv/www/restricted/.htpasswd
test:IWF8pgFr9p2o.
Зайдя по вышеозначенному адресу, мы получим приглашение аутентифицировать себя. В случае успешной аутентификации увидим содержимое директории. Иначе,
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.
что по-русски звучит как "идите в лес" =)
Данный материал навеян этой страничкой, там присутствуют также описания всех используемых в работе директив Apache. То, чего нет там, можно узнать тут.
PS: при написании заметки неоценимую помощь оказала эта страничка, автоматом декодирующая HTML'ные <> в идеологически правильные &lt и &gt".

3 июн. 2008 г.

Восстановление root пароля

Краткая памятка забывчивому люду, или просто испытывающим необходимость по ряду причин поменять пароль root на своей, или не своей =), linux-системе, не зная пароля текущего. Проверено на Debian 4.0-r0, загрузчик - GRUB. Итак, последовательность действий следующая:
1) при появлении приглашения GRUB'a со списком загружаемых ОС или вариантами загрузки перевести курсор на обычную загрузку и нажать е (edit);
2) в новом окне выбрать строку с параметрами загрузки (самая длинная будет) и снова нажать е;
3) дописать в конце строки init=/bin/bash;
4) нажать b (boot) - произойдет загрузка с этими параметрами;
5) если все правильно, появится приглашение вида root@...#, различное для разных дистрибутивов;
6) перемонтировать корень для записи mount -n -o remount,rw / (по умолчанию в однопользовательском режиме корень монтируется в режиме readonly (ro);
7) сменить пароль через passwd, синхронизировать изменения через sync (всякий пожарный), ребутнуть систему (причем жестким reset'ом, так как reboot будет недоступна).