Я установил прокси-сервер squid и теперь пытаюсь найти способ изменить пароль для любой учетной записи через Интернет. Я ищу в Google и обнаружил, что у chpasswd.cgi есть эта функция. Я скачиваю chpasswd-cgi.tar.gz и извлекаю его:
tar zxf chpasswd-cgi.tar.gz
затем я прочитал README, чтобы узнать, как его установить. Там написано, что просто введите ./configure, затем я пытаюсь ввести make, затем выполнить установку.
Ошибка ниже
[root@proxy chpasswd-1.9.1]# make
gcc -c -O2 -w -I. -DHAVE_LIBCRYPT=1 -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_CRYPT_H=1 -DHAVE_PWD_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRSTR=1 -DPREFIX=\"/usr/local/etc/chpasswd\" -DEnglish chpasswd.c
chpasswd.c:686: error: static declaration of ‘strip_latin’ follows non-static declaration
chpasswd.c:602: note: previous implicit declaration of ‘strip_latin’ was here
make: *** [chpasswd.o] Error 1
[root@proxy chpasswd-1.9.1]# make install
gcc -c -O2 -w -I. -DHAVE_LIBCRYPT=1 -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_CRYPT_H=1 -DHAVE_PWD_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRSTR=1 -DPREFIX=\"/usr/local/etc/chpasswd\" -DEnglish chpasswd.c
chpasswd.c:686: error: static declaration of ‘strip_latin’ follows non-static declaration
chpasswd.c:602: note: previous implicit declaration of ‘strip_latin’ was here
make: *** [chpasswd.o] Error 1
Как мне это решить?
Это может быть полезно: http://www.squid-cache.org/mail-archive/squid-users/200502/0464.html
Однако для такой функции, как обновление паролей, я хотел бы знать, что безопасность этого скрипта находится под контролем, поэтому, если ему нужно поработать над исходным кодом, чтобы заставить его скомпилировать, я бы беспокоился о том, поддерживается. Я бы либо посмотрел на правильно поддерживаемый дистрибутив, либо был уверен, что смогу поддерживать его сам, и у меня есть достаточно веские причины, чтобы захотеть этим заняться.
Файл паролей имеет формат htpasswd (от Apache), поэтому для обновления паролей будет доступно другое программное обеспечение. Также squid может разговаривать с другими серверами аутентификации. (например, ldap часто подходит для тех сред, где вы хотите аутентифицировать использование squid). Или, возможно, chpasswd-cgi доступен в поддерживаемом пакете для вашего дистрибутива ОС?
Вы можете получить более полезные ответы, если определите, какой дистрибутив ОС вы используете.