Dear Bo, Hans-Werner, and Richard, I wish at first to thank you for your help. Then, I think that a small recap could be useful. Please, select a fixed font ;-)
a) vmwarearts (in vmware-dsp): user libvmdsp.so result ------ ----------- ----------- normal chmod -s no preload root chmod -s no /dev/dsp normal chmod +s no preload root chmod +s no /dev/dsp b) aoss32 (in alsa-oss): user emul/.../libaoss.so.0.0.0 result ------ ------------------------- ---------- normal chmod -s no preload root chmod -s no preload normal chmod +s no preload root chmod +s no preload c) aoss (in alsa-oss): user libaoss.so.0.0.0 result ------ ---------------- ---------- normal chmod -s no preload root chmod -s sound works normal chmod +s no preload root chmod +s sound works As to: Richard: > Sergio, try doing chmod +s on /emul/linux/x86/usr/lib/libaoss.so There is no such file! Now: i) I can't understand why root can't open /dev/dsp when running vmwarearts. I can only guess that aoss works better ;-) ii) suid and sgid bits look insignificant (!) Hans-Werner Hilse: > You answered my last question about why you are mocking with "chmod > +s" with something along the lines of "I felt like I had to". What > makes you think you have to? Why should those libraries be set with > setuid? Sorry, my answer was evasive because I've googled a lot and can't remember where I've read that I had to ;-) However, I also tried installing vmwaredsp-1.3 manually, and in the install script, runme.sh, there is the line: install -c -m 4444 64/libvmdsp.so $LIB64/libvmdsp.so (but even the vmwarearts in this package does not work). Richard's answer: > This is necessary because vmware is a setuid executable, > and you cannot use LD_PRELOAD with setuid executables > unless those libraries are *also* setuid. look very interesting, because, as far as I can understand.... testing ~ # cd /opt/vmware/workstation/bin testing bin # l total 1872 -rwxr-xr-x 1 root root 12292 Nov 1 00:20 vm-support* -rwxr-xr-x 1 root root 6160 Nov 1 00:20 vmnet-bridge* -rwxr-xr-x 1 root root 110872 Nov 1 00:20 vmnet-dhcpd* -rwxr-xr-x 1 root root 118884 Nov 1 00:20 vmnet-natd* -rwxr-xr-x 1 root root 5192 Nov 1 00:20 vmnet-netifup* -rwxr-xr-x 1 root root 8140 Nov 1 00:20 vmnet-sniffer* -rwxr-xr-x 1 root root 4574 Nov 1 00:20 vmplayer* -rwxr-xr-x 1 root root 4946 Nov 1 00:20 vmrun* -rwxr-xr-x 1 root root 4570 Nov 1 00:20 vmware* -rwxr-xr-x 1 root root 268975 Nov 1 00:20 vmware-config.pl* -rwxr-xr-x 1 root root 486368 Nov 1 00:20 vmware-loop* -rwxr-xr-x 1 root root 25488 Nov 1 00:20 vmware-mount.pl* -rws--x--- 1 root vmware 10852 Nov 1 00:20 vmware-ping* -rwxr-xr-x 1 root root 90467 Nov 1 00:20 vmware-uninstall.pl* -rwxr-xr-x 1 root root 694312 Nov 1 00:20 vmware-vdiskmanager* testing bin # my vmware *is not* setuid! However, nothing changes if I do chmod +s on libaoss *and* vmware: sound only works when I am root, otherwise libaoss is not preloaded. BTW, I've installed Ubunto 6.10 and looked at what happened. Well.... vmwareesd... works!!! Linux kernel: 2.6.17 i686 glibc: 2.4 libvmdsp.so: setuid (!) I am in the dark. Also because googling around I can see that a similar "preload" problem occurs rather often in several different cases, but there is seldom a solution.... Eventually I'll run vmware as root when I'll need sound ;-) Thanks again Sergio -- gentoo-user@gentoo.org mailing list