===== Multiuser mode =====
A word of warning: I did this and it works for me. Still, the procedure is quite complicated and I won't recommended it to unexperienced Linux users.
If you wish to understand what i'm doing here, first read [[boot process:the boot process]] explanation. And enable [[howto:installrescuemode|rescue console]], just in case.
STEP 1\\
add another user (i'm using user //guest// as an example) and make it part of groups audio,video,plugdev,users,fuse (and others?). setup a password for this new user.
STEP 2\\
we're going to hack the following files: /usr/sbin/services.sh /usr/bin/startx /usr/bin/startsimple.sh /etc/sudoers . make backup copy of them (i use to do something like //cp /usr/sbin/services.sh /usr/sbin/services.sh.orig// )
I won't tell this again. MAKE BACKUPS to all implied files!
STEP 3\\
cp /usr/bin/startx /usr/bin/startx.orig
# edit /usr/bin/startx and insert a line with 'exit 0' just before the first line
### like this
#!/bin/sh
exit 0
...
It's right, the startx command is doing nothing now.
STEP 4\\
edit /usr/sbin/services.sh and add, somewhere in the end
/usr/sbin/chvt 4
while : ; do /sbin/getty 38400 tty4 ; done &
while : ; do /sbin/getty 38400 tty5 ; done &
Uh, oh. I forgot, you'll have to install console-tools (for chvt) from a xandros repo.
STEP 5\\
create new (executable!) file /usr/sbin/sys_uevent_add.sh with content
#!/bin/sh
# by vang
# this script is called from /usr/bin/startsimple.sh (as root via sudo)
for i in /sys/block/s[dr]?/uevent ; do
echo add > $i
done
STEP 6\\
* edit /usr/bin/startsimple.sh.
* add // [ -z "$USER" ] && export USER=user // at the beginning
* hunt in the file where they are using //user// and replace it with //$USER// -- CAVEAT: as part of /home/user things are not that clear
* replace the block
for i in /sys/block/s[dr]?/uevent ; do
sudo /bin/sh -c "echo add > $i"
done with //sudo /usr/sbin/sys_uevent_add.sh//. Twice!
* replace //sudo rm -f /tmp/kdesession /tmp/nologin// with //sudo /bin/rm -f /tmp/kdesession /tmp/nologin//
* replace //sudo rm /tmp/nologin// with //sudo /bin/rm /tmp/nologin//
STEP 7\\
new executable file /usr/bin/x with content
#!/bin/sh
exec /usr/bin/startx.orig
STEP 8\\
sudo visudo (i.e. edit /etc/sudoers).
* add
# Cmnd alias specification
# sudo stuff used in startx -> /usr/bin/startsimple.sh
Cmnd_Alias MYSTARTX = /usr/bin/sessreg, \
/usr/sbin/sys_uevent_add.sh, \
/bin/rm -f /tmp/kdesession /tmp/nologin, \
/bin/rm /tmp/nologin
More commands will probably get added here.
The idea is that i don't want any user to be able to do 'sudo bash / sudo anything' on the system.
* add for user //guest//, at the end of the file (leave lines rot root and user as they are)
guest ALL=(ALL) NOPASSWD:MYSTARTX
STEP 9\\
reboot. it should gave you a nice text only terminal (on tty4) with the login prompt. //user// and password. Still in text mode. Now just use the command **x** to start the graphical mode. You can leave the graphical mode with crtl-alt-backspace (killing X11 session) and you're back in terminal. logout and login as user guest. have fun ;-)
[[http://www.portabilite.info|rio b and you]] [[http://www.obtenir-rio.info|numero rio]]