Linux (CentOS 6.6) Criar acesso restrito a FTP / SSH ao usuário e permitir somente determinados conjuntos de comandos

0

Eu tenho um servidor VPS que executa um script durante todo o dia que é usado para validar clientes usando nosso software. O problema é que, às vezes, esse script falha e eu preciso reiniciá-lo. Eu conheço alguém que eu quero deixar reiniciar o script quando eu não estou em torno do problema com isso é que eu não quero permitir que ele acesse o VPS via FTP / SSH, e eu quero restringir seu usuário a um determinado conjunto de comandos.

por exemplo, apenas estes comandos (apenas para listar alguns)

service mysqld start
screen -ls
    
por dataDev331 14.07.2017 / 08:38

1 resposta

0

Você pode permitir que ele se conecte ao seu servidor via SSH, como um usuário comum e, em seguida, conceda a ele direitos de sudo estritamente para a ação que deseja que ele execute.

Você deve adicionar um novo grupo para isso (vamos nomear serviços por enquanto):

sudo addgroup services

Adicione o usuário do seu grupo a esse grupo:

sudo adduser your_guy_user services

Edite /etc/sudoers.d/services e adicione uma entrada para o grupo de serviços:

%services ALL=(ALL) /usr/sbin/service
%services ALL=(ALL) /usr/bin/service mysqld *
%services ALL=(ALL) /path-to/screen

Salve o arquivo, peça ao seu cara para fazer o login via ssh e tente reiniciar o serviço mysql.

Se você quiser restringir os comandos que ele pode usar, você deverá alterar as permissões para esses comandos:

/ bin / ping - por padrão, tem 755 permissões (o proprietário tem rwx , o grupo tem rx , outro tem rx ) para que o comando possa ser executado por todos. Se você não quiser que o comando ping esteja disponível para o seu cara, faça um chmod 750 /bin/ping . Desta forma, apenas o usuário root e a raiz do grupo terão direitos de execução para esse comando. Este é apenas um exemplo, você pode extrapolar daqui.

Assim, no final, o usuário precisa fazer o login no seu servidor via SSH para reiniciar esse serviço. Claro, isso pode ser conseguido de outras maneiras diferentes, como ter um script python que atua como um servidor web para que o usuário se conecte lá e faça login com um nome de usuário e senha e emita o comando restart (o script pode estar em python, perl, php), mas isso requer codificação e realmente criar o script.

Então, eu iria com a primeira opção.

    
por 18.07.2017 / 12:27