Descobri que John estava no grupo sudo quando ele não deveria estar. Removido John do sudo usando este comando:
gpasswd -d john sudo
E isso resolveu o problema. Se ele tentar escalar privilégios agora, ele é incapaz de fazê-lo.
Eu tenho um cliente que eu configurei com uma máquina linux. Ele não é muito experiente em tecnologia, e obviamente só precisava de uma senha simples para se conectar ao Ubuntu. Seu nome de usuário e senha são algo como:
user: John
password: GoodDeals
Por outro lado, a senha do root na máquina é muito mais complexa e é algo que eu deveria ter acesso.
Mas quando eu uso o comando:
sudo su -
O Ubuntu solicita a senha simples de John e, em seguida, concede acesso root a toda a máquina.
Isso pode ser um problema, pois uma vez que um funcionário soubesse a senha simples para fazer logon na máquina, ele poderia essencialmente obter acesso root com ele.
Este comportamento é pretendido?
Por que o fato de saber uma senha de conta de usuário fornece automaticamente acesso root?
Por padrão, a distribuição Ubuntu do Linux vem com login root desativado e senha root unset, então para aumentar seu nível de privilégio o usuário precisa executar comandos com sudo
, e isso é permitido somente quando o usuário é um sudoer (tendo sua entrada no arquivo sudoers
), que é a seguinte para breve:
Os membros do grupo de administradores podem obter privilégios de root
%admin ALL=(ALL) ALL
Permitir que membros do grupo sudo executem qualquer comando
%sudo ALL=(ALL:ALL) ALL
A raiz e os usuários na roda do grupo podem executar qualquer coisa em qualquer máquina como qualquer usuário
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL
Sysadmins em tempo integral podem executar qualquer coisa em qualquer máquina sem uma senha
FULLTIMERS ALL = NOPASSWD: ALL
Os sysadmins de tempo parcial podem executar qualquer coisa, mas precisam de uma senha
PARTTIMERS ALL = ALL
E o comando que você está executando é
sudo /sbin/su -
que, quando executado por sudo
user, não solicitará senha (senha sudo e senha root) se RootSudoTimeout não ocorrer, para restringir isso
john pode su
apenas para o operador
john ALL = /usr/bin/su operator
john pode su
para qualquer pessoa, exceto raiz e sinalizadores não permitidos
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
Conhecer uma senha de conta de usuário não fornece acesso root automaticamente. O Sudo é destinado ao acesso root para usuários privilegiados, como o John, usando a senha do usuário, ao contrário de su , que precisam da senha do root para executar qualquer comando. Mostre a saída do comando id para John. Suponho que você tenha configurado o seu Ubuntu com esse nome de usuário, de modo que John esteja no grupo sudo por padrão.