Handle root logins the same way as other users (#1269072)
root users are unconfined by definition, but they can be limited by SELinux so having privilege separation still makes sense. As a consequence we can remove hunk that handled this condition if we skipped forking.
This commit is contained in:
		
							parent
							
								
									22a08c3da4
								
							
						
					
					
						commit
						0ebe96b604
					
				| @ -122,17 +122,13 @@ index 07f9926..a97f8b7 100644 | |||||||
|  	/* Change our root directory */ |  	/* Change our root directory */ | ||||||
|  	if (chroot(_PATH_PRIVSEP_CHROOT_DIR) == -1) |  	if (chroot(_PATH_PRIVSEP_CHROOT_DIR) == -1) | ||||||
|  		fatal("chroot(\"%s\"): %s", _PATH_PRIVSEP_CHROOT_DIR, |  		fatal("chroot(\"%s\"): %s", _PATH_PRIVSEP_CHROOT_DIR, | ||||||
| @@ -768,6 +772,13 @@ privsep_postauth(Authctxt *authctxt)
 | @@ -755,6 +755,9 @@ privsep_postauth(Authctxt *authctxt)
 | ||||||
|  	do_setusercontext(authctxt->pw); |  | ||||||
|   |  | ||||||
|   skip: |  | ||||||
| +#ifdef WITH_SELINUX
 |  | ||||||
| +	/* switch SELinux content for root too */
 |  | ||||||
| +	if (authctxt->pw->pw_uid == 0) {
 |  | ||||||
| +		sshd_selinux_copy_context();
 |  | ||||||
| +	}
 |  | ||||||
| +#endif
 |  | ||||||
| +
 |  | ||||||
|  	/* It is safe now to apply the key state */ |  | ||||||
|  	monitor_apply_keystate(pmonitor); |  | ||||||
|   |   | ||||||
|  |  #ifdef DISABLE_FD_PASSING | ||||||
|  |  	if (1) { | ||||||
|  | +#elif defined(WITH_SELINUX)
 | ||||||
|  | +	if (options.use_login) {
 | ||||||
|  | +		/* even root user can be confined by SELinux */
 | ||||||
|  |  #else | ||||||
|  |  	if (authctxt->pw->pw_uid == 0 || options.use_login) { | ||||||
|  |  #endif | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user