Я хочу защитить поддомен, к которому пользователю предоставляется доступ только на 1 день. Можно ли настроить задание cron, которое будет автоматически обновлять файл .htpasswd с новым паролем ежедневно?
Вам, вероятно, следует использовать приложение, которое предназначено для этого, а не взламывать что-то вместе с cron. Но, если вам нужно сделать его хакерским ...
Вам нужно будет запустить htpasswd в «пакетном режиме». На странице руководства htpasswd:
htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve
Encrypts the password from the command line (Pwd4Steve)
using the MD5 algorithm, and stores it in the specified
file.
Примерно так должно работать:
FILE=/path/to/your/htaccess/file
# There are a bunch of ways to get a new password, this is one:
NEW_PASS=`cat /dev/urandom|tr -dc "a-zA-Z0-9-_\$\?"|fold -w 9|head -n1`
HTPASSWD=/usr/bin/htpasswd
WEB_USER=samuel_l_jackson
# This should do it
$HTPASSWD -b $FILE $WEB_USER $NEW_PASS
# You'll probably want to email the password to your user,
# so they can actually use the new password
Обычно я отвечал только: да, это возможно.
Но вы даже можете интегрировать базу данных, в которой хранятся пользователь и пароль. Например mod_auth_mysql
. А затем вы даже можете включить / отключить / изменить все с помощью стандартного SQL. Я оставлю только намек на это вопрос и домашняя страница. Иногда этот подход не работает, но в этом случае вы можете обойти это, заменив mod_auth_mysql
с участием mod_auth_pam
а затем интегрировать MySQL в PAM. Но я позволю этому в качестве упражнения для читателя ...