Eu preciso executar um comando com privilégios administrativos. Alguém disse que eu deveria executar um comando como root. Como eu faço isso?
sudo
root
administration
Stefan
fonte
fonte
Respostas:
As duas principais possibilidades de linha de comando são:
su
e digite a senha root quando solicitado.sudo
na frente do comando e digite sua senha quando solicitado.Executando um Comando Shell como Raiz
sudo (preferível quando não estiver executando uma exibição gráfica)
Este é o método preferido na maioria dos sistemas, incluindo Ubuntu, Linux Mint, (sem dúvida) Debian e outros. Se você não souber uma senha root separada, use este método.
O Sudo exige que você digite sua própria senha. (O objetivo é limitar o dano se você deixar o teclado sem vigilância e desbloqueado, e também garantir que você realmente deseja executar esse comando e que não seja, por exemplo, um erro de digitação.) Geralmente, é configurado para não pedir novamente alguns minutos para que você possa executar vários
sudo
comandos em sucessão.Exemplo:
Se você precisar executar vários comandos como root, prefixe cada um deles com
sudo
. Às vezes, é mais conveniente executar um shell interativo como root. Você pode usarsudo -i
para isso:Em vez de
sudo -i
, você pode usarsudo -s
. A diferença é que-i
re i nitializes o ambiente para os padrões sãs, enquanto-s
utiliza seus arquivos de configuração para melhor ou para pior.Para obter mais informações, consulte o site sudo ou digite
man sudo
no seu sistema. Sudo é muito configurável; por exemplo, ele pode ser configurado para permitir que um determinado usuário execute apenas determinados comandos como root. Leia asudoers
página do manual para mais informações; usesudo visudo
para editar o arquivo sudoers.su
O
su
comando existe na maioria dos sistemas unix. Permite executar um comando como outro usuário, desde que você saiba a senha do usuário. Quando executado sem nenhum usuário especificado,su
o padrão será a conta raiz.Exemplo:
O comando a ser executado deve ser passado usando a
-c
opção Observe que você precisa de aspas para que o comando não seja analisado pelo seu shell, mas passado intacto para o shell raiz quesu
é executado.Para executar vários comandos como root, é mais conveniente iniciar um shell interativo.
Em alguns sistemas, você precisa estar no número de grupo 0 (chamado
wheel
) para usarsu
. (O objetivo é limitar o dano se a senha do root for acidentalmente vazada para alguém.)Efetuando login como root
Se houver uma senha root definida e você a possuir, basta digitar
root
no prompt de login e inserir a senha root. Tenha muito cuidado e evite executar aplicativos complexos como root, pois eles podem fazer algo que você não pretendia. Efetuar login diretamente como root é útil principalmente em situações de emergência, como falhas de disco ou quando você sai da sua conta.Modo de usuário único
O modo de usuário único ou nível de execução 1 também oferece privilégios de root. Isso se destina principalmente a situações de manutenção de emergência em que não é possível inicializar em um nível de execução multiusuário. Você pode inicializar no modo de usuário único passando
single
ouemergency
na linha de comando do kernel. Observe que inicializar no modo de usuário único não é o mesmo que inicializar o sistema normalmente e efetuar login como root. Em vez disso, o sistema iniciará apenas os serviços definidos para o nível de execução 1. Normalmente, este é o menor número de serviços necessários para ter um sistema utilizável.Você também pode chegar ao modo de usuário único usando o comando telinit:
telinit 1
; no entanto, esse comando requer que você já tenha obtido privilégios de root por meio de outro método para executar.Em muitos sistemas, a inicialização no modo de usuário único dará ao usuário acesso a um shell raiz sem solicitar uma senha. Notavelmente, os
systemd
sistemas baseados em solicitarão a senha root quando você inicializar dessa maneira.Outros programas
Calife
O Calife permite executar comandos como outro usuário digitando sua própria senha, se autorizado. É semelhante ao sudo muito mais difundido (veja acima). Calife é mais leve que o sudo, mas também menos configurável.
Op
Op permite executar comandos como outro usuário, incluindo root. Esta não é uma ferramenta completa para executar comandos arbitrários: você digita
op
seguido por um mnemônico configurado pelo administrador do sistema para executar um comando específico.Super
Super permite executar comandos como outro usuário, incluindo root. O comando deve ter sido permitido pelo administrador do sistema.
Executando um Comando Gráfico como Raiz
Veja também Wikipedia .
PolicyKit (preferível ao usar o GNOME)
Basta prefixar o comando desejado com o comando
pkexec
. Esteja ciente de que, embora isso funcione na maioria dos casos, não funciona universalmente.Veja
man pkexec
para mais informações.KdeSu, KdeSudo (de preferência ao usar o KDE)
kdesu
ekdesudo
são front-ends gráficos parasu
esudo
respectivamente. Eles permitem que você execute os programas do X Window como root, sem problemas. Eles fazem parte do KDE . Tipoe digite a senha root ou digite
e digite sua senha (se estiver autorizada a executar
sudo
). Se você marcar a opção "manter senha" no KdeSu, você precisará digitar a senha root apenas uma vez por sessão de login.Outros programas
KtsussKtsuss ("mantenha o su simples, estúpido") é uma versão gráfica do su.
BeesuO Beesu é um front-end gráfico para o comando su que substituiu o Gksu nos sistemas operacionais baseados na Red Hat. Foi desenvolvido principalmente para RHEL e Fedora.
Métodos obsoletos
gksu
egksudo
gksu
egksudo
são front-ends gráficos parasu
esudo
respectivamente. Eles permitem que você execute os programas do X Window como root, sem problemas. Eles fazem parte do Gnome . Tipoe digite a senha root ou digite
e digite sua senha (se estiver autorizada a executar
sudo
).gksu
egksudo
são obsoletos. Eles foram substituídos pelo PolicyKit no GNOME, e muitas distribuições (como o Ubuntu) não os instalam mais por padrão. Você não deve depender deles estarem disponíveis ou funcionando corretamente.Manualmente através de um dos métodos baseados em shell
Use um dos métodos na seção "executando um comando shell como raiz". Você precisará garantir que nem a
DISPLAY
variável de ambiente nem oXAUTHORITY
ambiente sejam redefinidos durante a transição para a raiz. Isso pode exigir uma configuração adicional dos métodos que estão fora do escopo desta pergunta.No geral, é uma má idéia, principalmente porque os aplicativos gráficos lêem e gravam arquivos de configuração como raiz e, quando você tenta usar esses aplicativos novamente como usuário normal, esses aplicativos não terão permissão para ler suas próprias configurações.
Editando um arquivo como root
Consulte Como edito um arquivo como raiz?
fonte
sudo
só funcionará se (1) estiver instalado e (2) se o seu uso estiver no arquivo sudoers e tiver permissão para executar a operação.pkexec
está substituindogksu
/gksudo
em muitas distribuições hoje em dia.Use
su
:ou
Em ambos os casos, você será solicitado a fornecer a
root
senha. Para mais informações, consulte a página do manual .fonte
Como a pergunta não era específica do Linux, veja como você alcança o mesmo objetivo no Solaris 9+ (ou Trusted Solaris 8):
O Solaris, desde a versão 9, inclui um conjunto de ferramentas afetuosamente chamadas de RBAC, ou Role Based Access Control.
A essência do RBAC é que, através da concessão de Autorizações e Direitos, a Usuários e / ou Função, ou a concessão de Funções a Usuários, você pode criar modelos incrivelmente refinados para quem pode executar o que com quais privilégios.
Essencialmente, você identifica a autorização em / etc / security / auth_attr e as concede a usuários ou funções em / etc / user_attr.
Você define perfis em / etc / security / prof_attr. Em seguida, você associa comandos a esses perfis em / etc / security / exec_attr, seguido pela atribuição desses perfis aos usuários no arquivo / etc / user_attr.
Depois que essas coisas são feitas, você realmente
pfexec <command>
executa o comando com privilégios ou autorizações concedidas a esse usuário por esse comando.O bom do RBAC é que não há privilégios adicionais concedidos ao próprio comando, ou ao usuário, apenas à combinação de usuário + comando. Portanto, é mais seguro do que criar um binário + s, ou apenas usar o sudo para tornar o usuário capaz de executar praticamente qualquer coisa. (Eu sei que você pode bloquear o sudo, mas na minha experiência a maioria das pessoas não)
Outra vantagem do RBAC é que você pode tornar uma conta de função root e atribuir essa função a usuários que podem se tornar root com o comando 'su' e a senha root. O usuário root também poderá efetuar login no modo de usuário único, o que é melhor (na minha opinião) do que o modelo Linux, onde você pode desativar a senha root
passwd -d root
ou bloquear a conta rootpasswd -l root
, ambas tornando o login como root bastante difícil quando algo dá errado.Ben Rockwood tem um ótimo post no RBAC que pode ser lido em Usando o RBAC no Solaris (aberto) .
fonte
Ou você pode dar a alguns comandos uma superpotência. Estou falando de permissões especiais nas quais os comandos são executados com a permissão do proprietário.
Obtenha o caminho do comando
#which <command>
e defina SUID ou SGID para esse caminho.Os bits PS - SUID e SGID devem ser fornecidos com cuidado. Eles podem tornar seu sistema inseguro.
fonte