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?
Use su
:
$ su -c command
ou
$ su
# command
# exit
Nos dois casos, você será solicitado a senha root
. Para mais informações, consulte a página de manual .
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 por #which <command>
e defina SUID ou SGID para esse caminho.
P.S. - Os bits SUID e SGID devem ser fornecidos com cuidado. Eles podem tornar seu sistema inseguro.
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 Controle de Acesso Baseado em Função.
A essência do RBAC é que, através da concessão de autorizações e direitos, a usuários e/ou funções, 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 executa pfexec <command>
para executar o comando com privilégios ou autorizações concedidas a esse usuário para que comando.
O interessante 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, 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 o root uma conta de função e atribuir essa função aos 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, no qual você pode desativar a senha root passwd -d root
ou bloqueie a conta raiz passwd -l root
, os quais dificultam o login como root quando algo dá errado.
Ben Rockwood tem um ótimo post no RBAC que pode ser lido em sando o RBAC no Solaris (aberto) .