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.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:
sudo service apache restart
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 usar sudo -i
para isso:
$ sudo -i
# command 1
# command 2
...
# exit
Em vez de sudo -i
, você pode usar sudo -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 a sudoers
página do manual para mais informações; use sudo visudo
para editar o arquivo sudoers.
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:
su -c 'service apache restart'
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 que su
é executado.
Para executar vários comandos como root, é mais conveniente iniciar um shell interativo.
$ su
# command 1
# command 2
...
# exit
Em alguns sistemas, você precisa estar no número de grupo 0 (chamado wheel
) para usar su
. (O objetivo é limitar o dano se a senha do root for acidentalmente vazada para alguém.)
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.
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
ou emergency
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.
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 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 permite executar comandos como outro usuário, incluindo root. O comando deve ter sido permitido pelo administrador do sistema.
Veja também Wikipedia .
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
e kdesudo
são front-ends gráficos para su
e sudo
respectivamente. Eles permitem que você execute os programas do X Window como root, sem problemas. Eles fazem parte do KDE . Tipo
kdesu -c 'command --option argument'
e digite a senha root ou digite
kdesudo -c 'command --option argument'
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.
Ktsuss ("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.
gksu
e gksudo
gksu
e gksudo
são front-ends gráficos para su
e sudo
respectivamente. Eles permitem que você execute os programas do X Window como root, sem problemas. Eles fazem parte do Gnome . Tipo
gksu command --option argument
e digite a senha root ou digite
gksudo command --option argument
e digite sua senha (se estiver autorizada a executar sudo
).
gksu
e gksudo
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.
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 o XAUTHORITY
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.
Consulte Como edito um arquivo como raiz?
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á substituindo gksu
/ gksudo
em muitas distribuições hoje em dia.
Use su
:
$ su -c command
ou
$ su
# command
# exit
Em ambos os casos, você será solicitado a fornecer a root
senha. Para mais informações, consulte a página do manual .
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 root passwd -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) .
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.