Criação de shell script

1. Criação de shell script

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 02/06/2017 - 15:35h

Boa tarde a todos,

Venho novamente pedir ajuda aqui no fórum. Preciso saber quais usuários de linux em um parque de 1 mil servidores, tem direitos de root nos servidores.
Alguém tem alguma ideia ou orientação por onde eu começo..




  


2. Re: Criação de shell script

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/06/2017 - 16:09h

Comece pensando numa máquina só. Como você vê se um usuário tem direitos de root numa máquina?

Depois você replica essa solução para uma rotina que a executa em cada uma das mil máquinas (através de ssh, por exemplo).


3. Re: Criação de shell script

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 02/06/2017 - 16:18h

paulo1205 escreveu:

Comece pensando numa máquina só. Como você vê se um usuário tem direitos de root numa máquina?

Depois você replica essa solução para uma rotina que a executa em cada uma das mil máquinas (através de ssh, por exemplo).


Paulo boa tarde,

Obrigado por responde.

O problema é transformar em script, tenho uma grande dificuldade...

Pensando da forma que você comentou abaixo:

#!/bin/bash
ssh usuario@servidor
password: senha

vi /etc/sudoers

Aqui eu travo ! Como pegar os usuários ou grupos que estão configurados ?



4. Re: Criação de shell script

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/06/2017 - 16:22h

Certamente você não vai querer usar vi. Você não precisa de um editor de textos para examinar o conteúdo de um arquivo.

E você inverteu as coisas. Esqueça o ssh, por enquanto. Pense primeiro na máquina local.


5. Re: Criação de shell script

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 02/06/2017 - 16:30h

paulo1205 escreveu:

Certamente você não vai querer usar vi. Você não precisa de um editor de textos para examinar o conteúdo de um arquivo.

E você inverteu as coisas. Esqueça o ssh, por enquanto. Pense primeiro na máquina local.



Eu fiz da seguinte forma:
Acessei um dos servidores;
dei o comando less /etc/sudoers | grep ALL

veio o resultado exemplo abaixo:

%admnds ALL = NOPASSWD: /usr/bin/less /var/adm/messages
%admnds ALL = NOPASSWD: /usr/bin/less /var/adm/syslog/syslog.log
%admnds ALL = NOPASSWD: /bin/rm /usr/local/ASAM/data/asamplat.conf
%ccosol ALL = NOPASSWD: /bin/su - seem6001
%ccosol ALL = NOPASSWD: /bin/su - BrTManag
%ccosol ALL = NOPASSWD: /bin/su - ctmag620
%ccosol ALL = NOPASSWD: /bin/su - ctmag623
%ccosol ALL = NOPASSWD: /bin/su - ctmapri1
%ccosol ALL = NOPASSWD: /bin/su - ctmapri2
%ccosol ALL = NOPASSWD: /bin/su - ctmagent
%ccosol ALL = NOPASSWD: /bin/su - ctmbkp
#%admsto ALL=(ALL) ALL
slnx6000 ALL=(ALL) NOPASSWD: ALL
#%admnbu ALL=(ALL) ALL
%cmdbaddm ALL = NOPASSWD: /usr/sbin/dmidecode
%ccosol ALL = NOPASSWD: /sbin/service cron *
%ccosol ALL = NOPASSWD: /sbin/service syslog *
%admnbu ALL = NOPASSWD: /bin/su -
%admsto ALL = NOPASSWD: /bin/su -
%ccosol ALL = NOPASSWD: /bin/su - sbaom601
%ccoprdl ALL = NOPASSWD: /bin/su - sbaom601
%admso ALL = (ALL) NOPASSWD : ALL

verificando o /etc/group, eu sei que os usuários do grupo admso são os administradores.
Agora vem o meu terror !!!! Como fazer isso para .sh e quando essa fator do grupo mudar, for um nome de usuário, como tratar ?





6. Re: Criação de shell script

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/06/2017 - 17:00h

Geralmente é um erro fazer uma pipeline com less à esquerda de qualquer outro comando. Em vez de “less arquivo | grep conteúdo[i]”, você provavelmente quis dizer apenas “[i]grep conteúdo arquivo”.

Quanto ao conteúdo, acho que procurar só por “ALL” não é o bastante. Aqueles que você você pegou são parte da lista de hosts (i.e. o comando pode ser executado em qualquer máquina). Ele seria insuficiente para pegar uma linha como

fulano maquina = /bin/bash 


permite que o usuário fulano execute na máquina maquina o comando /bin/bash como root, mas não aparecem nem “root” nem “ALL” na linha. Por outro lado, a linha

fulano servidor = (beltrano) /bin/ls 


possivelmente não deveria ser considerada, porque o fulano não terá privilégios de root no servidor, mas apenas de beltrano.


Aliás, a sintaxe do /etc/sudoers permite que uma linha lógica seja dividida em múltiplas linhas reais no arquivo. Possivelmente você terá de levar isso em consideração, juntamente com a possibilidade de criação de aliases, uso de grupos, netgroups, grupos do AD...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts