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

4

Quando um usuário efetua login, preciso executar um comando que precise de privilégios escalados. Eu não quero dar ao usuário sudo acesso para esse comando. Eu só quero executar este script para esse usuário, não para todos os usuários.

    
por Meer Borg 27.03.2013 / 05:47

2 respostas

1

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

$ 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 

Então, o fred agora nem receberá um prompt do shell, porque a primeira coisa que o seu shell de login faz é substituir o foo; quando o script foo sair, o fred será desconectado. A razão pela qual Fred não precisa de motivação para sair desta caixa de areia é que muitos programas permitem a abertura de conchas subordinadas, o que permitiria que a Fred desfizesse o bloqueio do homem pobre mostrado aqui.

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

    
por msw 27.03.2013 / 19:42
0

Eu usaria chmod 6755 filename (ou 6711 se você não quer ser lido por outros usuários) e depois coloco no cron ... Isso deve funcionar, pois é permissão para rodar esse arquivo como dono. Então, se você cria-lo como root, você deve ser capaz de usá-lo assim ...

    
por Štěpán Postránecký 27.03.2013 / 07:10

Tags