
Estou ciente de que podemos executar um comando/script como um super/outro usuário usando sudo
o comando. Mas existe a possibilidade de o sudo
próprio utilitário não estar disponível/removido pelo usuário. Em caso afirmativo, qual poderia ser a alternativa sudo
diferente de su
? Além disso, fazem sudo
e su
servem ao mesmo propósito?
Responder1
'sudo' permite que você inicie qualquer programa como qualquer usuário. É 'setuid root', pois o próprio programa requer permissões de root para fazer isso. O poder do sudo é que você pode configurar facilmente quem pode fazer o quê. Você pode permitir que um usuário execute o nmap (e apenas o nmap) usando o sudo.
'su' permite que você inicie um shell como qualquer usuário. Ao iniciar um shell, obviamente você pode iniciar qualquer outro programa. É portanto mais perigoso; em sistemas bem administrados, su
o acesso geralmente é desativado, mas sudo
pode estar disponível para programas distintos.
A razão pela qual os dois programas acima são usados é a responsabilização. Sudo registra todas as solicitações feitas. Portanto, é muito fácil para um administrador rastrear o que um usuário fez usando privilégios de root. Se você conceder acesso a um shell, um usuário poderá fazer o que quiser (é um 'buraco negro'). (É claro que o log avançado no nível do kernel impede isso).
Claro, esses programas também podem ser marcados como setuid
. Isso altera as permissões do proprietário do binário ao executá-lo. Se você conseguir ativar o setuid
bit por exemplo /bin/bash
e definir o proprietário /bin/bash
como root
, você será root toda vez que executar /bin/bash
.
Por último, o acesso físico à máquina permitirá que você faça o que quiser. Você pode inicializar a partir de uma unidade flash e acessar o sistema de arquivos local. Você pode até configurar seu bootloader para usar um init
processo diferente que inicia imediatamente um shell no modo de usuário único (sem solicitar uma senha).
Responder2
Parece que ninguém respondeu à questão de saber se existem ou não alternativas ao sudo além do su, então você pode estar interessado em saber que o site do sudo na verdade mantém uma lista de alternativas ao sudo:
A lista inclui software de código aberto e comercial. Aqui estão as alternativas de sudo de código aberto listadas no momento:
-
- Agora extinto? Referência:SUS: um modelo de referência de objeto para distribuição de privilégios de superusuário Unix
op: escalonamento de privilégios controlado (uma alternativa flexível ao sudo)
Dito isto, nunca usei nenhuma dessas alternativas, nem nunca vi ou ouvi falar delas em qualquer outro contexto. Também parece que pelo menos alguns deles são experimentais, extintos ou sem suporte. A impressão que tenho é que sudo
é su
o único jogo real da cidade.
Responder3
Faça login como root (se permitido em seu tty) ou reinicie o computador e faça login com init=/bin/bash na linha de comando para restaurar a funcionalidade necessária.
Ressalto que apenas o root pode remover o sudo.
sudo e su servem a propósitos semelhantes, mas diferentes. "sudo" permite que você faça algo com as permissões de outra pessoa, enquanto "su" permite que você "se torne" esse usuário e se comporte como ele.
Responder4
Se a máquina estiver openssh-server
instalada, uma alternativa sudo
pode ser:
ssh root@localhost ..command.. ..goes.. ..here..
Se não tiver sido desativado, há su
como você mencionou:
su - root -c "..command.. ..goes.. ..here.."