GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Spusťte Docker jako uživatel bez oprávnění root

Kontejnery Dockeru ve výchozím nastavení běží s oprávněním root a stejně tak i aplikace, která běží uvnitř kontejneru. To je další velký problém z hlediska zabezpečení, protože hackeři mohou získat root přístup k hostiteli Docker hackováním aplikace běžící uvnitř kontejneru.

Metoda 1 – Přidat uživatele do skupiny Docker

1. Chcete-li spustit Docker jako uživatel bez oprávnění root, musíte svého uživatele přidat do skupiny dockerů.

2. Vytvořte skupinu ukotvitelných panelů, pokud žádná neexistuje:

$ sudo groupadd docker

3. Přidejte svého uživatele do skupiny dockerů:

$ sudo usermod -aG docker [non-root user]

4. Odhlaste se a přihlaste se znovu, aby bylo vaše členství ve skupině přehodnoceno.

Metoda 2 – Použití Dockerfile (uživatelská instrukce)

Docker poskytuje jednoduché, ale výkonné řešení, jak změnit oprávnění kontejneru na uživatele bez oprávnění root, a zmařit tak škodlivý root přístup k hostiteli Docker. Tuto změnu na uživatele bez oprávnění root lze provést pomocí -u nebo –uživatel možnost dílčího příkazu docker run nebo USER instrukce v Dockerfile.

1. Upravte soubor Dockerfile, který vytváří uživatele s oprávněním jiného než root, a změňte výchozího uživatele root na nově vytvořeného uživatele s oprávněním jiného uživatele, jak je znázorněno zde:

##########################################
# Dockerfile to change from root to 
# non-root privilege
###########################################
# Base image is CentOS 7
FROM Centos:7
# Add a new user "john" with user id 8877
RUN useradd -u 8877 john
# Change to non-root privilege
USER john

2. Pokračujte ve vytváření obrazu Docker pomocí dílčího příkazu „docker build“, jak je znázorněno zde:

$ sudo docker build -t nonrootimage .

3. Nakonec ověřte aktuálního uživatele našeho kontejneru pomocí příkazu id v dílčím příkazu docker run:

$ sudo docker run --rm nonrootimage id
uid=8877(john) gid=8877(john) groups=8877(john)

Je zřejmé, že uživatel kontejneru, skupina a skupiny jsou nyní změněny na uživatele bez oprávnění root.


Docker
  1. Jak spustit Nginx v kontejneru Docker:Průvodce krok za krokem

  2. Je dobrou praxí spouštět démona pod uživatelským účtem bez oprávnění root?

  3. Kali výchozí uživatel bez root

  1. Jak spustit program uvnitř kontejneru Docker?

  2. Měli byste spustit databázi v Dockeru?

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak spustit příkaz na spuštěném kontejneru Docker

  2. Úvod do Docker Containers

  3. Jak spustit rsyslog jako uživatel bez root v CentOS/RHEL 7