Annotation of qemu/fsdev/virtfs-proxy-helper.texi, revision 1.1

1.1     ! root        1: @example
        !             2: @c man begin SYNOPSIS
        !             3: usage: virtfs-proxy-helper options
        !             4: @c man end
        !             5: @end example
        !             6: 
        !             7: @c man begin DESCRIPTION
        !             8: @table @description
        !             9: Pass-through security model in QEMU 9p server needs root privilege to do
        !            10: few file operations (like chown, chmod to any mode/uid:gid).  There are two
        !            11: issues in pass-through security model
        !            12: 
        !            13: 1) TOCTTOU vulnerability: Following symbolic links in the server could
        !            14: provide access to files beyond 9p export path.
        !            15: 
        !            16: 2) Running QEMU with root privilege could be a security issue.
        !            17: 
        !            18: To overcome above issues, following approach is used: A new filesytem
        !            19: type 'proxy' is introduced. Proxy FS uses chroot + socket combination
        !            20: for securing the vulnerability known with following symbolic links.
        !            21: Intention of adding a new filesystem type is to allow qemu to run
        !            22: in non-root mode, but doing privileged operations using socket IO.
        !            23: 
        !            24: Proxy helper(a stand alone binary part of qemu) is invoked with
        !            25: root privileges. Proxy helper chroots into 9p export path and creates
        !            26: a socket pair or a named socket based on the command line parameter.
        !            27: QEMU and proxy helper communicate using this socket. QEMU proxy fs
        !            28: driver sends filesystem request to proxy helper and receives the
        !            29: response from it.
        !            30: 
        !            31: Proxy helper is designed so that it can drop the root privilege with
        !            32: retaining capbilities needed for doing filesystem operations only.
        !            33: 
        !            34: @end table
        !            35: @c man end
        !            36: 
        !            37: @c man begin OPTIONS
        !            38: The following options are supported:
        !            39: @table @option
        !            40: @item -h
        !            41: @findex -h
        !            42: Display help and exit
        !            43: @item -p|--path path
        !            44: Path to export for proxy filesystem driver
        !            45: @item -f|--fd socket-id
        !            46: Use given file descriptor as socket descriptor for communicating with
        !            47: qemu proxy fs drier. Usually a helper like libvirt will create
        !            48: socketpair and pass one of the fds as parameter to -f|--fd
        !            49: @item -s|--socket socket-file
        !            50: Creates named socket file for communicating with qemu proxy fs driver
        !            51: @item -u|--uid uid -g|--gid gid
        !            52: uid:gid combination to give access to named socket file
        !            53: @item -n|--nodaemon
        !            54: Run as a normal program. By default program will run in daemon mode
        !            55: @end table
        !            56: @c man end
        !            57: 
        !            58: @setfilename virtfs-proxy-helper
        !            59: @settitle QEMU 9p virtfs proxy filesystem helper
        !            60: 
        !            61: @c man begin AUTHOR
        !            62: M. Mohan Kumar
        !            63: @c man end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.