Istnieje sposób na tworzenie ukrytych punktów montowania, jeśli użytkownik root udostępni wspólną przestrzeń nazw i zamontuje katalogi bez aktualizacji mtab. Czy istnieje prosty sposób na umieszczenie tego na liście bez konieczności filtrowania przez system plików proc?
0
mount
ifindmnt
zgłaszają wszystkie wierzchowce.unshare --mount --propagation=slave
tego właśnie używają pojemniki takie jak Docker.Odpowiedzi:
Przede wszystkim
/proc
jest podstawowym sposobem dostępu do aktualnych informacji o montowaniu w systemie Linux.Wiele współczesnych dystrybucji Linuksa nigdy nie aktualizuje mtab; jest to po prostu dowiązanie symboliczne do
/proc/self/mounts
. (Zarówno możliwość cofnięcia udostępnienia przestrzeni nazw montowania, jak i ukrywanie montowań poprzez „zapomnienie” aktualizacji mtab, są głównymi przyczynami tej zmiany. I oczywiście, po co powtarzać pracę, którą jądro już wykonuje?)Podobnie, same identyfikatory przestrzeni nazw są ujawniane tylko przez
/proc/$PID/ns/mnt
. Nie ma innego sposobu sprawdzenia, które procesy znajdują się w oddzielnych przestrzeniach nazw od głównego.Powiedziawszy to, najszybszym sposobem wylistowania wszystkich wierzchowców jest
cat /proc/*/mounts
. Ale jeśli nie chcesz tego robić, util-linux v2.28 wprowadza narzędzie lsns , które może szybko wyświetlić listę wszystkich unikalnych przestrzeni nazw oraz ich „pierwszy” proces:A kiedy już masz identyfikator procesu, możesz zobaczyć jego tabelę montowania za pomocą:
(Zawsze powinieneś używać
/proc/$PID/mountinfo
pliku, ponieważ zawiera on nieco więcej informacji niżmounts
lub / etc / mtab. Na przykład opisuje on faktyczną hierarchię, gdy montowania nakładają się w nieoczekiwany sposób, i dokładniej zgłasza „źródło” montowania wiązania gdy jest to plik lub podkatalog).Jeśli chodzi o jedno narzędzie, które po prostu pokazuje, jakich wierzchowców „brakuje” w głównej przestrzeni nazw - nie znam żadnego. (W tej chwili nie ma tu coreutils ani util-linux, choć napisanie jednego nie powinno być trudne, jeśli pozwolisz mu się przekopać / proc.)
źródło