Почему мой пользователь не предоставляется корневой доступ?

Я работал ниже команд и настраивал терминальный сеанс:

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'.

Я затем вышел из системы, и въезжайте задним ходом и попробованный для использования требующей корня команды:

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

Однако мне не разрешают. Почему меня не предоставили root доступ в моей системе?

2
задан 23 February 2017 в 01:24

1 ответ

Ваш пользователь автоматически не добирается root полномочия, будучи членом sudo группа. Единственной вещью, которая совещается, является способность работать sudo и по доверенности получите корневой доступ.

Докер ищет одну из двух вещей: пользователь с полномочиями корневого уровня (поэтому только учетная запись пользователя, известная как root, с которым можно подражать sudo) или пользователь, который является членом docker группа.

Если требуется выполнить Докера без sudo, лучше добавлять Вашего пользователя к docker группа, использующая ниже команды:

sudo usermod -aG docker $USER

Предупреждение, хотя для этого. Путем добавления себя к docker группа, можно создать контейнер Докера, который выполняется как корень. Если Вы предоставляете этот контейнерный доступ к жесткому диску своей основной системы, можно эффективно получить корень без sudo. Думайте очень тщательно, чтобы гарантировать, что этот риск приемлем сначала. Кроме того, обязательно только работайте, доверял/контролировал контейнерам. Посмотрите здесь для более полного объяснения относительно того, что может пойти не так, как надо.


Что касается того, почему это разработало этот путь. Вместо того, чтобы просто позволить пользователю выполнить любую команду как корень каждый раз, когда они чувствуют себя подобно ему, они должны пройти прокси sudo. Это препятствует тому, чтобы злонамеренный сценарий получил доступ к Вашей учетной записи пользователя и затем занял всю систему.

Это также согласуется с общей "моделью" изоляции разрешения Linux. Вместо того, чтобы работать все время как привилегированный пользователь, Ваша повседневная эксплуатация как непривилегированный обычный пользователь, который затем может быть наращен по мере необходимости. В то время как можно работать как root 24/7, это очень неблагоразумно, потому что он имеет потенциал для движения действительно неправильно действительно быстро.

Если Вы хотите возрасти пользователю root для остальной части Вашего терминального сеанса, просто работать sudo -i или sudo -s. Иначе просто используйте sudo и останьтесь на безопасной стороне.

4
ответ дан 2 December 2019 в 02:16

Другие вопросы по тегам:

Похожие вопросы: