Como verificar se o usuario tem pode de SUDO via script?

1. Como verificar se o usuario tem pode de SUDO via script?

Morpheus
Minions

(usa Nenhuma)

Enviado em 18/04/2023 - 15:38h



Tenho que verificar se o usuário tem algum privilegio administrativo no sistema.


  


2. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 15:39h

Olá! É possível verificar se um usuário possui privilégios administrativos (sudo) no Linux através de um script. Vamos utilizar um exemplo em Bash para facilitar:

```bash
#!/bin/bash

usuario="nome_do_usuario"

if groups $usuario | grep -q "\<sudo\>"; then
echo "O usuário $usuario tem privilégios administrativos."
else
echo "O usuário $usuario não tem privilégios administrativos."
fi
```

Salve esse script em um arquivo, por exemplo "verificar_sudo.sh" e siga as etapas abaixo para executar:

1. Abra o terminal.
2. Navegue até o diretório onde o arquivo "verificar_sudo.sh" está localizado.
3. Dê permissão de execução para o arquivo com o comando:

$ chmod +x verificar_sudo.sh

4. Execute o script informando o nome do usuário que você quer verificar:

$ ./verificar_sudo.sh nome_do_usuario

Lembre-se de substituir "nome_do_usuario" pelo nome real do usuário que deseja verificar se possui privilégios administrativos no sistema.

Espero que isso ajude! Se tiver outras dúvidas, sinta-se à vontade para perguntar. ?


3. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 15:45h

Olá! Se o sistema não possui o grupo sudo, mas o usuário tem privilégios administrativos, provavelmente o usuário faz parte do grupo "wheel" ou de algum outro grupo com acesso a esses privilégios. Para verificar isso, você pode adaptar o script fornecido anteriormente, da seguinte forma:


#!/bin/bash

usuario="nome_do_usuario"

if groups $usuario | grep -q "\<wheel\>"; then
echo "O usuário $usuario tem privilégios administrativos através do grupo wheel."
else
echo "O usuário $usuario não tem privilégios administrativos."
fi


Substitua "nome_do_usuario" pelo nome do usuário que você deseja verificar. Assim, esse script irá checar se o usuário faz parte do grupo "wheel" em vez do grupo "sudo". Caso o usuário faça parte de outro grupo com privilégios administrativos, você pode substituir "wheel" pelo nome desse grupo.

Espero ter ajudado! Se tiver mais alguma dúvida, estou à disposição.


4. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 15:48h

Olá! Vamos verificar se o usuário possui privilégios administrativos.

Você pode verificar os privilégios administrativos de um usuário dando uma olhada no arquivo /etc/sudoers. Para fazer isso, você pode utilizar o comando visudo, que, por padrão, abre o arquivo /etc/sudoers no editor de texto vim. Lembrando que é necessário ter permissões de root para visualizar e editar esse arquivo.

Para abrir o arquivo /etc/sudoers, execute o seguinte comando:

# visudo

Dentro do arquivo, procure por uma linha que contenha o nome do usuário seguido de "=(ALL:ALL) ALL". Se você encontrar essa linha, significa que o usuário possui privilégios administrativos.

Por exemplo, se o nome do seu usuário é "alex", a linha relacionada aos privilégios seria:

alex ALL=(ALL:ALL) ALL

Para salvar e fechar o arquivo no vim, pressione Esc, digite ":wq" (sem aspas) e pressione Enter.

Se você preferir verificar os privilégios através do terminal, sem abrir o arquivo /etc/sudoers, você pode utilizar o seguinte comando:

[b]# grep '^usu


5. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 15:55h

Olá! Vou te ajudar a criar um script para verificar se o usuário está no arquivo `/etc/sudoers` com poder de sudo. Siga os passos abaixo:

1. Crie um novo arquivo chamado `verificar_sudoers.sh`:

$ touch verificar_sudoers.sh

2. Abra o arquivo no Vim (ou seu editor de texto preferido):

$ vim verificar_sudoers.sh

3. Insira o seguinte conteúdo no arquivo:

#!/bin/bash

# Obtém o nome de usuário como argumento
usuario="$1"

# Verifica se o usuário foi fornecido
if [ -z "$usuario" ]; then
echo "Por favor, forneça o nome de usuário como argumento."
exit 1
fi

# Busca o usuário no arquivo /etc/sudoers
resultado=$(grep -P "^\s*${usuario}\s*(ALL)\s*(ALL)\s*\=(ALL)\s*[:ascii:]*$" /etc/sudoers)

# Verifica se o usuário possui permissões sudo
if [ ! -z "$resultado" ]; then
echo "O usuário $usuario possui permissões de sudo."
else
echo "O usuário $usuario não possui permissões de sudo."
fi


4. Salve o arquivo e saia do Vim (ou seu editor de texto)


6. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 15:58h

Olá! Peço desculpas pela confusão causada pelo exemplo de script. Parece que o problema está relacionado às expressões regulares POSIX named classes utilizadas com o grep, que podem não funcionar corretamente em todas as versões do grep. Vamos simplificar um pouco a expressão regular para evitar esse problema.

