 e6b636779b
			
		
	
	
		e6b636779b
		
	
	
	
	
		
			
			Currently the qemu-nbd program will auto-detect the format of any disk it is given. This behaviour is known to be insecure. For example, if qemu-nbd initially exposes a 'raw' file to an unprivileged app, and that app runs 'qemu-img create -f qcow2 -o backing_file=/etc/shadow /dev/nbd0' then the next time the app is started, the qemu-nbd will now detect it as a 'qcow2' file and expose /etc/shadow to the unprivileged app. The only way to avoid this is to explicitly tell qemu-nbd what disk format to use on the command line, completely disabling auto-detection. This patch adds a '-f' / '--format' arg for this purpose, mirroring what is already available via qemu-img and qemu commands. qemu-nbd --format raw -p 9000 evil.img will now always use raw, regardless of what format 'evil.img' looks like it contains Signed-off-by: Daniel P. Berrange <berrange@redhat.com> [Use errx, not err. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @example
 | |
| @c man begin SYNOPSIS
 | |
| usage: qemu-nbd [OPTION]...  @var{filename}
 | |
| @c man end
 | |
| @end example
 | |
| 
 | |
| @c man begin DESCRIPTION
 | |
| 
 | |
| Export QEMU disk image using NBD protocol.
 | |
| 
 | |
| @c man end
 | |
| 
 | |
| @c man begin OPTIONS
 | |
| @table @option
 | |
| @item @var{filename}
 | |
|  is a disk image filename
 | |
| @item -p, --port=@var{port}
 | |
|   port to listen on (default @samp{1024})
 | |
| @item -o, --offset=@var{offset}
 | |
|   offset into the image
 | |
| @item -b, --bind=@var{iface}
 | |
|   interface to bind to (default @samp{0.0.0.0})
 | |
| @item -k, --socket=@var{path}
 | |
|   Use a unix socket with path @var{path}
 | |
| @item -r, --read-only
 | |
|   export read-only
 | |
| @item -P, --partition=@var{num}
 | |
|   only expose partition @var{num}
 | |
| @item -s, --snapshot
 | |
|   use snapshot file
 | |
| @item -n, --nocache
 | |
| @itemx --cache=@var{cache}
 | |
|   set cache mode to be used with the file.  See the documentation of
 | |
|   the emulator's @code{-drive cache=...} option for allowed values.
 | |
| @item --aio=@var{aio}
 | |
|   choose asynchronous I/O mode between @samp{threads} (the default)
 | |
|   and @samp{native} (Linux only).
 | |
| @item --discard=@var{discard}
 | |
|   toggles whether @dfn{discard} (also known as @dfn{trim} or @dfn{unmap})
 | |
|   requests are ignored or passed to the filesystem.  The default is no
 | |
|   (@samp{--discard=ignore}).
 | |
| @item -c, --connect=@var{dev}
 | |
|   connect @var{filename} to NBD device @var{dev}
 | |
| @item -d, --disconnect
 | |
|   disconnect the specified device
 | |
| @item -e, --shared=@var{num}
 | |
|   device can be shared by @var{num} clients (default @samp{1})
 | |
| @item -f, --format=@var{fmt}
 | |
|   force block driver for format @var{fmt} instead of auto-detecting
 | |
| @item -t, --persistent
 | |
|   don't exit on the last connection
 | |
| @item -v, --verbose
 | |
|   display extra debugging information
 | |
| @item -h, --help
 | |
|   display this help and exit
 | |
| @item -V, --version
 | |
|   output version information and exit
 | |
| @end table
 | |
| 
 | |
| @c man end
 | |
| 
 | |
| @ignore
 | |
| 
 | |
| @setfilename qemu-nbd
 | |
| @settitle QEMU Disk Network Block Device Server
 | |
| 
 | |
| @c man begin AUTHOR
 | |
| Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>.
 | |
| This is free software; see the source for copying conditions.  There is NO
 | |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
| @c man end
 | |
| 
 | |
| @c man begin SEEALSO
 | |
| qemu-img(1)
 | |
| @c man end
 | |
| 
 | |
| @end ignore
 |