We have a virtual win7 machine that needs to be rebooted remotely from time to time. We created a restricted user account with the shell set to rbash so a user can ssh in and reboot the virtual machine via virsh when needed.

user@machine:~$ echo $SHELL
user@machine:~$ virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # list
error: failed to connect to the hypervisor
error: no valid connection
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

virsh and virt-top do run, but the user can't do anything inside virsh. How can we allow this user to run virsh commands from an rbash shell?

  • I think this is not rbash related, but an ordinary permission-problem. The user in question has to have read/write permissions on the socket it tries to open. – Andreas Wiese Mar 21 '16 at 16:55

Adding my comment as an answer, as using ssh to connect to the host, and then using a dedicated user running rbash seems only a workaround to me.

As a less hackish alternative to one could simply connect remotely to libvirtd via virsh.
See e.g. https://libvirt.org/uri.html and especially the section about remote URI's


Andreas is correct, it is not an rbash problem; adding user to the group libvirtd solves the problem.

  • FWIW, as an alternative to the ssh + rbash approach you could simply connect remotely to libvirtd via virsh - see e.g. libvirt.org/uri.html and especially the section about remote URI's: libvirt.org/uri.html#URI_remote – doktor5000 Mar 22 '16 at 7:45
  • The comment from @doktor5000 should be the accepted answer. – John Mar 23 '16 at 15:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.