[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: USUÁRIO ESPECÍFICO COM UM ÚNICO PODER



Em Sábado 23 Outubro 2010, às 11:49:36, Carlos Welington Almeida escreveu:
> Pessoal, bom dia!
> 
> Pessoal, existe alguma forma (sem ser pelo sudo) de se criar um usuário que
> possa ter um shell e a única permissão seja: ele logar no server, e pingar
> pra clientes e deslogar? Ou seja, um usuário comum que só tenha o
> privilégio de ter um shell para pingar para clientes e nenhum outro acesso
> a
> diretórios, outros executáveis, que ele não saia da pasta que está logado.
> Uma outra pergunta seria: se podemos criar um grupo, e que quem pertença a
> esse grupo só tenha permissão para logar no sever e pingar e mais nada.
>   
> Abraço a todos
> 
> Carlos ALmeida

Olá!
Não é bem a resposta para a sua pergunta, mas faz quase a mesma coisa: 

Você pode fazer uma jaula, colocar o usuário dentro dela e apagar de lá  os 
comandos/programas que você não queira que ele tenha. 

Para brincar, você pode iniciar com este script que faz automagicamente uma 
jaula para você com um usuário que você especificar. (É uma jaula meio fajuta,  
mas funciona bem)

http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/

ele coloca alguns programas dentro da jaula, mas sinta-se a vontade para 
remove-los (menos o bash e o su)

(Existem outras maneiras de se fazer uma jaula, libpam-chroot e rbash por ex )

Uma outra idéia é colocar um script no lugar do shell do usuário no 
/etc/passwd, e  que so permita a entrada de hosts para realizar um ping. Creio 
que seja o mais proximo ao que você procura. 

Por exemplo, este scriptzinho sem-vergonha: 

/usr/local/bin/login_ping.sh 
=====oOo=====
#!/bin/rbash 
clear
ipa=1
echo -ne "
          ****************************************
          *        Maquina da empresa X          *
          *            Uso controlado            *
          *     Somente ips ou FQDN, por favor.  *
          ****************************************
"
echo "                Bem vindo, $USER"
while [ -n  "$ipa" ] ; 
do
echo -en "\nentre o ip/host: "
read ipa
if [ ${#ipa} -gt 50 ] || [ -z "$ipa"  ]; then exit 0; fi
ipa=${ipa//,/\.}
ipa=${ipa// /}
ipa=${ipa//[^a-zA-Z0-9_.-]/}
if [ -z "$ipa"  ] ; then exit 0; fi
ping -c 4 $ipa
sleep 2s
done 
=====oOo=====


grep teste /etc/passwd
teste:x:1019:1019:,,,:/dev/null:/usr/local/bin/login_ping.sh

agora, testando: 
++++++++++++++++++++++++
ssh teste@localhost
Password: 

          ****************************************
          *        Maquina da empresa X          *
          *            Uso controlado            *
          *     Somente ips ou FQDN, por favor.  *
          ****************************************
                Bem vindo, teste

entre o ip/host : 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.102 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.086 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.080 ms
64 bytes from 127.0.0.1: icmp_req=4 ttl=64 time=0.080 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.080/0.087/0.102/0.009 ms

entre o ip/host : www.unicamp.br
PING lvs0.unicamp.br (143.106.10.30) 56(84) bytes of data.
64 bytes from lvs0.unicamp.br (143.106.10.30): icmp_req=1 ttl=57 time=13.9 ms
64 bytes from lvs0.unicamp.br (143.106.10.30): icmp_req=2 ttl=57 time=14.3 ms
64 bytes from lvs0.unicamp.br (143.106.10.30): icmp_req=3 ttl=57 time=16.8 ms
64 bytes from lvs0.unicamp.br (143.106.10.30): icmp_req=4 ttl=57 time=13.5 ms

--- lvs0.unicamp.br ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 13.519/14.695/16.895/1.312 ms

entre o ip/host :

Connection to localhost closed.

++++++++++++++++++++++++

[ ]s, e divirta-se.
Henry



Reply to: