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 [email protected]
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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts