在网上什么也没找到:我正在寻找一种自动同步 linux 和 samba(而不是 Samba 和 Linux)密码的方法。我编写了一个 cgi web 表单,使用加密密码直接在影子文件中更改此密码(出于安全原因,我不想允许将密码以明文形式存储在日志文件中)。不使用 LDAP。如果用户第一次使用 ssh 登录,一切都会很好,但我有一些用户只使用 windows,所以我不能要求秘书这样做。
基本上,我所做的是: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。
有人能帮助我吗?谢谢。