 ec32be73ed
			
		
	
	
		ec32be73ed
		
			
		
	
	
	
	
		
			
			When calling su with a specific script, specify /bin/sh shell to be sure to use posix compliant shell. User shell may not be a one (like fish). Fixes QubesOS/qubes-issues#5135
		
			
				
	
	
		
			17 lines
		
	
	
		
			560 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			560 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| # old API - get the user from caller
 | |
| #read -r IGNORE_USERNAME
 | |
| 
 | |
| # use default user provided in QubesDB, or hardcoded 'user' - this must be the
 | |
| # same as the X session owner
 | |
| USERNAME=$(qubesdb-read /default-user || echo 'user')
 | |
| cmd='echo $$ >> /tmp/qubes-session-waiter; [ ! -f /tmp/qubes-session-env ] && exec sleep inf'
 | |
| if [ "$(id -un)" = "$USERNAME" ]; then
 | |
|     sh -c "$cmd" 2>/dev/null
 | |
| else
 | |
|     su -s /bin/sh -c "$cmd" - "$USERNAME" 2> /dev/null
 | |
| fi
 | |
| # the above line is _expected_ to be terminated by a signal, don't treat this as a failure
 | |
| exit 0
 |