Eu tenho um servidor Samba para cerca de 5 usuários (segurança = usuário) e quero que esses usuários alterem suas senhas sem o meu envolvimento, para que eu tenha a seguinte idéia. Isso é seguro? Existe uma abordagem melhor (como em mais simples). Costumávamos ter SWAT para isso, mas não mais.
No servidor: crie usuário restrito (/ bin / rbash + PATH para o diretório único)
$ 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
Essa idéia aqui é que apenas o comando sambpasswd pode ser executado pelo usuário pwchange. As contas unix para os usuários do Samba não possuem senhas (ou seja, logon através dessas contas não é permitido). Os usuários do samba só poderiam usar essa conta restrita para alterações de senha do Samba de autoatendimento ... sem explorar o servidor!
Cliente: Altere a senha do Samba via Terminal ou Putty (Windows)
user1@A3700:~$ ssh [email protected]
pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
smbpasswd
era para usuários e administradores alterarem suas senhas ... É isso que você quer?Respostas:
Dar a todos acesso à mesma conta fictícia não parece inteligente. Mesmo que você o bloqueie para ter acesso a nada, mas
smbpasswd
eles ainda poderão alterar as senhas um do outro. E sempre há a possibilidade de um ataque malicioso de escalonamento de privilégios.Essencialmente, o que parece que você deseja é permitir que eles executem SOMENTE o
smbpasswd
comando a partir de sua própria conta de usuário, mantendo um equivalente a umanologin
conta.Isso pode ser conseguido com o uso da opção "ForceCommand" no seu sshd_config.
Tente o seguinte:
Conceda a cada usuário com uma conta Samba no mesmo grupo. Para o nosso exemplo, digamos "sambaOnly":
Em seguida, queremos alterar nosso arquivo sshd_config para ter o seguinte:
Presto. Pelo que entendi (e teste breve), isso significa que, quando eles fizerem login via SSH, o
smbpasswd
comando será executado automaticamente e serão solicitados de acordo. Eles nunca terão a chance de ter acesso ao shell. Depois que o comando é concluído, eles são desconectados automaticamente, nunca mais tendo a chance de ter acesso ao shell.Não tenho 100% de certeza de que isso remova todo o acesso à máquina remotamente. Por exemplo, se você estiver executando um servidor SSH diferente na mesma máquina que não
ForceCommand
os usa , eles poderão fazer login através disso, dependendo da sua configuração de controle de acesso.Além disso, se eles tiverem a oportunidade de acesso físico a um terminal, poderão fazer login.
No entanto, acho que para a maioria das situações esse é um controle de acesso bastante forte.
fonte