Ver / manipular namespaces de montagem no Linux

7

Existe alguma maneira de visualizar ou manipular o namespace de montagem para um processo arbitrário?

Por exemplo, um contêiner docker está em execução, o qual possui uma montagem local em um servidor NFS. Ele pode ser visto de dentro do contêiner, mas do lado de fora, o host não tem conhecimento disso. Com namespaces de rede isso é factível. por exemplo. canalização

No entanto, não vejo nada sobre isso para namespaces de montagem. Existe uma camada API ou sysfs exposta para visualizar essas montagens e manipular ou criar novas?

    
por Matt H 02.11.2014 / 21:39

1 resposta

5

Sim. Você pode ver seu /proc/$PID/mountinfo ou pode usar a opção findmnt -N - sobre qual findmnt --help diz:

  • %código%
    • use o namespace alternativo ( -N, --task <tid> file)

/proc/<tid>/mountinfo também rastreia o findmnt flag, que é um campo PROPAGATION , que informa exatamente essas informações - que processa o compartilhamento das montagens.

Além disso, você sempre pode usar mountinfo de qualquer tipo de namespace que desejar - desde que tenha as permissões corretas, é claro.

 nsenter --help
Usage:
 nsenter [options] <program> [args...]

Options:
 -t, --target <pid>     target process to get namespaces from
 -m, --mount [=<file>]  enter mount namespace
 -u, --uts   [=<file>]  enter UTS namespace (hostname etc)
 -i, --ipc   [=<file>]  enter System V IPC namespace
 -n, --net   [=<file>]  enter network namespace
 -p, --pid   [=<file>]  enter pid namespace
 -U, --user  [=<file>]  enter user namespace
 -S, --setuid <uid>     set uid in user namespace
 -G, --setgid <gid>     set gid in user namespace
 -r, --root  [=<dir>]   set the root directory
 -w, --wd    [=<dir>]   set the working directory
 -F, --no-fork          do not fork before exec'ing <program>

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see nsenter(1).
    
por 06.11.2014 / 01:53