用户更改Samba密码的方法


10

我有一个可容纳约5个用户(安全性=用户)的Samba服务器,并且我希望这些用户无需我的参与即可更改其密码,因此我有以下想法。这样安全吗?是否有更好的方法(如更简单的方法)。我们曾经为此特警,但仅此而已。


在服务器上:创建受限用户(/ bin / rbash +指向单个目录的PATH)

$ sudo adduser --shell /bin/rbash pwchange

$ cat /etc/passwd
  pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash

$ sudo vi /home/pwchange/.bashrc
  Add:
  export PATH=/usr/local/pwchange

$ sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd

这里的想法是pwchange用户只能运行sambpasswd命令。Samba用户的UNIX帐户没有密码(即,不允许通过这些帐户登录)。samba用户将只能使用此受限帐户进行自助Samba密码更改...无法浏览服务器!


客户端:通过终端或腻子更改Samba密码(Windows)

user1@A3700:~$ ssh pwchange@192.168.1.14

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1

但我认为smbpasswd这是为用户和管理员一样更改其密码的。。。那是您想要的吗?
乔治·乌德森

在这种情况下,用户的Unix帐户没有密码,因此,user1无法以user1@192.168.1.14身份登录。将Samba服务器设置为“安全=用户”,并在smb.conf中设置了文件限制。不允许用户进行Unix登录,因为底层的Unix文件权限比Samba和Unix文件权限的组合更宽松(不使用Unix扩展ACL。)
brucehohl

在我的大学里,我们有一个自助服务门户,用户可以使用id和sms验证进行身份验证,在后台我们发出了smbpasswd命令
Rabin

Answers:


1

让他们全部访问同一个虚拟帐户听起来并不明智。即使您将其锁定为无权访问,但smbpasswd他们仍然可以更改彼此的密码。并且总是存在恶意特权升级攻击的可能性。

从本质上讲,听起来像想要的是允许他们只使用smbpasswd自己的用户帐户运行命令,同时仍然具有与该nologin帐户相同的权限。

这可以通过在sshd_config中使用“ ForceCommand”选项来完成。

尝试这个:

  1. 将具有Samba帐户成员资格的每个用户授予同一组。对于我们的示例,我们说“ sambaOnly”:

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. 接下来,我们想将sshd_config文件更改为具有以下内容:

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

Presto。根据我的理解(和简短的测试),这意味着当他们通过SSH登录时,他们将自动smbpasswd运行命令并相应地被提示。他们将永远没有机会获得Shell访问权限。命令完成后,它们将自动断开连接,再也无法获得访问shell的机会。

我不是100%确定这会远程删除对计算机的所有访问。例如,如果您在没有ForceCommand它们的同一台计算机上运行其他SSH服务器,则它们可以根据其访问控制配置通过该服务器登录。

同样,如果他们有机会物理访问终端,则可以登录。

但是,我认为在大多数情况下,这是相当强大的访问控制。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.