Siga as mesmas instruções acima para criar o arquivo `verificar_sudoers.sh`, mas substitua o conteúdo do arquivo por este:

#!/bin/bash

# Obtém o nome de usuário como argumento
usuario="$1"

# Verifica se o usuário foi fornecido
if [ -z "$usuario" ]; then
echo "Por favor, forneça o nome de usuário como argumento."
exit 1
fi

# Busca o usuário no arquivo /etc/sudoers
resultado=$(grep "^$usuario\ " /etc/sudoers)

# Verifica se o usuário possui permissões sudo
if [ ! -z "$resultado" ]; then
echo "O usuário $usuario possui permissões de sudo."
else
echo "O usuário $usuario não possui permissões de sudo."
fi


Essa expressão regular simplificada busca o nome do usuário no início de uma linha seguido por um espaço no arquivo /etc/sudoers. Essa verificação pode não ser exaustiva


7. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 16:27h

Olá! Parece que você está enfrentando dois problemas com o comando grep no arquivo /etc/sudoers. Vamos abordá-los separadamente:

1. O aviso "stray \\ before white space" está relacionado à forma como a expressão regular foi escrita no grep. Para corrigir isso, remova a barra dupla antes do espaço em branco:

resultado=$(grep "^$usuario " /etc/sudoers)

2. A mensagem "Permissão negada" indica que você não tem permissões de root para ler o arquivo /etc/sudoers. Para resolver isso, execute o comando com sudo:

resultado=$(sudo grep "^$usuario " /etc/sudoers)

Lembre-se de que é necessário ter privilégios de root para executar comandos sudo. Se você ainda enfrentar problemas, por favor, deixe-me saber e ficarei feliz em ajudar!


8. Re: Como verificar se o usuario tem pode de SUDO via script?

aguamole
aguamole

(usa KUbuntu)

Enviado em 18/04/2023 - 17:31h

@alexabolada escreve verificando se o usuário tem ID = 0 que é o ID do host.


9. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 17:32h

Olá! Entendi que você deseja verificar se o usuário tem ID = 0, que é o ID do host. Vamos fazer isso utilizando um comando no terminal.

Primeiramente, abra o terminal no seu sistema Linux.

Digite o seguinte comando para verificar o ID do usuário:

$ id -u

Se o resultado for 0, significa que o usuário atual é o root (host). Caso contrário, o usuário não possui o ID do host.

Lembre-se de que você deve executar este comando como um usuário comum, por isso usamos o caractere $ na frente do comando.

Espero que isso ajude! Se você tiver mais dúvidas ou precisar de ajuda adicional, sinta-se à vontade para perguntar no fórum Viva o Linux.


10. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 17:35h

Olá! Parece que você está tendo problemas com uma expressão regular (regex) no comando grep. Vamos analisar a situação.

O erro "POSIX named classes are supported only within a class" está relacionado ao uso incorreto dos colchetes na expressão regular do comando grep.

Aqui está o comando original:


resultado=$(grep -P "^\\s*${usuario}\\s*(ALL)\\s*(ALL)\\s*\\=(ALL)\\s*[:ascii:]*$" \/etc\/sudoers)


Tente ajustar a expressão regular trocando
[:ascii:]*$ 
por
[[:ascii:]]*$ 
. A sintaxe correta para uma classe POSIX é colocar os colchetes duplos.

Então, o comando ficaria assim:


resultado=$(grep -P "^\\s*${usuario}\\s*(ALL)\\s*(ALL)\\s*\\=(ALL)\\s*[[:ascii:]]*$" \/etc\/sudoers)


Espero que isso resolva o problema. Se você tiver mais dúvidas ou precisar de ajuda, por favor, sinta-se à vontade para perguntar. Estou aqui para ajudar!


11. Re: Como verificar se o usuario tem pode de SUDO via script?

aguamole
aguamole

(usa KUbuntu)

Enviado em 18/04/2023 - 17:38h

Essa alexa bolada parece ser muito inferior que o chatGPT.
O chatGPT foi muito melhor, segue:

#!/bin/bash

# Script para verificar se o usuário tem privilégios de root

# Verificar se o ID do usuário é igual ao ID do root (0)
if [ "$(id -u)" -eq 0 ]; then
echo "Usuário tem privilégios de root." # Verdadeiro: ID do usuário é igual ao ID do root
else
echo "Usuário NÃO tem privilégios de root." # Falso: ID do usuário não é igual ao ID do root
fi



12. Re: Como verificar se o usuario tem pode de SUDO via script?

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/04/2023 - 17:47h

{
"error": {
"message": "We could not parse the JSON body of your request. (HINT: This likely means you aren't using your HTTP library correctly. The OpenAI API expects a JSON payload, but what was sent was not valid JSON. If you have trouble figuring out how to fix this, please send an email to support@openai.com and include any relevant code you'd like help with.)",
"type": "invalid_request_error",
"param": null,
"code": null
}
}




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts