mount_namespaces позволит вам выполнить mount --bind
, невидимое для других процессов. Но обычно mount --bind
ограничен только пользователем root (по соображениям безопасности). Итак, чтобы mount_namespaces была полезна для пользователя без полномочий root, вы должны сначала использовать user_namespaces , чтобы стать «локальным корнем» в новом пространстве имен, где эта операция будет разрешена.
Вы можете поиграть с этим в своей оболочке следующим образом - в этом примере специально показано использование пространств пользователя и монтирования при подготовке каталога chroot (и операция chroot
обычно также является привилегированной):
unshare --user --map-root-user --mount-proc --pid --fork
mkdir -p newroot/dev
mount --rbind /dev newroot/dev
....other chroot preparation....
chroot newroot
su - user1
Обратите внимание, что я использую mount --rbind
(вместо mount --bind
), потому что только это будет работать в пространстве имен new user & mount, если каталог включает другое монтирование очков (и / dev /
в моем случае).
Возможно, это объясняется тем, что у пользователя не должно быть возможности видеть то, что обычно непривилегированный пользователь не видит, то есть подкаталоги, скрытые «подмонтами». Чтобы не удалять субмаунты, разрешено использовать только - rbind
.