开了samba共享,为了让用户自行修改samba密码,又不想装什么changepasswd web的工具,查了好久终于搞定。
环境:Ubuntu18.04.5
1. 添加linux用户和samba用户,用户登录shell为默认的/bin/sh,步骤就不细说了,把samba用户添加到一个用户组,比如 group1
2. samba配置文件 /etc/samba/smb.conf的主要设置 (基本都是默认设置)
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .pam password change = yes
map to guest = bad user
3. 修改 /etc/ssh/sshd_conf
最后添加
Match Group group1
ForceCommand smbpasswd
4. 重启 samba和sshd
好了,用户通过ssh登录时就只能执行smbpasswd修改自己的samba密码,不能执行其它命令了,达到目的。