В сети вообще ничего не найдено: я ищу автоматическую синхронизацию паролей linux to samba (НЕ Samba to Linux). Я написал веб-форму cgi, которая изменяет этот пароль непосредственно в теневом файле, используя зашифрованный пароль (из соображений безопасности я не хочу, чтобы пароли хранились в виде открытого текста в файлах журналов). Не использует LDAP. Все было бы хорошо, если пользователь входит в систему впервые, используя ssh, но у меня есть пользователи, которые используют только окна, поэтому я не могу спросить i.ex. секретарь, чтобы сделать это.
По сути, я еще сделал следующее: vi /etc/pam.d/common-password
password required pam_smbpass.so nullok use_authtok use_first_pass
- Я также попробовал changepassword-0.9, но есть ошибка, которая никогда не была решена его программистом.
- Сват это не решение для меня.
Я еще нашел следующие сайты, но все еще борюсь вокруг ...
- http://uranus.chrysocome.net/linux/smbfs/pam_smbpass.html
Вот некоторый код моего сценария Perl CGI:
# Crypt the password here so that it cannot be read in any logflie
my $cryptedShadowString = `echo "$new_passwd1"|openssl passwd -1 -stdin`;
chomp($cryptedShadowString);
(...)
open($result, '-|') || exec $SUDO, $EXECUTINGSCRIPT, $login, $old_passwd, $cryptedShadowString, $cryptedShadowString;
Это отправит зашифрованный пароль другому сценарию perl, который записывает его непосредственно в теневой файл. (Все это защищено шибболетами, поэтому мне наплевать на хакеров со всего мира).
Я пытался что-то подобное в сценарии выполнения, но, к сожалению, это не решение проблемы:
# Do a first login to chat the new password to the samba password file:
sleep 2; # sleep a bit, for the next command:
system(" ( echo '') | exec '/bin/su' $login");
Я не могу использовать ни AD, ни samba в качестве DC, ни LDAP по причинам, не связанным с политикой компании.
Кто-то может мне помочь? Спасибо.