Paylaşımı olmayan chroot simüle


13

Minimal, kaynak linux dağıtımı için bir bootstrapper yazmaya çalışıyorum.

Chroot benzeri bir ortamda inşa etmek istiyorum. Bu, ambalajı basitleştirmelidir. Bu noktada güvenliği önemsemiyorum. Önyükleyici standart olmayan üçüncü taraf komutları gerektirmemelidir. Kök olmanıza gerek yoksa harika olurdu.

Bu yüzden fakechroot (1) fakeroot (1) chroot (1) tam olarak aradığım şey değil.

Sahte (1) ve / bin / sh kullanarak taklit etmek / kullanmak mümkün müdür?


AFAICS, unshare(1)yalnızca kök sistem çağrılarının bir koleksiyonunun etrafında oldukça ince bir pakettir ve (en azından Fedora 18'de) SUID değildir, bu yüzden kök olmayan kullanıcılar için çalışacağından şüphe duyuyorum.
vonbrand

Oh, bu bir utanç. Paylaşımın setuid olduğu izlenimindeydim. Sanırım kök olmakta iyiyim.
Kökler

4
Yeni Linux 3.8 çekirdeğinin piyasaya sürülmesiyle, ad alanı özelliklerini kök olmayan olarak kullanabilirsiniz. Ancak bu parlak yeni şeyler: önce bir kullanıcı adı ad alanına ihtiyacınız var ve paylaşma henüz bunu desteklemiyor. Ve eylemleriniz hala sınırlı olacaktır.
BatchyX

Yanıtlar:


5

Evet. Senin Eğer çekirdek destekleri user_namespaces (ve onlar etkindir) , önce o çağırmak için hakkı alır kullanıcıyı, "kök taklit" olabilir chroot(gerçek kök kullanıcı olarak). (Daha önce normal bir kullanıcı tarafından ayrıcalık yükselmesi olasılığı nedeniyle yalnızca kök kullanıcıyla kısıtlanması gerekiyordu (örneğin, küme dizinindeki set-UID-kök ikili dosyaları ve özel kitaplıklar aracılığıyla).)

Bunu kabuğunuzda deneyebilirsiniz:

unshare --user --map-root-user --mount-proc --pid --fork
/sbin/chroot ......
su - user1

tanınmayan seçenek '--map-root-user'
Zibri

1
@Zibri Artık benim için çalışıyor unshare, util-linux-2.30.2-alt1
imz - Ivan Zakharyaschev ile birlikte

1

Bunun için zaten mükemmel bir şekilde uygun oldukları için sadece fakeroot / fakechroot paketleyin veya kurun. İlham almak için cdebootstrap'e bakın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.