On Sun, Sep 24, 2017 at 06:01:00PM +0200, Jesper Wallin wrote:
> Hi all,
> 
> If a machine is configured in vm.conf to have the owner of a regular
> user, the ownership of the machine is lost upon reboot and root becomes
> the new owner.  When restarting the machine, the tty is kept open and
> the permissions of the tty are untouched.  The user can therefore access
> the console, but it's not possible to stop the machine since the vmd
> owner is root.
> 
> The patch below simply leave vm->vm_uid untouched if the keeptty is set.
> 
> 
> Jesper Wallin
> 
> 
> Index: vmd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/vmd/vmd.c,v
> retrieving revision 1.69
> diff -u -p -r1.69 vmd.c
> --- vmd.c     8 Sep 2017 06:24:31 -0000       1.69
> +++ vmd.c     24 Sep 2017 15:04:31 -0000
> @@ -413,7 +413,7 @@ vmd_dispatch_vmm(int fd, struct privsep_
>                       log_debug("%s: about to stop vm id %d with tty open",
>                           __func__, vm->vm_vmid);
>                       vm_stop(vm, 1);
> -                     config_setvm(ps, vm, (uint32_t)-1, 0);
> +                     config_setvm(ps, vm, (uint32_t)-1, vm->vm_uid);
>               }
>               break;
>       case IMSG_VMDOP_GET_INFO_VM_DATA:
> @@ -1061,9 +1061,10 @@ vm_stop(struct vmd_vm *vm, int keeptty)
>               close(vm->vm_kernel);
>               vm->vm_kernel = -1;
>       }
> -     vm->vm_uid = 0;
> -     if (!keeptty)
> +     if (!keeptty) {
>               vm_closetty(vm);
> +             vm->vm_uid = 0;
> +     }
>  }
>  
>  void
> 

committed, thanks.

Reply via email to