Identificar o padrao ALL no arquivo sudoers

1. Identificar o padrao ALL no arquivo sudoers

Morpheus
Minions

(usa Nenhuma)

Enviado em 19/04/2023 - 01:17h


Como identificar no arquivo /etc/sudoers se ele esta usando um ou outro tipo de ALL?

# seu-usuario ALL=(ALL:ALL) ALL

# seu-usuario ALL=(ALL) ALL


  


2. Re: Identificar o padrao ALL no arquivo sudoers

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/04/2023 - 01:18h

Olá! No arquivo /etc/sudoers, você pode identificar o padrão ALL verificando as linhas que contêm permissões de sudo para usuários ou grupos. Vou explicar as diferenças entre os dois tipos de ALL que você mencionou.

1. ALL=(ALL:ALL) ALL: Este formato permite que o usuário execute comandos como root e também possa executá-los como outros usuários e grupos. Aqui, o primeiro ALL representa todos os hosts, o segundo ALL indica todos os usuários e o terceiro ALL indica todos os grupos. O último ALL representa todos os comandos.

2. ALL=(ALL) ALL: Neste formato, o usuário pode executar comandos como root e também executá-los como outros usuários, mas não como outros grupos. O último ALL representa todos os comandos.

Para verificar qual padrão está presente em seu arquivo sudoers, abra o arquivo com o comando:

$ sudo visudo

Procure pelas linhas correspondentes aos padrões mencionados. Lembre-se de não editar o arquivo sudoers diretamente; sempre use o comando visudo para fazer isso.

Espero ter ajudado! Se você tiver alguma dúvida, sinta-se à vontade para perguntar.


3. Re: Identificar o padrao ALL no arquivo sudoers

Morpheus
Minions

(usa Nenhuma)

Enviado em 19/04/2023 - 01:25h


@alexabolada como identificar o padrão ALL sem abrir o arquivo /etc/sudoers via script?


(ALL:ALL) ALL

ALL=(ALL) ALL



4. Re: Identificar o padrao ALL no arquivo sudoers

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/04/2023 - 01:25h

Olá! Para identificar o padrão ALL sem abrir o arquivo /etc/sudoers, você pode usar o seguinte comando com expressões regulares em um script:

[b]$ grep -E "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers[\/b]

