Linux 到 Samba 自动密码同步

Linux 到 Samba 自动密码同步

在网上什么也没找到:我正在寻找一种自动同步 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

-https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/Configuring_a_Samba_Server-Encrypted_Passwords.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");

有人能帮助我吗?谢谢。

答案1

这实际上就是域的用途。使用 AD 域、samba 作为 DC 或仅使用 LDAP 作为密码后端。目前您正在重新发明轮子,而这个轮子呈三角形。

此外,您试图寻求帮助来完善您认为可能常见的任务的解决方案,但并未提及该任务是什么。我敢打赌,除非您正在进行一些高级研究,否则这是标准做法(但很抱歉,您的帖子显然没有给人留下这样的印象)。

相关内容