Existe um script que é executado como root quando o usuário faz login?

Existe um script que é executado como root quando o usuário faz login?

Quando um usuário faz login, preciso executar um comando que precisa de privilégios escalonados. Não quero dar ao usuário acesso sudo para esse comando. Só quero executar este script para esse usuário, não para todos os usuários.

Responder1

Com base no seu comentário, parece que você deseja que o usuário 'fred' não tenha um shell normal, mas execute o script 'foo' no login. Isso pode ser feito facilmente se você não espera que Fred tente muito escapar de sua "caixa de areia".

$ cat ~fred/.bash_login
#!/bin/bash
exec /usr/local/bin/foo

## in ubuntu each user has a group of his "own"
$ sudo chown foo:fred ~fred ~fred/.bash_login /usr/local/bin/foo
## prevent fred from altering the files and directories we care about
$ sudo chmod g-w ~fred ~fred/.bash_login /usr/local/bin/foo
## make script foo run with user foo's privileges
$ sudo chmod u+s /usr/local/bin/foo 

Portanto, Fred agora nem receberá um prompt do shell porque a primeira coisa que seu shell de login faz é substituir-se por foo; quando o script foo sair, fred será desconectado. A razão pela qual Fred não deveria ter motivação para sair dessa sandbox é que muitos programas permitem que shells subordinados sejam abertos, o que permitiria a Fred desfazer o bloqueio do pobre homem mostrado aqui.

Usar este método com "root" em vez de algum foo não superusuário pode ser usado para sequestrar o root, então não faça isso.

Responder2

Eu usaria chmod 6755 filename (ou 6711 se você não quiser ser lido por outros usuários) e depois colocaria no cron... Isso deve funcionar, pois é uma permissão para executar este arquivo como proprietário. Então, se você criá-lo como root, você poderá usá-lo assim...

informação relacionada