Por que meu usuário não recebeu acesso root?

3

Eu executei os comandos abaixo e configurei uma sessão de terminal:

karl@i-dev:~$ sudo usermod -aG sudo karl
karl@i-dev:~$ sudo adduser karl sudo
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "sv_SE.UTF-8",
    LC_ADDRESS = "sv_SE.UTF-8",
    LC_MONETARY = "sv_SE.UTF-8",
    LC_NUMERIC = "sv_SE.UTF-8",
    LC_TELEPHONE = "sv_SE.UTF-8",
    LC_IDENTIFICATION = "sv_SE.UTF-8",
    LC_MEASUREMENT = "sv_SE.UTF-8",
    LC_TIME = "sv_SE.UTF-8",
    LC_NAME = "sv_SE.UTF-8",
    LANG = "ru_RU.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
The user 'karl' is already a member of 'sudo'.

Eu fiz o logout e tentei usar um comando que exige root:

karl@i-dev:~$ docker ps -a
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied

No entanto, não tenho permissão para isso. Por que não recebi root access no meu sistema?

    
por Karl Morrison 22.02.2017 / 23:07

1 resposta

4

Seu usuário não recebe automaticamente root powers sendo membro do grupo sudo . A única coisa que confere é a capacidade para executar sudo e por acesso root de ganho por proxy.

O Docker está procurando uma das duas coisas: um usuário com poderes de nível de raiz (portanto, apenas a conta de usuário conhecida como root , que pode ser imitada com sudo ) ou um usuário que seja membro da docker group.

Se você deseja executar o Docker sem sudo , é melhor adicioná-lo ao grupo docker usando o comando abaixo:

sudo usermod -aG docker $USER

Uma nota de aviso embora para isso. Adicionando-se ao grupo docker , você pode criar um contêiner do Docker que é executado como raiz. Se você conceder acesso a esse contêiner ao disco rígido do seu sistema principal, poderá efetivamente ganhar root sem sudo . Pense com muito cuidado para garantir que esse risco seja aceitável primeiro. Além disso, certifique-se de executar apenas contêineres confiáveis / auditados. Veja aqui para uma explicação mais completa sobre o que pode dar errado. / p>

Quanto a por que ele é projetado dessa maneira. Em vez de apenas permitir que um usuário execute qualquer comando como root sempre que quiser, eles precisam passar pelo proxy de sudo . Isso impede que um script mal-intencionado acesse a sua conta de usuário e assuma o controle do sistema inteiro.

Ele também se encaixa no modelo geral de "permissão de isolamento" do Linux. Em vez de executar o tempo todo como um usuário privilegiado, sua operação diária é como um usuário normal sem privilégios, que pode ser escalado conforme necessário. Enquanto você pode rodar como root 24/7, isso é altamente desaconselhável porque tem o potencial de errar muito rápido.

Se você quiser escalar para o usuário raiz para o restante da sua sessão de terminal, basta executar sudo -i ou sudo -s . Caso contrário, use apenas sudo e fique no lado seguro.

    
por Kaz Wolfe 22.02.2017 / 23:13