[libvirt-users] lxc: Add /dev/tty to lxcContainerPopulateDevices() ?

Daniel P. Berrange berrange at redhat.com
Thu May 17 08:01:06 UTC 2012


On Wed, May 16, 2012 at 03:44:19PM -0700, Sukadev Bhattiprolu wrote:
> Hi,
> 
> src/lxc/lxc_container.c:lxcContainerPopulateDevices() has this table
> of devices that are automatically created when an lxc container is
> started.
> 
>     const struct {
>         int maj;
>         int min;
>         mode_t mode;
>         const char *path;
>     } devs[] = {
>         { LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_NULL, 0666, "/dev/null" },
>         { LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_ZERO, 0666, "/dev/zero" },
>         { LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_FULL, 0666, "/dev/full" },
>         { LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_RANDOM, 0666, "/dev/random" },
>         { LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_URANDOM, 0666, "/dev/urandom" },
>     };
> 
> Can we add '/dev/tty' to this list ?
> 
> We were trying to run 'smbpasswd -a user' inside a container without
> /dev/tty and the fopen("/dev/tty", "w+") in smbpasswd made /dev/tty
> a regular file, breaking man(1), less(1), and ofcourse smbpasswd :-)
> 
> Sure we can add /dev/tty to container's rc.local or something, but
> wouldn't it be in the same category as say, /dev/null or /dev/zero ?

No, we can't just pass in the host's /dev/tty device to the
container. We need to virtualize it, but this is not really
very easy todo if we need to take account of multiple consoles.
Probably as a temporar hack, we can just symlink it to /dev/tty1
and try to figure out a proper fix later

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvirt-users mailing list