Instalação sudo
- 1200
- 300
- Maurice Champlin
E se você quiser que um usuário execute um comando como outro usuário do sistema sem trocar senhas. Por exemplo, você pode querer que um usuário John execute um script de comando ou shell find ou personalizado como usuário Greg ou mesmo como uma raiz do usuário (superusuário) sem troca de senha. Nesse caso, um utilitário sudo com seu arquivo de configuração /etc /sudoers será seu amigo. Esse utilitário é amplamente utilizado, mas ao mesmo tempo muito pouco compreendido por usuários do Linux de todos os níveis.
Este pequeno artigo descreve algum arquivo básico de uso e formato de sudoers de sudoers.
Instalação sudo
Primeiro, precisamos garantir que sudo e /etc /sudoers o arquivo de configuração do sudo esteja disponível. Para fazer isso:
$ que sudo
ou
$ sudo -v
O primeiro comando deve revelar um local de um executável binário sudo e o segundo programa produzirá um número de versão do sudo comandar. O Arquivo de Configuração do Sudo sudoers está na maioria dos casos localizados em /etc /sudoers. Você pode usar o comando ls para localizar este arquivo.
$ ls -l /etc /sudoers -r-r ----- 1 raiz raiz 481 2010-04-08 21:43 /etc /sudoers
Observe as permissões padrão e "deve ser" do arquivo A /etc /sudoers. Somente o usuário raiz e os usuários que pertencem a um grupo raiz podem ler este arquivo.
$ cat /etc /sudoers gato: /etc /sudoers: permissão negado
Se você teve alguns problemas ao executar comandos acima, as chances são de que o sudo não esteja instalado em seu sistema. Isso é muito improvável se você estiver executando o Ubuntu, Fedora ou OpenSuse, pois um utilitário sudo está instalado no seu sistema por padrão. Caso você esteja executando o Debian, execute um comando Linux a seguir para instalar o Sudo Utility:
OBSERVAÇÃO: É muito improvável que o utilitário sudo não esteja instalado no seu sistema, pois a maioria das distribuições decentes do Linux tem o utilitário sudo instalado por padrão.
# APT-GET Instale sudo
Para distribuições de Yum (RPM), use este comando para instalar sudo:
# yum install sudo
Executando o script bash usando sudo
Vamos criar um script bash simples que nos proporcionará um ambiente de teste básico para um comando sudo. Os seguintes comandos Linux criarão o script Bash chamado sudo_test.SH dentro do diretório/usr/local/bin e torne -o executável:
$ su - senha: # cd/usr/local/bin/ # echo "ps aux | grep $$"> sudo_test.sh # echo "toque /tmp /sudo_file.tmp ">> sudo_test.sh # chmod +x sudo_test.sh
Este script não fará nada, exceto ele imprimirá o ID do processo do sudo_test.sh script sh junto com seu ID do proprietário relevante como uma saída stdout e, ao mesmo tempo, criará um arquivo chamado sudo_file.TMP dentro / tmp / diretório. Agora executamos esse script como usuário root e verificamos um proprietário deste processo.
./sudo_test.SH [1] 3513/usr/local/bin# ps aux | Grep 3513 Raiz 3513 0.0 0.1 4260 908 pts/4 s 16:32 0:00 raiz de bash 3516 0.0 0.0 1700 268 pts/4 r+ 16:32 0:00 Grep 3513
Como você pode ver, o ID do processo 3513 é de propriedade de uma raiz do usuário. Além disso, ao executar o comando ls, podemos observar que o arquivo /tmp /sudo_file.O TMP é de propriedade de um usuário raiz.
# ls -l /tmp /sudo_file.tmp -rw-r- r-- 1 raiz 0 08-08-29 17:31 /tmp /sudo_file.TMP
Vamos remover /tmp /sudo_file.Arquivo TMP e tente executar este mesmo script com outro usuário chamado "LILO". Observe as permissões do script após a execução do comando ls -l.
$ whoami lilo $ ls -l/usr/local/bin/sudo_test.sh -rwxr-xr-x 1 raiz 44 2010-08-29 17:31/usr/local/bin/sudo_test.sh $/usr/local/bin/sudo_test.raiz sh 3502 0.0 0.3 4260 1744 pts/4 s+ 16:31 0:00 BASH LILO 3773 0.0 0.1 3116 720 pts/5 r+ 17:36 0:00 grep 3502 $ ls -l/tmp/sudo_file.tmp -rw-r-r-- 1 lilo lilo 0 2010-08-29 17:36 /tmp /sudo_file.TMP
Como você pode ver, o script é executado pelo usuário de Lilo e o proprietário desse processo também é um usuário lilo. O arquivo criado no A /TMP /Diretório também é de propriedade do LILO User. Antes de continuar, remova /tmp /sudo_file.arquivo tmp.
Dê permissões de sudo ao usuário
Nossa próxima tarefa agora é fazer do LILO o usuário ser capaz de executar/usr/local/bin/sudo_test.script SH com privilégios de raiz e sem doar credenciais raiz. Para fazer isso, precisamos editar um /etc /sudoers o arquivo de configuração do sudo. Como a raiz tem acesso apenas a um arquivo de configuração do sudo /etc /sudoers e não queremos alterar isso, usaremos o comando visudo executado como uma raiz para adicionar uma linha a seguir a este arquivo:
lilo all = (root)/usr/local/bin/sudo_test.sh
- LILO: O usuário que terá permissão para executar o/usr/local/bin/sudo_test.script sh
- Todos: corresponde a qualquer coisa e, neste contexto, ele se aplica a um nome de host
- (raiz): Este comando será executado com privilégios de raiz
- /usr/local/bin/sudo_test.SH: o comando real
Como resultado, quando agora tentamos executar o/usr/local/bin/sudo_test.SH Script como usuário LILO usando o comando sudo e insira a senha de Lilo:
$ rm /tmp /sudo_file.tmp $ sudo/usr/local/bin/sudo_test.SH [SUDO] Senha para Lilo: Raiz 3502 0.0 0.3 4260 1744 pts/4 s 16:31 0:00 raiz de bash 3793 0.0 0.1 3116 720 pts/5 s+ 17:46 0:00 grep 3502 $ ls -l/tmp/sudo_file.tmp -rw-r- r-- 1 raiz 0 08-08-29 17:46 /tmp /sudo_file.TMP
O ID do processo 3502 é de propriedade de uma raiz e o proprietário do /tmp /sudo_file.TMP é usuário root. Além disso, se você, por exemplo, deseja que um usuário lilo execute um script/usr/local/bin/sudo_test.sh como usuário j "John" simplesmente altere /etc /sudoers arquivo de configuração e substitua (root) por (john) usando o comando visudo.
sudo sem senha
Quando um comando sudo é executado, um usuário é solicitado uma senha. Este Bahaviouv padrão de um comando sudo pode ser alterado pela edição /etc /SUDOers Config File. Se não quisermos receber uma senha, alteramos o arquivo A /etc /sudoers, alterando a linha:
lilo all = (root)/usr/local/bin/sudo_test.sh
com
lilo all = (root) nopoasswd:/usr/local/bin/sudo_test.sh
Tempo limite da senha do sudo
O número de minutos antes de Sudo solicitar que um usuário insira uma senha novamente é por padrão 15. Esse comportamento pode ser alterado especificando o timestamp_timeout da Sudo Diretiva dentro do arquivo /etc /sudoers. Para aumentar o tempo limite da senha do sudo para 60 minutos, adicionamos Timestamp_Timeout Sudo Diretiva ao arquivo /etc /sudoers alterando uma linha:
Padrões Env_reset
para
Padrões Env_reset, Timestamp_timeout = 60
Saiba mais sobre sudo
Observe que há muito mais a ser aprendido sobre o comando sudo e suas capacidades. Boa maneira de descobrir mais sobre o comando sudo é começar com:
Homem sudo
ou para acessar a página do homem para o arquivo de configuração de sudoers
Homem sudoers
Tutoriais do Linux relacionados:
- Como remover Bloatware do seu Samsung Android Mobile…
- Manipulando a entrada do usuário em scripts bash
- Como quebrar a senha do ZIP no Kali Linux
- Como criar a conta Modificar e Excluir usuários no Linux
- Coisas para instalar no Ubuntu 20.04
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Uma introdução à automação, ferramentas e técnicas do Linux
- Linux - Redefinir expiração, idade e história
- Manipulação de big data para diversão e lucro Parte 1
- Mastering Bash Script Loops
- « Instale e jogue Overwatch com Lutris no Ubuntu 18.04
- Como instalar o ImageMagick 7 no Ubuntu 18.04 Linux »