Linux (CentOS 6.6) Criar acesso de FTP / SSH restrito 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
dataDev331
fonte

Respostas:

0

Você pode permitir que ele se conecte ao seu servidor via SSH, como um usuário regular e, em seguida, dê a ele direitos de sudo estritamente para a ação que você quer 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 cara 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ê deve 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 quer que o comando ping esteja disponível para o seu cara, então 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.

Então, no final, o usuário tem que ser capaz de acessar o seu servidor via SSH para reiniciar o 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 e faça login com um nome de usuário e uma 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.

Bogdan Stoica
fonte