123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- @example
- @c man begin SYNOPSIS
- usage: virtfs-proxy-helper options
- @c man end
- @end example
- @c man begin DESCRIPTION
- @table @description
- Pass-through security model in QEMU 9p server needs root privilege to do
- few file operations (like chown, chmod to any mode/uid:gid). There are two
- issues in pass-through security model
- 1) TOCTTOU vulnerability: Following symbolic links in the server could
- provide access to files beyond 9p export path.
- 2) Running QEMU with root privilege could be a security issue.
- To overcome above issues, following approach is used: A new filesytem
- type 'proxy' is introduced. Proxy FS uses chroot + socket combination
- for securing the vulnerability known with following symbolic links.
- Intention of adding a new filesystem type is to allow qemu to run
- in non-root mode, but doing privileged operations using socket IO.
- Proxy helper(a stand alone binary part of qemu) is invoked with
- root privileges. Proxy helper chroots into 9p export path and creates
- a socket pair or a named socket based on the command line parameter.
- QEMU and proxy helper communicate using this socket. QEMU proxy fs
- driver sends filesystem request to proxy helper and receives the
- response from it.
- Proxy helper is designed so that it can drop the root privilege with
- retaining capbilities needed for doing filesystem operations only.
- @end table
- @c man end
- @c man begin OPTIONS
- The following options are supported:
- @table @option
- @item -h
- @findex -h
- Display help and exit
- @item -p|--path path
- Path to export for proxy filesystem driver
- @item -f|--fd socket-id
- Use given file descriptor as socket descriptor for communicating with
- qemu proxy fs drier. Usually a helper like libvirt will create
- socketpair and pass one of the fds as parameter to -f|--fd
- @item -s|--socket socket-file
- Creates named socket file for communicating with qemu proxy fs driver
- @item -u|--uid uid -g|--gid gid
- uid:gid combination to give access to named socket file
- @item -n|--nodaemon
- Run as a normal program. By default program will run in daemon mode
- @end table
- @c man end
- @setfilename virtfs-proxy-helper
- @settitle QEMU 9p virtfs proxy filesystem helper
- @c man begin AUTHOR
- M. Mohan Kumar
- @c man end
|