Criando uma conta de usuário dedicada a um único script no centos

1

Estou tentando fazer um login SSH para alguém na minha caixa. Mas quando eles fazem login, eu quero que ele carregue automaticamente um script perl e, para eles, SOMENTE em voz alta, ver / usar esse script perl.

Eu só sei como usar o comando useradd, eu não sei como definir perms ect.

Eu não sei como explicar isso em mais detalhes. Mas qualquer ajuda seria asquerosa !!!

    
por Tom Doobies 05.01.2013 / 03:27

2 respostas

2

Crie um novo usuário para esse 'alguém' e coloque seu script perl em seu diretório pessoal e, em seguida, faça uma entrada em seu .bash_profile para invocar o script perl .

FYI: O ~ / .bash_profile é executado durante cada shell de login (por exemplo: ssh, switch user etc)

Exemplo:

suku@ubuntu-vm:~$ cat hello.pl 
#!/usr/bin/perl
print "Hello World\n";

suku@ubuntu-vm:~$ cat .bash_profile 
perl ~/hello.pl

suku@ubuntu-vm:~$ su - suku
Password: 
Hello World

[EDITAR] useradd -m username criará um usuário com seu diretório pessoal como /home/username

Se você realmente quiser limitar o escopo deste usuário apenas para ler e executar seu script perl, você precisa definir o atributo imutável para o seu diretório home

Definir atributo imutável:

sudo chattr +i /home/username

Removendo o atributo imutável:

sudo chattr -i /home/username

Se você fizer isso, esse usuário não poderá tocar em nada novo em seu diretório pessoal. Mas ele pode executar / ler seu script perl

    
por 05.01.2013 / 03:32
1

A melhor maneira de fazer isso é usar o arquivo authorized_keys. Você pode restringir um usuário para executar apenas um comando com uma chave. Portanto, se um usuário fizer login com uma chave especificada, ele poderá executar apenas um comando.

A configuração é usar a diretiva command="", especificada no arquivo authorized_keys. A sintaxe para isso se parece com:

command ="command",  KEY

Isso informa ao SSH para executar o comando e, em seguida, sair. Isso efetivamente limita sua capacidade de executar comandos no servidor remoto.

Para executar vários comandos com segurança, você tem algumas opções. Primeiro, considere chamar um script em vez de um comando. Por exemplo, execute top, df -k e hostname a partir de um script de shell denominado myscript.sh e defina command="/path/to/myscript.sh" . Em segundo lugar, se você precisar executar vários comandos em horários diferentes durante o dia para o mesmo host, poderá criar outra chave para seu usuário.

Para o recurso de carregamento automático, você pode simplesmente colocá-lo em .bash_profile, presente em seu diretório pessoal, conforme descrito por Suku.

    
por 05.01.2013 / 11:03