a sudo
O comando permite que você execute comandos no Linux como se você fosse outra pessoa, O que root
. sudo
também permite que você controle quem pode entrar root's
capacidades, com granularidade. Dê aos usuários acesso total ou permita que eles usem um pequeno subconjunto de comandos. Nós mostramos como.
Sudo e permissões de root
Todos nós já ouvimos (simplificação excessiva) que tudo no Linux é um arquivo. Na realidade, praticamente tudo no sistema operacional, de processos, registros, diretórios, tomadas e tubos, comunicar-se com o kernel por meio de um descritor de arquivo. Então, mesmo quando tudo não é um arquivo, a maioria dos objetos do sistema operacional são manipulados como se Eles eram. Sempre que possível, o design do Linux e de sistemas operacionais semelhantes ao Unix segue este princípio.
O conceito de “tudo é um arquivo” tem um grande alcance no Linux. É fácil ver então como as permissões de arquivo no Linux se tornaram um dos pilares dos privilégios e direitos do usuário.. Se você tiver um arquivo ou diretório (um tipo especial de arquivo), Você pode fazer o que quiser com isso, até mesmo edite, renomeá-lo, mova e exclua. Você também pode determinar as permissões no arquivo para que outros usuários ou grupos de usuários possam ler, modificar ou executar o arquivo. Todos são governados por essas permissões.
Tudo isso, ao mesmo tempo que o superusuário, são conhecidos como root
. a root
conta é uma conta com privilégios especiais. Não está sujeito às permissões de nenhum dos objetos do sistema operacional. O usuário root pode fazer qualquer coisa e, praticamente, em qualquer momento.
Desde já, qualquer um que tenha acesso a root's
a senha pode fazer o mesmo. Eles podem causar estragos de forma maliciosa ou acidental. Na realidade, a root
O usuário também pode causar estragos se cometer um erro. Ninguém é infalível. É uma coisa perigosa.
É por isso que agora é considerada uma prática recomendada não faça login como root
em absoluto. Faça login com uma conta de usuário frequente e use sudo
para eleve seus privilégios por um curto período de tempo Você precisa deles. Frequentemente, isso é apenas para emitir um único comando.
RELACIONADO: Que significa “tudo é um arquivo” en Linux?
A lista de sudoers
sudo
já estava instalado em computadores Ubuntu 18.04.3, Manjaro 18.1.0 e Fedora 31 utilizadas para investigar este post. Isso não é uma surpresa. sudo
existe desde o início de 1990 1980 e se tornou o meio padrão de operação de superusuário para quase todas as distribuições.
Quando você instala uma distribuição moderna, o usuário que você cria durante a instalação é adicionado a uma lista de usuários chamada sudoers. Estes são os usuários que podem usar o sudo
comando. Porque você tem sudo
poderes, você pode usá-los para adicionar outros usuários à lista de sudoers.
Desde já, não é aconselhável entregar o status total de superusuário à vontade ou para qualquer pessoa que tenha apenas uma necessidade parcial ou específica. A lista sudoer permite que você especifique quais comandos diferentes usuários podem usar sudo
com. Assim, não dá a eles as chaves do reino, mas eles ainda podem realizar o que precisam fazer.
Executar um comando como outro usuário
Originalmente, era chamado de "superusuário fazer", porque eu poderia fazer coisas como superusuário. Seu escopo agora foi expandido e você pode usar sudo
para executar um comando como se fosse qualquer usuário. Ele foi renomeado para refletir essa nova funcionalidade.. Agora é chamado “usuário substituto”.
Usar sudo
para executar um comando como outro usuário, precisamos usar o -u
opção (Nome do usuário). Aqui, vamos executar o quem sou comando como usuário mary
. Se você usar o sudo
comando sem o -u
opção, irá executar o comando como root
.
E de qualquer maneira, porque você está usando sudo
sua senha será solicitada.
sudo -u mary whoami
A solução de whoami
nos diz que a conta do usuário que executa o comando é mary
.
Você pode usar o sudo
comando para fazer login como outro usuário sem saber sua senha. Você será solicitado para sua própria senha. Precisamos usar o -i
(login) opção.
sudo -i -u mary
pwd
Quem sou eu
ls -hl
saída
Você está logado como mary
. Os arquivos “.bashrc”, “.bash_aliases” e “.perfil” para a conta de usuário mary eles são processados exatamente como se o proprietário da conta de usuário mary foi logado em.
- o comando solicita mudanças para refletir que esta é uma sessão para a conta do usuário
mary
. - a
pwd
repetir o comando que você está agora emmary's
diretório doméstico. whoami
nos diz que você está usando uma conta de usuáriomary
.- Os arquivos no diretório pertencem ao
mary
conta de usuario. - a
exit
o comando leva você de volta para sua sessão normal de conta de usuário.
Editando o arquivo sudoers
Para adicionar usuários à lista de pessoas que podem usar sudo
, você precisa editar o sudoers
procedimentos. É de vital importância que você só faça isso usando o visudo
comando. a visudo
O comando evita que várias pessoas tentem editar o arquivo sudoers ao mesmo tempo. O que mais realiza verificação e análise no conteúdo do arquivo à medida que você os salva.
Se suas edições falharem nos testes, o arquivo não foi salvo cegamente. Você tem opções. Você pode cancelar e abandonar as mudanças, volte e edite as mudanças novamente, ou forçar as edições incorretas a serem salvas. A última opção é uma ideia muito ruim. Não fique tentado a fazer isso. Você pode se encontrar em uma situação onde todo o mundo bloqueado acidentalmente para que não possa ser usado sudo
.
Mesmo se você iniciar o procedimento de edição com o visudo
comando, visudo
não um editor. Chame um de seus editores existentes para fazer edições no arquivo. No Manjaro e Ubuntu, a visudo
comando lançado o editor simples nano
. No Fedora, visudo
lançou o mais capazmas menos intuitivo–vim
.
RELACIONADO: Como sair do editor Vi ou Vim
Se você preferir usar nano
no Fedora, pode fazer isso facilmente. Primeiro, instalar nano
:
sudo dnf instalar nano
E posteriormente visudo
teve que ser invocado com este comando:
sudo EDITOR = nano visudo
Parece um bom candidato para um alias. a nano
O editor abre com o arquivo sudoers carregado nele.
Adicionar usuários ao grupo sudo
Usar visudo
para abrir o arquivo sudoers. Use este comando ou aquele descrito anteriormente para especificar o editor de sua escolha:
sudo visudo
Percorra o arquivo sudoers até ver a definição do %sudo
entrada.
O sinal de porcentagem indica que é uma definição de grupo e não uma definição de usuário. Em algumas distribuições, a %sudo
a linha tem um hash #
no começo da linha. Isso torna a linha um comentário. Se esse é o caso, remova o hash e salve o arquivo.
a %sudo
a linha é dividida assim:
- % sudo: O nome do grupo.
- TODOS =: Esta regra se aplica a todos os hosts nesta rede.
- (TUDO TUDO): membros deste grupo podem executar comandos como todos os usuários e todos os grupos.
- Todo mundo: membros deste grupo podem executar todos os comandos.
Para reformular um pouco, membros deste grupo podem executar qualquer comando, como qualquer usuário ou grupo, neste computador ou em qualquer outro host nesta rede. Então, uma maneira simples de conceder privilégios de root a alguém e a capacidade de usar sudo
, é adicioná-los a sudo
grupo.
Temos dois usuários, Tom e Mary, com contas de usuário. tom
e mary
respectivamente. Vamos adicionar uma conta de usuário tom
al sudo
grupo com ele usermod
comando. a -G
Opção (grupos) especifica o grupo ao qual vamos adicionar o tom
responsabilizar-se por. a -a
(Adicionar) opção adicionar este grupo para o grupo lista a conta do usuário tom
já em. Sem esta opção, a conta do usuário tom
seria colocado no novo grupo, mas removido de qualquer outro grupo.
sudo usermod -a -G sudo tom
Vamos ver em quais grupos Mary está:
grupos
Conta de usuário mary
está sozinho no mary
grupo.
Vamos verificar com o Tom:
grupos
a tom
conta de usuario, e por isso, Tom, está nos grupos tom
e sudo
.
Vamos tentar fazer com que Maria faça algo que requer sudo
privilégios.
sudo less / etc / shadow
Mary não pode olhar dentro do arquivo restrito “/ etc / sombra”. Ela recebe uma leve reprimenda por tentar usar sudo
sem permissão. Vamos ver como o Tom faz:
sudo less / etc / shadow
Assim que Tom inserir sua senha, o arquivo é mostrado / etc / sombra.
Basta adicioná-lo ao sudo
grupo, foi elevado à categoria de elite daqueles que podem usar sudo
. Absolutamente sem restrições.
Conceda aos usuários direitos sudo restritos
Tom se ha dado por completo sudo
Direitos. Ele pode fazer qualquer coisa que root
Ou qualquer outra pessoa no sudo
grupo - pode fazer. Isso pode lhe dar mais poder do que você gostaria de dar.. Às vezes, há um requisito de que um usuário execute uma função que requer root
privilégios, mas não há nenhum caso justificável para que eles tenham sudo
Acesso. Você pode alcançar esse equilíbrio adicionando-os ao arquivo sudoers e listando os comandos que eles podem usar.
Vamos conhecer o Harry, dono da conta do usuário. harry
. Ele não está nisso sudo
grupo, e ele não tem sudo
privilégios.
grupos
É útil que Harry possa instalar software, mas não queremos que tenha sudo
Direitos. Está bem, não há problema. vamos ligar visudo
:
sudo visudo
Role para baixo no arquivo até passar as definições de grupo. Vamos adicionar uma linha para Harry. Porque este é um Nome do usuário definição e não uma definição de grupo, não há necessidade de iniciar a linha com um sinal de porcentagem.
A entrada para a conta de usuário harry é:
harry ALL=/usr/bin/apt-get
Note que há uma guia entre “Harry” e “TODOS =”.
Isso é lido como uma conta de usuário harry
você pode usar os comandos listados em todos os hosts conectados a esta rede. Existe um comando na lista, o que é “/ usr / bin / apt-get”. Podemos conceder a Harry acesso a mais de um comando, adicionando-os à lista de comandos, separados por vírgulas.
Adicione a linha ao arquivo sudoers e salve o arquivo. Se você deseja verificar se a linha está sintaticamente correta, Nós podemos pergutar visudo
para verificar o arquivo e verificar a sintaxe para nós, usando o -c
(marca solo) opção:
sudo visudo -c
As verificações são realizadas e visudo
informe que está tudo bem. Harry agora deve ser capaz de usar apt-get
para instalar software mas deve ser rejeitado se você tentar usar qualquer outro comando que requeira sudo
.
sudo apt-get install finger
O apropriado sudo
Harry recebeu direitos e pode instalar o software.
E se Harry tentar usar um comando diferente de que precisa sudo
?
sudo shutdown now
Harry não consegue executar o comando. Nós concedemos a você com sucesso acesso específico e restrito. Você pode usar o comando designado e nada mais.
Usando aliases de usuário sudoers
Se quisermos dar a Maria os mesmos privilégios, poderíamos adicionar uma linha no arquivo sudoers para a conta do usuário. mary
exatamente da mesma forma que fizemos com Harry. Outra maneira mais simples de fazer o mesmo é usar um User_Alias
.
no arquivo sudoers, uma User_Alias
contém uma lista de nomes de contas de usuário. Nome User_Alias
pode mais tarde ser usado em uma definição para representar todas as contas de usuário. Se você deseja alterar os privilégios dessas contas de usuário, só tem uma linha para editar.
Vamos criar um User_Alias
e usá-lo em nosso arquivo sudoers.
sudo visudo
Role para baixo no arquivo até chegar à linha de especificação User_Alias.
Adicione o User_Alias
escrita:
User_Alias INSTALLERS = harry, Mary
Cada elemento é separado por um espaço, nem por um cílio. A lógica se decompõe como:
- User_Alias: Isso diz
visudo
isso vai ser umUser_Alias
. - INSTALADORES: Este é um nome arbitrário para este alias.
- = Harry, Maria: A lista de usuários a serem incluídos neste alias.
Agora vamos editar a linha que adicionamos anteriormente para a conta do usuário. harry
:
harry ALL=/usr/bin/apt-get
Mude para dizer:
INSTALADORES ALL=/usr/bin/apt-get
Isso diz que todas as contas de usuário incluídas na definição de “INSTALADORES” User_Alias
pode executar o apt-get
comando. Podemos testar isso com Mary, quem agora deve ser capaz de instalar o software.
sudo apt-get install colordiff
Maria pode instalar o software porque ele está em “INSTALADORES” User_Alias
, elenco User_Alias
você recebeu esses direitos.
Três truques rápidos de sudo
Quando você se esquece de adicionar sudo
para um comando, escriba
sudo !!
E o último comando será repetido com sudo
adicionado ao início da linha.
Depois de usar sudo
e autenticado com sua senha, você não terá que usar sua senha com mais sudo
comandos durante 15 minutos. Se você quiser que sua autenticação seja esquecida imediatamente, usar:
sudo -k
Você já se perguntou onde você pode ver falhou sudo
tentativas de comando? Do arquivo “/var/log/auth.log”. Você pode ver isso com:
menos /var/log/auth.log
Podemos ver a entrada da conta de usuário mary que se conectou ao TTY pts / 1 quando você tentou executar o shutdown
comando como usuário “raiz”.
Com grande poder …
… vem a capacidade de delegar peças a outras pessoas. Agora você sabe como capacitar outros usuários seletivamente.