wg-quick: stat the correct enclosing folder of config file
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
		
							parent
							
								
									753dc179b6
								
							
						
					
					
						commit
						d8ad40da25
					
				@ -30,7 +30,8 @@ parse_options() {
 | 
			
		||||
	[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,16}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
 | 
			
		||||
	[[ -e $CONFIG_FILE ]] || die "\`$CONFIG_FILE' does not exist"
 | 
			
		||||
	[[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,16})\.conf$ ]] || die "The config file must be a valid interface name, followed by .conf"
 | 
			
		||||
	((($(stat -c '0%#a' "$CONFIG_FILE") & $(stat -c '0%#a' "/etc/wireguard") & 0007) == 0)) || echo "Warning: \`$CONFIG_FILE' is world accessible" >&2
 | 
			
		||||
	CONFIG_FILE="$(readlink -f "$CONFIG_FILE")"
 | 
			
		||||
	((($(stat -c '0%#a' "$CONFIG_FILE") & $(stat -c '0%#a' "${CONFIG_FILE%/*}") & 0007) == 0)) || echo "Warning: \`$CONFIG_FILE' is world accessible" >&2
 | 
			
		||||
	INTERFACE="${BASH_REMATCH[1]}"
 | 
			
		||||
	shopt -s nocasematch
 | 
			
		||||
	while read -r line || [[ -n $line ]]; do
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user