mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 20:44:16 +00:00 
			
		
		
		
	 a08b4a9fe6
			
		
	
	
		a08b4a9fe6
		
	
	
	
	
		
			
			Move the following tools documentation files to the new tools manual: docs/interop/qemu-img.rst docs/interop/qemu-nbd.rst docs/interop/virtfs-proxy-helper.rst docs/interop/qemu-trace-stap.rst docs/interop/virtiofsd.rst Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 20200217155415.30949-4-peter.maydell@linaro.org
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| QEMU 9p virtfs proxy filesystem helper
 | |
| ======================================
 | |
| 
 | |
| Synopsis
 | |
| --------
 | |
| 
 | |
| **virtfs-proxy-helper** [*OPTIONS*]
 | |
| 
 | |
| 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:
 | |
| 
 | |
| - TOCTTOU vulnerability: Following symbolic links in the server could
 | |
|   provide access to files beyond 9p export path.
 | |
| 
 | |
| - Running QEMU with root privilege could be a security issue.
 | |
| 
 | |
| To overcome above issues, following approach is used: A new filesystem
 | |
| 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.
 | |
| 
 | |
| The proxy helper is designed so that it can drop root privileges except
 | |
| for the capabilities needed for doing filesystem operations.
 | |
| 
 | |
| Options
 | |
| -------
 | |
| 
 | |
| The following options are supported:
 | |
| 
 | |
| .. program:: virtfs-proxy-helper
 | |
| 
 | |
| .. option:: -h
 | |
| 
 | |
|   Display help and exit
 | |
| 
 | |
| .. option:: -p, --path PATH
 | |
| 
 | |
|   Path to export for proxy filesystem driver
 | |
| 
 | |
| .. option:: -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 this option.
 | |
| 
 | |
| .. option:: -s, --socket SOCKET_FILE
 | |
| 
 | |
|   Creates named socket file for communicating with qemu proxy fs driver
 | |
| 
 | |
| .. option:: -u, --uid UID
 | |
| 
 | |
|   uid to give access to named socket file; used in combination with -g.
 | |
| 
 | |
| .. option:: -g, --gid GID
 | |
| 
 | |
|   gid to give access to named socket file; used in combination with -u.
 | |
| 
 | |
| .. option:: -n, --nodaemon
 | |
| 
 | |
|   Run as a normal program. By default program will run in daemon mode
 |