Я думаю, вы, вероятно, ищете контейнеры.
Или, может быть, нет. В конце концов, пространства имен Linux могут быть довольно прозрачными. Я не верю, что существует способ отменить общий доступ
к пространству имен для процесса, который уже был вызван, но вы определенно можете отменить общий доступ
к пространству имен во время вызова практически без эффекта.
cd /tmp
echo you >hey
sudo unshare -m busybox
echo hey >you; cat hey
you
... и с другого терминала ...
cd /tmp
cat you
hey
... дерево монтирования совместно используется по умолчанию из родительского пространства имен, и, хотя все флаги распространения монтирования busybox
установлены на private по умолчанию, это не имеет значения, пока в пространстве имен каким-либо образом не произойдет изменение дерева монтирования. Это также не нужно делать с через busybox.
... в терминале busybox
...
echo "#$$"
#8854
... а теперь от другого ...
sudo nsenter -t8854 -m mount -t tmpfs none /tmp
cd .; cat hey
you
... но из busybox
' s терминал, и поэтому из пространства имен мы только что выполнили монтирование
...
cd .; cat hey
cat: hey: no such file or directory
... потому что новый частный tmpfs был смонтирован поверх общего / tmp
в ] nsenter
команда ...
cd ..
umount tmp
cat tmp/hey
you
«Запасной символ» звучит неправильно, когда речь идет об окончании строки, но он может применяться при преобразовании набора символов. Современные Linux в подавляющем большинстве используют UTF -8 по умолчанию, но AIX может по-прежнему использовать один из наборов символов ISO -8859 -*.
Запустите locale
как в AIX, так и в Linux и посмотрите на строку LC_CTYPE=...
. Что он говорит о каждой системе?