Вот очень простой пример использования util-linux
's unshare
, чтобы поместить процесс в частное пространство имен монтирования и дать ему другое представление о той же файловой системе, которую сейчас имеет его родитель:
{ cd /tmp #usually a safe place for this stuff
echo hey >file #some
echo there >file2 #evidence
sudo unshare -m sh -c ' #unshare requires root by default
mount -B file2 file #bind mount there over hey
cat file #show it
kill -TSTP "$$" #suspend root shell and switch back to parent
umount file #unbind there
cat file' #show it
cat file #root shell just suspended
fg #bring it back
cat file2 #round it off
}
there #root shell
hey #root shell suspended
hey #root shell restored
there #rounded
Вы можете предоставить процессу частное представление его файловой системы с помощью утилиты unshare
в современных системах linux, хотя сам механизм пространства имен монтирования был достаточно зрелым для всей серии ядер 3. x серии ядра. Вы можете войти в уже существующие пространства имен всех видов с помощью утилиты nsenter
из того же пакета, а узнать больше можно с помощью man
.