Ders 2.71: Rootsuz kapsayıcılar ve kullanıcı ad alanları
Rootsuz bir kapsayıcı, sıradan bir kullanıcının kendini root sanan yazılım çalıştırmasını sağlar. Hile bir kullanıcı ad alanıdır: içeride süreç UID 0'dır; dışarıda çekirdek, yöneticinin /etc/subuid'de verdiği aralıktan ayrıcalıksız bir UID görür. İki kullanıcıya aynı aralık verilirse kapsayıcıları makine UID'lerini paylaşır ve birbirlerinin dosyalarını okuyabilir. Laboratuvarda bir kapsayıcının nginx'ini iç UID'sinden makine UID'sine kadar izliyor, eşlemeyi okuyor, aralıkları çakışan iki kullanıcı buluyor ve onları ayırıyorsun.
17 dk
Bu derste öğreneceklerin
- Bir kullanıcı ad alanının kapsayıcı UID'lerini makine UID'lerine nasıl eşlediğini açıklamak
- /proc/PID/uid_map'i okumak
- /etc/subuid'i okumak ve çakışan aralıkları görmek
- Bir kapsayıcı kullanıcısının makine UID'sini hesaplamak
- Bir çakışmayı düzeltmek ve kendi eşlemeni podman unshare ile denetlemek
Temel terimler
- Kullanıcı ad alanı
- Bir sürece kendi UID görünümünü veren çekirdek özelliği: içeride root, dışarıda ayrıcalıksız.
- uid_map
- /proc/PID/uid_map: içerideki UID, dışarıdaki UID, sayı satırları.
- /etc/subuid, /etc/subgid
- Her kullanıcının ad alanlarında kullanabileceği makine UID ve GID aralıkları: kullanıcı:başlangıç:sayı.
- Rootsuz kapsayıcı
- Sıradan bir kullanıcının başlattığı, root arka plan programı olmayan kapsayıcı.
- podman unshare
- Bir komutu rootsuz kullanıcı ad alanının içinde, onun root'u olarak çalıştırır.
← Bağlama seçenekleri: noexec, nosuid, nodev · Tüm dersler · Denetim izini korumak →