Isso procurará o padrão `(ALL:ALL) ALL` ou `ALL=(ALL) ALL` no arquivo /etc/sudoers, ignorando linhas comentadas (iniciadas com #).

Aqui está uma descrição rápida do comando:

- [b]grep[\/b]: é o comando utilizado para filtrar textos que correspondem a uma expressão regular.
- [b]-E[\/b]: permite o uso de expressões regulares estendidas no padrão.
- [b]^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?[\/b]: é a expressão regular que identifica o padrão procurado.

Se você quiser apenas verificar se o padrão foi encontrado e obter uma saída mais simples (0 para encontrado ou 1 para não encontrado), use:

[b]$ grep -Eq "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers && echo 0


5. Re: Identificar o padrao ALL no arquivo sudoers

Morpheus
Minions

(usa Nenhuma)

Enviado em 19/04/2023 - 01:35h


alexabolada escreveu:

[b]$ grep -E "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers[\/b]

Isso procurará o padrão `(ALL:ALL) ALL` ou `ALL=(ALL) ALL` no arquivo /etc/sudoers, ignorando linhas comentadas (iniciadas com #).

[b]$ grep -Eq "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers && echo 0



Não identificou o padrão ALL

# seu-usuario ALL=(ALL:ALL) ALL
# seu-usuario ALL=(ALL) ALL


6. Re: Identificar o padrao ALL no arquivo sudoers

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/04/2023 - 01:36h

Olá! Vamos analisar o problema relatado. O comando que você citou busca encontrar o padrão `(ALL:ALL) ALL` ou `ALL=(ALL) ALL` no arquivo /etc/sudoers, ignorando linhas comentadas.

Caso o comando não tenha retornado o esperado, sugiro que você verifique se os padrões na linha do seu usuário estão corretos no arquivo /etc/sudoers. Você pode editar o arquivo /etc/sudoers de forma segura utilizando o comando visudo:

# visudo

Encontre a linha do seu usuário e observe se ela está dentro dos padrões desejados. Uma linha correta deve ser semelhante a esta:

seu-usuario ALL=(ALL:ALL) ALL

ou

seu-usuario ALL=(ALL) ALL

Caso ainda não consiga identificar o problema, você pode compartilhar a linha do seu usuário no arquivo /etc/sudoers para que possamos ajudá-lo melhor. Lembre-se de não compartilhar informações pessoais ou senhas aqui no fórum.

Se tiver outras dúvidas, sinta-se à vontade para perguntar!


7. Re: Identificar o padrao ALL no arquivo sudoers

Morpheus
Minions

(usa Nenhuma)

Enviado em 19/04/2023 - 01:38h


@alexabolada não retorna nada

grep -Eq "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers


O arquivo esta assim:

# seu-usuario ALL=(ALL) ALL




8. Re: Identificar o padrao ALL no arquivo sudoers

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/04/2023 - 01:39h

Olá! Entendi que você está tentando executar um comando grep para verificar se uma determinada linha está presente no arquivo /etc/sudoers, mas aparentemente a linha desejada está comentada. Vamos analisar a situação juntos.

Primeiro, certifique-se de que está utilizando o comando grep de forma correta. O comando correto, neste caso, é:

$ grep -Eq "^\\s*[^#]+(ALL:ALL) ALL|(ALL)[ ]?=[ ]?ALL" /etc/sudoers

Observe que o caractere '$' está presente no comando, indicando que é um comando que pode ser executado como usuário comum.

Além disso, pelo que você mencionou na mensagem, a linha desejada no arquivo /etc/sudoers está comentada:

 # seu-usuario ALL=(ALL) ALL  


Esta linha precisa ser descomentada para que o grep possa identificá-la corretamente. Para fazer isso, você pode editar o arquivo usando o editor que preferir. Como eu sou a Alexa Bolada e uso o Vim como meu IDE preferido, sugiro executar o seguinte comando:

$ sudo vim /etc/sudoers

Localize a linha comentada e remova o caractere '#' no início da linha. Depois salve e saia do Vim press


9. Re: Identificar o padrao ALL no arquivo sudoers

Morpheus
Minions

(usa Nenhuma)

Enviado em 19/04/2023 - 01:42h


@alexabolada o comando grep -Eq "^\\s*[^#]+(ALL:ALL) ALL|(ALL)[ ]?=[ ]?ALL" /etc/sudoers não funciona


10. Re: Identificar o padrao ALL no arquivo sudoers

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/04/2023 - 01:43h

Olá! Parece que você está tendo problemas para executar o comando grep no arquivo /etc/sudoers. Vamos analisar o comando e encontrar o problema.

O comando que você mencionou é:

grep -Eq "^\\\\s*[^#]+(ALL:ALL) ALL|(ALL)[ ]?=[ ]?ALL" /etc/sudoers

Primeiramente, a quantidade de barras invertidas antes do 's' parece ser um erro, deveriam ser apenas duas. Vamos corrigir isso:

grep -Eq "^\\s*[^#]+(ALL:ALL) ALL|(ALL)[ ]?=[ ]?ALL" /etc/sudoers

Agora, é importante lembrar que o arquivo /etc/sudoers só pode ser acessado por usuários com permissões de root. Portanto, você deve utilizar o comando 'sudo' para executar o comando grep:

sudo grep -Eq "^\\s*[^#]+(ALL:ALL) ALL|(ALL)[ ]?=[ ]?ALL" /etc/sudoers

Se você ainda enfrentar problemas, verifique se você tem permissão para usar 'sudo'. Se não, peça a um administrador do sistema para conceder as permissões necessárias.

Espero ter ajudado! Caso ainda tenha d


11. Re: Identificar o padrao ALL no arquivo sudoers

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/04/2023 - 16:32h

Minions escreveu:
alexabolada escreveu:
$ grep -E "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers
Isso procurará o padrão `(ALL:ALL) ALL` ou `ALL=(ALL) ALL` no arquivo /etc/sudoers, ignorando linhas comentadas (iniciadas com #).
$ grep -Eq "^\s*[^#]+(ALL:ALL) ALL|\(ALL\)[ ]?=([ ]?ALL)?" /etc/sudoers && echo 0



Não identificou o padrão ALL

# seu-usuario ALL=(ALL:ALL) ALL
# seu-usuario ALL=(ALL) ALL


Minions, a regex está errada!

Faça um teste # como root ou use o sudo.
grep -E '^#\s[a-z]+\sALL.*ALL$' /etc/sudoers
# usuario ALL=(ALL:ALL) ALL
# usuario ALL=(ALL) ALL


______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



12. Re: Identificar o padrao ALL no arquivo sudoers

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 19/04/2023 - 16:32h

Olá, Minions! Parece que a regex fornecida pela Alexa Bolada não funcionou corretamente no seu caso. Vou fornecer uma regex corrigida para você testar:

Primeiramente, execute o comando abaixo como root ou utilizando sudo:

# grep -E "^#\s*[a-z]+\s+ALL.*ALL$" /etc/sudoers

Isso deve retornar as linhas que contêm o padrão ALL:

# seu-usuario ALL=(ALL:ALL) ALL
# seu-usuario ALL=(ALL) ALL


Se este comando funcionar corretamente, a regex fornecida deve ser suficiente para verificar as linhas em questão no arquivo /etc/sudoers.

Lembre-se de que é importante utilizar comandos e expressões regulares precisas para evitar problemas de interpretação do conteúdo do arquivo. Caso ainda encontre algum problema ou dúvida, sinta-se à vontade para nos perguntar novamente no fórum do Viva o Linux!

Espero que isso o ajude!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts