<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yobi.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=57.67.161.6</id>
	<title>YobiWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yobi.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=57.67.161.6"/>
	<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Special:Contributions/57.67.161.6"/>
	<updated>2026-04-28T00:54:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Encfs&amp;diff=2362</id>
		<title>Encfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Encfs&amp;diff=2362"/>
		<updated>2007-07-17T07:28:25Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* PAM module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Install==&lt;br /&gt;
 apt-get install [http://arg0.net/users/vgough/encfs.html encfs]&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need the [http://fuse.sourceforge.net/ fuse] module:&lt;br /&gt;
&lt;br /&gt;
 apt-get install fuse-source fuse-utils&lt;br /&gt;
 cd /usr/src; tar xjf fuse.tar.bz2&lt;br /&gt;
 cd linux; make-kpkg --us --uc --revision $REVISION --append-to-version $APPEND modules_image&lt;br /&gt;
&lt;br /&gt;
Note that fuse is already present in the last kernel versions (at least 2.6.15)&lt;br /&gt;
&lt;br /&gt;
Test:&lt;br /&gt;
&lt;br /&gt;
* Under Debian, the user must be member of the fuse group to have the right to use fuse:&lt;br /&gt;
 adduser phil fuse&lt;br /&gt;
* To load automatically the module fuse:&lt;br /&gt;
 echo fuse &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
* To mount:&lt;br /&gt;
 encfs /home/user/crypt-raw /home/user/crypt%%%First time, choose &amp;quot;p&amp;quot; for paranoia settings&lt;br /&gt;
* To unmount:&lt;br /&gt;
 fusermount -u /home/user/crypt&lt;br /&gt;
&lt;br /&gt;
Another cool use of fuse is [http://shfs.sourceforge.net/ sshfs] (apt-get install sshfs)&lt;br /&gt;
&amp;lt;br&amp;gt;For other cool stuffs, check [http://fuse.sourceforge.net/wiki/index.php/FileSystems here], among others the amazing [http://unit.aist.go.jp/itri/knoppix/http-fuse/index-en.html HTTP-FUSE-KNOPPIX]&lt;br /&gt;
&amp;lt;br&amp;gt;Note on [http://www.ricardis.tudelft.nl/~vincent/fusesmb/ fusesmb]: contrary to use of smbfs where users are identified as USER/DOMAIN, here ~/.smb/fusesmb.conf must use username=DOMAIN/USER notation. On big Windows networks, I&#039;ve problems discovering the neighborhood, in that case it&#039;s much easier to populate ~/.smb/fusesmb.cache by yourself with lines such as /WORKGROUP/COMPUTER/SHARE&lt;br /&gt;
&lt;br /&gt;
==Encfs homedir==&lt;br /&gt;
&lt;br /&gt;
===Personal script===&lt;br /&gt;
&lt;br /&gt;
My first attempt was a bash script:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # This scripts automatically attempts to mount&lt;br /&gt;
 # an encrypted home directory at login time&lt;br /&gt;
 #&lt;br /&gt;
 # Usage: how to setup this for e.g. user &amp;lt;foo&amp;gt;&lt;br /&gt;
 # Put this script as shell of the user foo in /etc/passwd instead of /bin/bash&lt;br /&gt;
 # Encrypted data will be under /home/.foo and mount point will be /home/foo&lt;br /&gt;
 # Don&#039;t forget to put user foo in the group &amp;quot;fuse&amp;quot;: adduser foo fuse&lt;br /&gt;
 #&lt;br /&gt;
 # Requirements:&lt;br /&gt;
 #   Encfs, module fuse and fuse-utils&lt;br /&gt;
 #&lt;br /&gt;
 # Copyright:&lt;br /&gt;
 #   2005, Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # License:&lt;br /&gt;
 #   This script is under GPLv3 or later&lt;br /&gt;
 #&lt;br /&gt;
 # History:&lt;br /&gt;
 # v0.02&lt;br /&gt;
 #   Change $(whoami) to $(USER)&lt;br /&gt;
 # v0.01&lt;br /&gt;
 #   Initial version&lt;br /&gt;
 #&lt;br /&gt;
 # TODO:&lt;br /&gt;
 #   Check [xkg]dm login capability&lt;br /&gt;
 #   Abs paths&lt;br /&gt;
 #   Test presence of progs&lt;br /&gt;
 #   Test used only as login&lt;br /&gt;
 &lt;br /&gt;
 # When using several users with the same UID, only environment&lt;br /&gt;
 # variables USER and HOME tell the difference&lt;br /&gt;
 # So don&#039;t use whoami but USER&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Welcome $USER, please type your master key :-)&amp;quot;&lt;br /&gt;
 # Mount the home dir&lt;br /&gt;
 /usr/bin/encfs /home/.$USER $HOME&lt;br /&gt;
 # Check if encrypted fs was mounted properly otherwise exit&lt;br /&gt;
 /bin/cat /etc/mtab|/bin/grep -q &amp;quot;^encfs $HOME&amp;quot;||exit 1&lt;br /&gt;
 # Required to refresh the home directory&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 # Finally gives a bash to the user&lt;br /&gt;
 /bin/bash&lt;br /&gt;
 # Required to exit the home dir to be able to unmount it&lt;br /&gt;
 cd /&lt;br /&gt;
 # Unmount the home dir&lt;br /&gt;
 /usr/bin/fusermount -u $HOME&lt;br /&gt;
&lt;br /&gt;
===PAM module===&lt;br /&gt;
 &lt;br /&gt;
There exists an [http://hollowtube.mine.nu/wiki/index.php?n=Projects.PamEncfs encfs PAM].&lt;br /&gt;
&amp;lt;br&amp;gt;My notes for a Debian installation:&lt;br /&gt;
 &lt;br /&gt;
 cp pam_encfs.so /lib/security&lt;br /&gt;
 &lt;br /&gt;
 /etc/pam.d/common-auth:&lt;br /&gt;
 #auth    required         pam_unix.so nullok_secure&lt;br /&gt;
 auth    sufficient      pam_encfs.so&lt;br /&gt;
 auth    required        pam_unix.so use_first_pass nullok_secure&lt;br /&gt;
 &lt;br /&gt;
 /etc/pam.d/common-session:&lt;br /&gt;
 session required        pam_encfs.so&lt;br /&gt;
 session required        pam_unix.so&lt;br /&gt;
 &lt;br /&gt;
 /etc/security/pam_encfs.conf:&lt;br /&gt;
 drop_permissions&lt;br /&gt;
 encfs_default&lt;br /&gt;
 fuse_default&lt;br /&gt;
 - /home/encfs - - -&lt;br /&gt;
 &lt;br /&gt;
 #To add a user with encfs homedir:&lt;br /&gt;
 adduser testuser (put him in the fuse group if you have one)&lt;br /&gt;
 mkdir -p /home/encfs/testuser /home/testuser&lt;br /&gt;
 chown testuser:testuser /home/encfs/testuser /home/testuser&lt;br /&gt;
 su testuser&lt;br /&gt;
 encfs /home/encfs/testuser  /home/testuser&lt;br /&gt;
 #*use same password as your login atm*&lt;br /&gt;
 fusermount -u /home/testuser&lt;br /&gt;
 &lt;br /&gt;
 #To enable encfs homedir on existing user:&lt;br /&gt;
 sudo mkdir -p /home/encfs/phil /home/encfs/tmp&lt;br /&gt;
 sudo chmod 777 /home/encfs/tmp&lt;br /&gt;
 sudo chown phil:phil /home/encfs/phil&lt;br /&gt;
 #*use your main password on next part*&lt;br /&gt;
 encfs /home/encfs/phil /home/encfs/tmp&lt;br /&gt;
 cd /home/phil&lt;br /&gt;
 find . -xdev | cpio -pamd /home/encfs/tmp&lt;br /&gt;
 fusermount -u /home/encfs/tmp&lt;br /&gt;
 cd /&lt;br /&gt;
 sudo mv /home/phil /home/phil.BAK&lt;br /&gt;
 sudo mkdir /home/phil&lt;br /&gt;
 sudo chown phil:phil /home/phil&lt;br /&gt;
 sudo rmdir /home/encfs/tmp&lt;br /&gt;
 #*logout*&lt;br /&gt;
&lt;br /&gt;
Problem after fuse upgrade:&lt;br /&gt;
* didn&#039;t work anymore.&lt;br /&gt;
* I had to enable &amp;quot;user_allow_other&amp;quot; in /etc/fuse.conf&lt;br /&gt;
&lt;br /&gt;
Problems:&lt;br /&gt;
&lt;br /&gt;
* --idle=1 is nice but how to avoid unwanted auto umount when still logged? (pam_encfs.so should maybe keep a file/dir open)&lt;br /&gt;
* if drop_permissions disabled, root needs explicit write access to user&#039;s home mount point&lt;br /&gt;
* if drop_permissions disabled and --public disabled, HOME env var set by default to / (while it was apparently defined in pam_encfs as mount point path was correctly found)&lt;br /&gt;
** No directory, logging in with HOME=/&lt;br /&gt;
** if drop_permissions disabled and --public enabled, no problem.&lt;br /&gt;
** Don&#039;t know how to solve that&lt;br /&gt;
* specific fuse options added only if generic fuse_default declared&lt;br /&gt;
** patch:&lt;br /&gt;
 --- pam_encfs.c.orig   :50:29.000000000 +0200&lt;br /&gt;
 +++ pam_encfs.c:34:46.000000000 +0200&lt;br /&gt;
 @@ -427,11 +427,11 @@&lt;br /&gt;
    arg_pos += buildCmd(arg,arg_pos,path);&lt;br /&gt;
    arg_pos += buildCmd(arg,arg_pos,targetpath);&lt;br /&gt;
 &lt;br /&gt;
 -  if (strlen(default_fuse_options) &amp;gt; 0) {&lt;br /&gt;
 -    if (strlen(fuse_options) &amp;gt; 0) {&lt;br /&gt;
 +  if (strlen(default_fuse_options) &amp;gt; 0 &amp;amp;&amp;amp; strlen(fuse_options) &amp;gt; 0) {&lt;br /&gt;
        strcat(fuse_options,&amp;quot;,&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
 -    strcat(fuse_options,default_fuse_options);&lt;br /&gt;
 +  strcat(fuse_options,default_fuse_options);&lt;br /&gt;
 +  if (strlen(fuse_options) &amp;gt; 0) {&lt;br /&gt;
      arg_pos += buildCmd(arg,arg_pos,&amp;quot;--&amp;quot;);&lt;br /&gt;
      arg_pos += buildCmd(arg,arg_pos,&amp;quot;-o&amp;quot;);&lt;br /&gt;
      arg_pos += buildCmd(arg,arg_pos,fuse_options);&lt;br /&gt;
* if fuse_default or encfs_default empty, garbage produced on call to encfs or fuse&lt;br /&gt;
** patch:&lt;br /&gt;
 @@ -235,13 +235,12 @@&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      if (strcmp(&amp;quot;encfs_default&amp;quot;,username) == 0) {&lt;br /&gt;
 -&lt;br /&gt;
 -      if (!strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
 +      if (parsed == 2 &amp;amp;&amp;amp; !strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
          strcpy(default_encfs_options,path);&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      if (strcmp(&amp;quot;fuse_default&amp;quot;,username) == 0) {&lt;br /&gt;
 -      if (!strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
 +      if (parsed == 2 &amp;amp;&amp;amp; !strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
          strcpy(default_fuse_options,path);&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
* multiple options not supported for encfs_default&lt;br /&gt;
** patch:&lt;br /&gt;
 @@ -253,6 +252,7 @@&lt;br /&gt;
        if (strcmp(&amp;quot;-&amp;quot;,fuse_options) == 0)&lt;br /&gt;
          strcpy(fuse_options,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 +      searchAndReplace(default_encfs_options);&lt;br /&gt;
        searchAndReplace(encfs_options);&lt;br /&gt;
 &lt;br /&gt;
        if ((strcmp(user,username) == 0) || (strcmp(&amp;quot;-&amp;quot;,username) == 0)) {&lt;br /&gt;
* On some circumstances, fusermount fails while it shouldn&#039;t:&lt;br /&gt;
 testphil@mercure:~$ mount&lt;br /&gt;
 [...]&lt;br /&gt;
 encfs on /home/phil type fuse (rw,nosuid,nodev,default_permissions,user=phil)&lt;br /&gt;
 encfs on /home/testphil type fuse (rw,nosuid,nodev,default_permissions,user=testphil)&lt;br /&gt;
 testphil@mercure:~$ logout&lt;br /&gt;
 fusermount: entry for /home/testphil not found in /etc/mtab&lt;br /&gt;
 phil@mercure:~$ mount&lt;br /&gt;
 [...]&lt;br /&gt;
 encfs on /home/phil type fuse (rw,nosuid,nodev,default_permissions,user=phil)&lt;br /&gt;
 encfs on /home/testphil type fuse (rw,nosuid,nodev,default_permissions,user=testphil)&lt;br /&gt;
 phil@mercure:~$ sudo su testphil -c &amp;quot;fusermount -u /home/testphil&amp;quot;&lt;br /&gt;
 * and here it works with exactly the same command*&lt;br /&gt;
* /etc/pam_encfs.conf is not the best place&lt;br /&gt;
** /usr/share/doc/libpam0g/Debian-PAM-~MiniPolicy.gz tells to have /lib/security/encfs.conf which is awful&lt;br /&gt;
** but libpam-modules has e.g. /etc/security/pam_env.conf so we will have /etc/security/pam_encfs.conf&lt;br /&gt;
** I should ask Sam Hartman &amp;lt;hartmans at ...&amp;gt; about this incoherence&lt;br /&gt;
** patch:&lt;br /&gt;
 @@ -81,7 +81,7 @@&lt;br /&gt;
  #define USERNAME_MAX           127&lt;br /&gt;
  #define PATH_MAX               256&lt;br /&gt;
  #define BUFSIZE ((USERNAME_MAX +1) + ((PATH_MAX+1) * 2))&lt;br /&gt;
 -#define CONFIGFILE     &amp;quot;/etc/pam_encfs.conf&amp;quot;&lt;br /&gt;
 +#define CONFIGFILE     &amp;quot;/etc/security/pam_encfs.conf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
  static void _pam_log ( int err, const char *format, ... );&lt;br /&gt;
  static char default_encfs_options[USERNAME_MAX];&lt;br /&gt;
* It looks like the argument allow_root given to fuse is transformed into allow_other when displayed by mount&lt;br /&gt;
&lt;br /&gt;
==Problems linked to the absence of locking support:==&lt;br /&gt;
&lt;br /&gt;
* encfs or fuse doesn&#039;t allow locking, cf [http://lists.samba.org/archive/samba/2004-April/085039.html similar problem with samba]&lt;br /&gt;
** Not sure which operation fails, flock() or open with O_EXCL flag.&lt;br /&gt;
* with KDE: could not read network connection list /home/.../.DCOPserver_machine__0&lt;br /&gt;
** Indeed dcopserver refuses to start (error in locking .ICEauthority)&lt;br /&gt;
** Solution: add to ~/.bashrc (or ~/.bash_profile if ~/.bash_profile does not include ~/.bashrc)&lt;br /&gt;
*** export XAUTHORITY=/tmp/.Xauthority-$USER&lt;br /&gt;
*** export ICEAUTHORITY=/tmp/.ICEauthority-$USER&lt;br /&gt;
* with unison: error (error message is not adequate...)&amp;lt;br&amp;gt;Fatal error: Warning: the archives are locked.&amp;lt;br&amp;gt;If no other instance of unison is running, the locks should be removed.&amp;lt;br&amp;gt;Please delete lock files as appropriate and try again.&lt;br /&gt;
** Create a soft link from ~/.unison to an dir out of the encfs&lt;br /&gt;
* with courier-imap: this doesn&#039;t work if Maildir is on encfs&lt;br /&gt;
** For read-only IMAP, create a soft link from e.g. /home/user_noencfs/Maildir out of the encfs to ~/Maildir (so your mails will remain encrypted!) and tell to courier-imap that your homedir is the /home/user_noencfs&lt;br /&gt;
** For read-write, this is not possible&lt;br /&gt;
==Problems with tiger==&lt;br /&gt;
I get a very similar problem as [http://www.mail-archive.com/tiger-user@nongnu.org/msg00006.html this guy]: I always get the following msg&lt;br /&gt;
 --CONFIG-- [con010c] Filesystem &#039;fuse&#039; used by &#039;encfs&#039; is not recognised as a local filesystem&lt;br /&gt;
and no way to get rid of it via /etc/tiger (except skipping all &amp;quot;system&amp;quot; tests) so I had also to add to /usr/lib/tiger/systems/Linux/2/gen_mounts a line with &lt;br /&gt;
 [ &amp;quot;$2&amp;quot; = &amp;quot;encfs&amp;quot; ] &amp;amp;&amp;amp; LOCAL=0&lt;br /&gt;
but I know next Debian upgrade will silently restore the original (or new) version :-(&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Encfs&amp;diff=2361</id>
		<title>Encfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Encfs&amp;diff=2361"/>
		<updated>2007-07-17T07:27:30Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* PAM module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Install==&lt;br /&gt;
 apt-get install [http://arg0.net/users/vgough/encfs.html encfs]&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need the [http://fuse.sourceforge.net/ fuse] module:&lt;br /&gt;
&lt;br /&gt;
 apt-get install fuse-source fuse-utils&lt;br /&gt;
 cd /usr/src; tar xjf fuse.tar.bz2&lt;br /&gt;
 cd linux; make-kpkg --us --uc --revision $REVISION --append-to-version $APPEND modules_image&lt;br /&gt;
&lt;br /&gt;
Note that fuse is already present in the last kernel versions (at least 2.6.15)&lt;br /&gt;
&lt;br /&gt;
Test:&lt;br /&gt;
&lt;br /&gt;
* Under Debian, the user must be member of the fuse group to have the right to use fuse:&lt;br /&gt;
 adduser phil fuse&lt;br /&gt;
* To load automatically the module fuse:&lt;br /&gt;
 echo fuse &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
* To mount:&lt;br /&gt;
 encfs /home/user/crypt-raw /home/user/crypt%%%First time, choose &amp;quot;p&amp;quot; for paranoia settings&lt;br /&gt;
* To unmount:&lt;br /&gt;
 fusermount -u /home/user/crypt&lt;br /&gt;
&lt;br /&gt;
Another cool use of fuse is [http://shfs.sourceforge.net/ sshfs] (apt-get install sshfs)&lt;br /&gt;
&amp;lt;br&amp;gt;For other cool stuffs, check [http://fuse.sourceforge.net/wiki/index.php/FileSystems here], among others the amazing [http://unit.aist.go.jp/itri/knoppix/http-fuse/index-en.html HTTP-FUSE-KNOPPIX]&lt;br /&gt;
&amp;lt;br&amp;gt;Note on [http://www.ricardis.tudelft.nl/~vincent/fusesmb/ fusesmb]: contrary to use of smbfs where users are identified as USER/DOMAIN, here ~/.smb/fusesmb.conf must use username=DOMAIN/USER notation. On big Windows networks, I&#039;ve problems discovering the neighborhood, in that case it&#039;s much easier to populate ~/.smb/fusesmb.cache by yourself with lines such as /WORKGROUP/COMPUTER/SHARE&lt;br /&gt;
&lt;br /&gt;
==Encfs homedir==&lt;br /&gt;
&lt;br /&gt;
===Personal script===&lt;br /&gt;
&lt;br /&gt;
My first attempt was a bash script:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # This scripts automatically attempts to mount&lt;br /&gt;
 # an encrypted home directory at login time&lt;br /&gt;
 #&lt;br /&gt;
 # Usage: how to setup this for e.g. user &amp;lt;foo&amp;gt;&lt;br /&gt;
 # Put this script as shell of the user foo in /etc/passwd instead of /bin/bash&lt;br /&gt;
 # Encrypted data will be under /home/.foo and mount point will be /home/foo&lt;br /&gt;
 # Don&#039;t forget to put user foo in the group &amp;quot;fuse&amp;quot;: adduser foo fuse&lt;br /&gt;
 #&lt;br /&gt;
 # Requirements:&lt;br /&gt;
 #   Encfs, module fuse and fuse-utils&lt;br /&gt;
 #&lt;br /&gt;
 # Copyright:&lt;br /&gt;
 #   2005, Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # License:&lt;br /&gt;
 #   This script is under GPLv3 or later&lt;br /&gt;
 #&lt;br /&gt;
 # History:&lt;br /&gt;
 # v0.02&lt;br /&gt;
 #   Change $(whoami) to $(USER)&lt;br /&gt;
 # v0.01&lt;br /&gt;
 #   Initial version&lt;br /&gt;
 #&lt;br /&gt;
 # TODO:&lt;br /&gt;
 #   Check [xkg]dm login capability&lt;br /&gt;
 #   Abs paths&lt;br /&gt;
 #   Test presence of progs&lt;br /&gt;
 #   Test used only as login&lt;br /&gt;
 &lt;br /&gt;
 # When using several users with the same UID, only environment&lt;br /&gt;
 # variables USER and HOME tell the difference&lt;br /&gt;
 # So don&#039;t use whoami but USER&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Welcome $USER, please type your master key :-)&amp;quot;&lt;br /&gt;
 # Mount the home dir&lt;br /&gt;
 /usr/bin/encfs /home/.$USER $HOME&lt;br /&gt;
 # Check if encrypted fs was mounted properly otherwise exit&lt;br /&gt;
 /bin/cat /etc/mtab|/bin/grep -q &amp;quot;^encfs $HOME&amp;quot;||exit 1&lt;br /&gt;
 # Required to refresh the home directory&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 # Finally gives a bash to the user&lt;br /&gt;
 /bin/bash&lt;br /&gt;
 # Required to exit the home dir to be able to unmount it&lt;br /&gt;
 cd /&lt;br /&gt;
 # Unmount the home dir&lt;br /&gt;
 /usr/bin/fusermount -u $HOME&lt;br /&gt;
&lt;br /&gt;
===PAM module===&lt;br /&gt;
 &lt;br /&gt;
There exists an [http://hollowtube.mine.nu/wiki/index.php?n=Projects.PamEncfs encfs PAM].&lt;br /&gt;
&amp;lt;br&amp;gt;My notes for a Debian installation:&lt;br /&gt;
 &lt;br /&gt;
 cp pam_encfs.so /lib/security&lt;br /&gt;
 &lt;br /&gt;
 /etc/pam.d/common-auth:&lt;br /&gt;
 #auth    required         pam_unix.so nullok_secure&lt;br /&gt;
 auth    sufficient      pam_encfs.so&lt;br /&gt;
 auth    required        pam_unix.so use_first_pass nullok_secure&lt;br /&gt;
 &lt;br /&gt;
 /etc/pam.d/common-session:&lt;br /&gt;
 session required        pam_encfs.so&lt;br /&gt;
 session required        pam_unix.so&lt;br /&gt;
 &lt;br /&gt;
 /etc/pam_encfs.conf:&lt;br /&gt;
 drop_permissions&lt;br /&gt;
 encfs_default&lt;br /&gt;
 fuse_default&lt;br /&gt;
 - /home/encfs - - -&lt;br /&gt;
 &lt;br /&gt;
 #To add a user with encfs homedir:&lt;br /&gt;
 adduser testuser (put him in the fuse group if you have one)&lt;br /&gt;
 mkdir -p /home/encfs/testuser /home/testuser&lt;br /&gt;
 chown testuser:testuser /home/encfs/testuser /home/testuser&lt;br /&gt;
 su testuser&lt;br /&gt;
 encfs /home/encfs/testuser  /home/testuser&lt;br /&gt;
 #*use same password as your login atm*&lt;br /&gt;
 fusermount -u /home/testuser&lt;br /&gt;
 &lt;br /&gt;
 #To enable encfs homedir on existing user:&lt;br /&gt;
 sudo mkdir -p /home/encfs/phil /home/encfs/tmp&lt;br /&gt;
 sudo chmod 777 /home/encfs/tmp&lt;br /&gt;
 sudo chown phil:phil /home/encfs/phil&lt;br /&gt;
 #*use your main password on next part*&lt;br /&gt;
 encfs /home/encfs/phil /home/encfs/tmp&lt;br /&gt;
 cd /home/phil&lt;br /&gt;
 find . -xdev | cpio -pamd /home/encfs/tmp&lt;br /&gt;
 fusermount -u /home/encfs/tmp&lt;br /&gt;
 cd /&lt;br /&gt;
 sudo mv /home/phil /home/phil.BAK&lt;br /&gt;
 sudo mkdir /home/phil&lt;br /&gt;
 sudo chown phil:phil /home/phil&lt;br /&gt;
 sudo rmdir /home/encfs/tmp&lt;br /&gt;
 #*logout*&lt;br /&gt;
&lt;br /&gt;
Problem after fuse upgrade:&lt;br /&gt;
* didn&#039;t work anymore.&lt;br /&gt;
* I had to enable &amp;quot;user_allow_other&amp;quot; in /etc/fuse.conf&lt;br /&gt;
&lt;br /&gt;
Problems:&lt;br /&gt;
&lt;br /&gt;
* --idle=1 is nice but how to avoid unwanted auto umount when still logged? (pam_encfs.so should maybe keep a file/dir open)&lt;br /&gt;
* if drop_permissions disabled, root needs explicit write access to user&#039;s home mount point&lt;br /&gt;
* if drop_permissions disabled and --public disabled, HOME env var set by default to / (while it was apparently defined in pam_encfs as mount point path was correctly found)&lt;br /&gt;
** No directory, logging in with HOME=/&lt;br /&gt;
** if drop_permissions disabled and --public enabled, no problem.&lt;br /&gt;
** Don&#039;t know how to solve that&lt;br /&gt;
* specific fuse options added only if generic fuse_default declared&lt;br /&gt;
** patch:&lt;br /&gt;
 --- pam_encfs.c.orig   :50:29.000000000 +0200&lt;br /&gt;
 +++ pam_encfs.c:34:46.000000000 +0200&lt;br /&gt;
 @@ -427,11 +427,11 @@&lt;br /&gt;
    arg_pos += buildCmd(arg,arg_pos,path);&lt;br /&gt;
    arg_pos += buildCmd(arg,arg_pos,targetpath);&lt;br /&gt;
 &lt;br /&gt;
 -  if (strlen(default_fuse_options) &amp;gt; 0) {&lt;br /&gt;
 -    if (strlen(fuse_options) &amp;gt; 0) {&lt;br /&gt;
 +  if (strlen(default_fuse_options) &amp;gt; 0 &amp;amp;&amp;amp; strlen(fuse_options) &amp;gt; 0) {&lt;br /&gt;
        strcat(fuse_options,&amp;quot;,&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
 -    strcat(fuse_options,default_fuse_options);&lt;br /&gt;
 +  strcat(fuse_options,default_fuse_options);&lt;br /&gt;
 +  if (strlen(fuse_options) &amp;gt; 0) {&lt;br /&gt;
      arg_pos += buildCmd(arg,arg_pos,&amp;quot;--&amp;quot;);&lt;br /&gt;
      arg_pos += buildCmd(arg,arg_pos,&amp;quot;-o&amp;quot;);&lt;br /&gt;
      arg_pos += buildCmd(arg,arg_pos,fuse_options);&lt;br /&gt;
* if fuse_default or encfs_default empty, garbage produced on call to encfs or fuse&lt;br /&gt;
** patch:&lt;br /&gt;
 @@ -235,13 +235,12 @@&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      if (strcmp(&amp;quot;encfs_default&amp;quot;,username) == 0) {&lt;br /&gt;
 -&lt;br /&gt;
 -      if (!strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
 +      if (parsed == 2 &amp;amp;&amp;amp; !strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
          strcpy(default_encfs_options,path);&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      if (strcmp(&amp;quot;fuse_default&amp;quot;,username) == 0) {&lt;br /&gt;
 -      if (!strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
 +      if (parsed == 2 &amp;amp;&amp;amp; !strcmp(&amp;quot;-&amp;quot;,path) == 0)&lt;br /&gt;
          strcpy(default_fuse_options,path);&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
* multiple options not supported for encfs_default&lt;br /&gt;
** patch:&lt;br /&gt;
 @@ -253,6 +252,7 @@&lt;br /&gt;
        if (strcmp(&amp;quot;-&amp;quot;,fuse_options) == 0)&lt;br /&gt;
          strcpy(fuse_options,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 +      searchAndReplace(default_encfs_options);&lt;br /&gt;
        searchAndReplace(encfs_options);&lt;br /&gt;
 &lt;br /&gt;
        if ((strcmp(user,username) == 0) || (strcmp(&amp;quot;-&amp;quot;,username) == 0)) {&lt;br /&gt;
* On some circumstances, fusermount fails while it shouldn&#039;t:&lt;br /&gt;
 testphil@mercure:~$ mount&lt;br /&gt;
 [...]&lt;br /&gt;
 encfs on /home/phil type fuse (rw,nosuid,nodev,default_permissions,user=phil)&lt;br /&gt;
 encfs on /home/testphil type fuse (rw,nosuid,nodev,default_permissions,user=testphil)&lt;br /&gt;
 testphil@mercure:~$ logout&lt;br /&gt;
 fusermount: entry for /home/testphil not found in /etc/mtab&lt;br /&gt;
 phil@mercure:~$ mount&lt;br /&gt;
 [...]&lt;br /&gt;
 encfs on /home/phil type fuse (rw,nosuid,nodev,default_permissions,user=phil)&lt;br /&gt;
 encfs on /home/testphil type fuse (rw,nosuid,nodev,default_permissions,user=testphil)&lt;br /&gt;
 phil@mercure:~$ sudo su testphil -c &amp;quot;fusermount -u /home/testphil&amp;quot;&lt;br /&gt;
 * and here it works with exactly the same command*&lt;br /&gt;
* /etc/pam_encfs.conf is not the best place&lt;br /&gt;
** /usr/share/doc/libpam0g/Debian-PAM-~MiniPolicy.gz tells to have /lib/security/encfs.conf which is awful&lt;br /&gt;
** but libpam-modules has e.g. /etc/security/pam_env.conf so we will have /etc/security/pam_encfs.conf&lt;br /&gt;
** I should ask Sam Hartman &amp;lt;hartmans at ...&amp;gt; about this incoherence&lt;br /&gt;
** patch:&lt;br /&gt;
 @@ -81,7 +81,7 @@&lt;br /&gt;
  #define USERNAME_MAX           127&lt;br /&gt;
  #define PATH_MAX               256&lt;br /&gt;
  #define BUFSIZE ((USERNAME_MAX +1) + ((PATH_MAX+1) * 2))&lt;br /&gt;
 -#define CONFIGFILE     &amp;quot;/etc/pam_encfs.conf&amp;quot;&lt;br /&gt;
 +#define CONFIGFILE     &amp;quot;/etc/security/pam_encfs.conf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
  static void _pam_log ( int err, const char *format, ... );&lt;br /&gt;
  static char default_encfs_options[USERNAME_MAX];&lt;br /&gt;
* It looks like the argument allow_root given to fuse is transformed into allow_other when displayed by mount&lt;br /&gt;
&lt;br /&gt;
==Problems linked to the absence of locking support:==&lt;br /&gt;
&lt;br /&gt;
* encfs or fuse doesn&#039;t allow locking, cf [http://lists.samba.org/archive/samba/2004-April/085039.html similar problem with samba]&lt;br /&gt;
** Not sure which operation fails, flock() or open with O_EXCL flag.&lt;br /&gt;
* with KDE: could not read network connection list /home/.../.DCOPserver_machine__0&lt;br /&gt;
** Indeed dcopserver refuses to start (error in locking .ICEauthority)&lt;br /&gt;
** Solution: add to ~/.bashrc (or ~/.bash_profile if ~/.bash_profile does not include ~/.bashrc)&lt;br /&gt;
*** export XAUTHORITY=/tmp/.Xauthority-$USER&lt;br /&gt;
*** export ICEAUTHORITY=/tmp/.ICEauthority-$USER&lt;br /&gt;
* with unison: error (error message is not adequate...)&amp;lt;br&amp;gt;Fatal error: Warning: the archives are locked.&amp;lt;br&amp;gt;If no other instance of unison is running, the locks should be removed.&amp;lt;br&amp;gt;Please delete lock files as appropriate and try again.&lt;br /&gt;
** Create a soft link from ~/.unison to an dir out of the encfs&lt;br /&gt;
* with courier-imap: this doesn&#039;t work if Maildir is on encfs&lt;br /&gt;
** For read-only IMAP, create a soft link from e.g. /home/user_noencfs/Maildir out of the encfs to ~/Maildir (so your mails will remain encrypted!) and tell to courier-imap that your homedir is the /home/user_noencfs&lt;br /&gt;
** For read-write, this is not possible&lt;br /&gt;
==Problems with tiger==&lt;br /&gt;
I get a very similar problem as [http://www.mail-archive.com/tiger-user@nongnu.org/msg00006.html this guy]: I always get the following msg&lt;br /&gt;
 --CONFIG-- [con010c] Filesystem &#039;fuse&#039; used by &#039;encfs&#039; is not recognised as a local filesystem&lt;br /&gt;
and no way to get rid of it via /etc/tiger (except skipping all &amp;quot;system&amp;quot; tests) so I had also to add to /usr/lib/tiger/systems/Linux/2/gen_mounts a line with &lt;br /&gt;
 [ &amp;quot;$2&amp;quot; = &amp;quot;encfs&amp;quot; ] &amp;amp;&amp;amp; LOCAL=0&lt;br /&gt;
but I know next Debian upgrade will silently restore the original (or new) version :-(&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Vserver_tools&amp;diff=2193</id>
		<title>Vserver tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Vserver_tools&amp;diff=2193"/>
		<updated>2007-05-21T07:44:11Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Imposing disk usage limits on vservers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==De-unifying tool==&lt;br /&gt;
From within a vserver, unified files cannot be directly modified.&lt;br /&gt;
&amp;lt;br&amp;gt;You could face such problem when upgrading with apt-get when apt tries to make .dpkg-tmp copies for some critical(?) files&lt;br /&gt;
&amp;lt;br&amp;gt;The user can of course make a copy, delete the file and re-create it but this is inconvenient therefore this tool :-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Copyright Philippe Teuwen &amp;lt;phil_at_teuwen.org&amp;gt;&lt;br /&gt;
# License: GPL&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;-v&amp;quot; ]; then&lt;br /&gt;
    DEBUG=true&lt;br /&gt;
    shift&lt;br /&gt;
else&lt;br /&gt;
    DEBUG=false&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
files=&amp;quot;$*&amp;quot;&lt;br /&gt;
if [ &amp;quot;$files&amp;quot; = &amp;quot;&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Usage: $0 [-v] &amp;lt;file(s) to deunify&amp;gt;&amp;quot;&lt;br /&gt;
    echo &amp;quot;       (-v for verbose mode)&amp;quot;&lt;br /&gt;
    exit&lt;br /&gt;
fi&lt;br /&gt;
for f in $files; do&lt;br /&gt;
    if [ -f &amp;quot;$f&amp;quot; ]&amp;amp;&amp;amp;[ ! -L &amp;quot;$f&amp;quot; ]; then&lt;br /&gt;
	if lsattr &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;|grep -q &amp;quot;....i.......E....&amp;quot;; then&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo &amp;quot;Deunifying file $f...&amp;quot;&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo -n &amp;quot;inode : &amp;quot; &amp;amp;&amp;amp; ls -i &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo -n &amp;quot;attr  : &amp;quot; &amp;amp;&amp;amp; lsattr &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;&lt;br /&gt;
    	    tmpfile=&amp;quot;$(mktemp /tmp/deunify.XXXXXX)&amp;quot;&lt;br /&gt;
	    cp -a &amp;quot;$f&amp;quot; &amp;quot;$tmpfile&amp;quot;&lt;br /&gt;
	    mv -f &amp;quot;$tmpfile&amp;quot; &amp;quot;$f&amp;quot;&lt;br /&gt;
	    echo &amp;quot;File $f deunified!&amp;quot;&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo -n &amp;quot;inode : &amp;quot; &amp;amp;&amp;amp; ls -i &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo -n &amp;quot;attr  : &amp;quot; &amp;amp;&amp;amp; lsattr &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo &amp;quot;Skipping file $f, already deunified...&amp;quot;&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo -n &amp;quot;inode : &amp;quot; &amp;amp;&amp;amp; ls -i &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;&lt;br /&gt;
	    $DEBUG &amp;amp;&amp;amp; echo -n &amp;quot;attr  : &amp;quot; &amp;amp;&amp;amp; lsattr &amp;quot;$f&amp;quot;|cut -f1 -d &amp;quot; &amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
    else&lt;br /&gt;
	$DEBUG &amp;amp;&amp;amp; echo &amp;quot;$f does not appear to be a regular file, skipping...&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deleting tool==&lt;br /&gt;
Be careful with this one, of course&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Copyright Philippe Teuwen &amp;lt;phil_at_teuwen.org&amp;gt;&lt;br /&gt;
# Lincense: GPL&lt;br /&gt;
&lt;br /&gt;
VSERVER=$1&lt;br /&gt;
vserver $VSERVER status&lt;br /&gt;
ret=$?&lt;br /&gt;
if [ &amp;quot;$ret&amp;quot; = 5 ]; then&lt;br /&gt;
    echo &amp;quot;Please specify an existing vserver!&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$ret&amp;quot; != 3 ]; then&lt;br /&gt;
    vserver $VSERVER stop&lt;br /&gt;
fi&lt;br /&gt;
echo Deleting /etc/vservers/$VSERVER ...&lt;br /&gt;
rm -rf /etc/vservers/$VSERVER&lt;br /&gt;
echo Deleting /var/run/vservers/$VSERVER ...&lt;br /&gt;
rm -rf /var/run/vservers/$VSERVER&lt;br /&gt;
echo Deleting symlinks in /var/run/vservers.rev/ ...&lt;br /&gt;
ls -l /var/run/vservers.rev/|\&lt;br /&gt;
    grep -o &amp;quot;[0-9]\+ -&amp;gt; /etc/vservers/$VSERVER&amp;quot;|\&lt;br /&gt;
    cut -d &#039; &#039; -f 1|\&lt;br /&gt;
    xargs rm -f&lt;br /&gt;
echo -n Deleting /etc/vservers/.defaults/vdirbase/$VSERVER ...&lt;br /&gt;
lsof|grep $VSERVER&lt;br /&gt;
i=0&lt;br /&gt;
# We need to insist a bit on this one...&lt;br /&gt;
while [[ &amp;quot;$i&amp;quot; -lt 10 ]] &amp;amp;&amp;amp; ! rm -rf /etc/vservers/.defaults/vdirbase/$VSERVER &amp;gt;&amp;amp; /dev/null ; do&lt;br /&gt;
    echo -n .&lt;br /&gt;
    i=$(($i+1))&lt;br /&gt;
    sleep 1&lt;br /&gt;
done&lt;br /&gt;
echo&lt;br /&gt;
echo Done.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Dupvserver patch==&lt;br /&gt;
Make dupvserver usable with the new vserver config method and handle static contextes&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- dupvserver	2006-03-29 20:04:43.000000000 +0200&lt;br /&gt;
+++ dupvserver.new	2006-03-29 20:04:15.000000000 +0200&lt;br /&gt;
@@ -17,11 +17,11 @@&lt;br /&gt;
 # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA&lt;br /&gt;
 # 02111-1307, USA.&lt;br /&gt;
&lt;br /&gt;
-VSERVERS_ROOT=/vservers&lt;br /&gt;
+VSERVERS_ROOT=/etc/vservers/.defaults/vdirbase&lt;br /&gt;
&lt;br /&gt;
-if [ -r /etc/vservers.conf ] ; then&lt;br /&gt;
-    . /etc/vservers.conf&lt;br /&gt;
-fi&lt;br /&gt;
+#if [ -r /etc/vservers.conf ] ; then&lt;br /&gt;
+#    . /etc/vservers.conf&lt;br /&gt;
+#fi&lt;br /&gt;
&lt;br /&gt;
 usage ()&lt;br /&gt;
 {&lt;br /&gt;
@@ -95,14 +95,14 @@&lt;br /&gt;
 		    echo &amp;quot;ERROR: Vserver $FROM do not exist.&amp;quot;&lt;br /&gt;
 		    exit 1&lt;br /&gt;
 		fi&lt;br /&gt;
-		if [ ! -r &amp;quot;/etc/vservers/$FROM.conf&amp;quot; ] ; then&lt;br /&gt;
+		if [ ! -d &amp;quot;/etc/vservers/$FROM&amp;quot; ] ; then&lt;br /&gt;
 		    echo &amp;quot;ERROR: Vserver config for $FROM do not exist.&amp;quot;&lt;br /&gt;
 		    exit 1&lt;br /&gt;
 		fi&lt;br /&gt;
-		. /etc/vservers/$FROM.conf&lt;br /&gt;
-		FROMNAME=$S_HOSTNAME&lt;br /&gt;
-		FROMIP=$IPROOT&lt;br /&gt;
-		FROMDEV=$IPROOTDEV&lt;br /&gt;
+#		. /etc/vservers/$FROM.conf&lt;br /&gt;
+		FROMNAME=&amp;quot;$(cat /etc/vservers/$FROM/name)&amp;quot;&lt;br /&gt;
+		FROMIP=&amp;quot;$(cat /etc/vservers/$FROM/interfaces/0/ip)&amp;quot;&lt;br /&gt;
+		FROMDEV=&amp;quot;$(cat /etc/vservers/$FROM/interfaces/0/dev)&amp;quot;&lt;br /&gt;
 		;;&lt;br /&gt;
 	    --to)&lt;br /&gt;
 		TO=&amp;quot;$2&amp;quot;&lt;br /&gt;
@@ -184,16 +184,25 @@&lt;br /&gt;
 $FINDTOREPIP&amp;quot; | sort -u&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
-if [ ! -r /etc/vservers/$TO.conf -o &amp;quot;$FORCE&amp;quot; = &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
-    cp /etc/vservers/$FROM.conf /etc/vservers/$TO.conf&lt;br /&gt;
-    perl -pi -e &amp;quot;s#$FROM#$TO#g;&amp;quot; \&lt;br /&gt;
-       /etc/vservers/$TO.conf&lt;br /&gt;
+if [ ! -d /etc/vservers/$TO -o &amp;quot;$FORCE&amp;quot; = &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
+    mkdir /etc/vservers/$TO&lt;br /&gt;
+    cp -a /etc/vservers/$FROM/* /etc/vservers/$TO&lt;br /&gt;
+    rm /etc/vservers/$TO/run&lt;br /&gt;
+    ln -s /var/run/vservers/$TO /etc/vservers/$TO/run&lt;br /&gt;
+    rm /etc/vservers/$TO/vdir&lt;br /&gt;
+    ln -s /etc/vservers/.defaults/vdirbase/$TO /etc/vservers/$TO/vdir&lt;br /&gt;
+    find /etc/vservers/$TO -type f -exec perl -pi -e &amp;quot;s#$FROM#$TO#g;&amp;quot; {} \;&lt;br /&gt;
     if [ &amp;quot;$FROMIP&amp;quot; != &amp;quot;$TOIP&amp;quot; ] ; then&lt;br /&gt;
-       perl -pi -e &amp;quot;s#$FROMIP#$TOIP#g;&amp;quot; \&lt;br /&gt;
-           /etc/vservers/$TO.conf&lt;br /&gt;
+       find /etc/vservers/$TO -type f -exec perl -pi -e &amp;quot;s#$FROMIP#$TOIP#g;&amp;quot; {} \;&lt;br /&gt;
     fi&lt;br /&gt;
     if [ &amp;quot;$FROMDEV&amp;quot; != &amp;quot;$TODEV&amp;quot; -a -n &amp;quot;$TODEV&amp;quot; ] ; then&lt;br /&gt;
-       perl -pi -e &amp;quot;s#$FROMDEV#$TODEV#g;&amp;quot; \&lt;br /&gt;
-           /etc/vservers/$TO.conf&lt;br /&gt;
+       find /etc/vservers/$TO -type f -exec perl -pi -e &amp;quot;s#$FROMDEV#$TODEV#g;&amp;quot; {} \;&lt;br /&gt;
+    fi&lt;br /&gt;
+    if [ -e /etc/vservers/$TO/context ]; then&lt;br /&gt;
+       echo -n &amp;quot;Choose a new context: &amp;quot;&lt;br /&gt;
+       echo $RANDOM &amp;gt; /etc/vservers/$TO/context&lt;br /&gt;
+       cat /etc/vservers/$TO/context&lt;br /&gt;
+       echo &amp;quot;Apply new context to files...&amp;quot;&lt;br /&gt;
+       chxid -c $(cat /etc/vservers/$TO/context) -R $VSERVERS_ROOT/$TO&lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Newvserver patch==&lt;br /&gt;
* Add better support for etch&lt;br /&gt;
* Prevent corruption of /etc/motd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- newvserver	2006-03-29 20:04:28.000000000 +0200&lt;br /&gt;
+++ newvserver.new	2006-03-29 20:04:10.000000000 +0200&lt;br /&gt;
@@ -45,7 +45,7 @@&lt;br /&gt;
 REMOVE_PACKAGES=&amp;quot;sparc-utils,dhcp-client,lilo,makedev,pcmcia-cs,ppp,pppconfig,pppoe,pppoeconf,setserial,syslinux,fdutils,libpcap0,iptables,pciutils&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # sysvinit services relating to hardware access to remove&lt;br /&gt;
-REMOVE_LINKS=&amp;quot;klogd hwclock.sh setserial urandom networking umountfs halt reboot mountvirtfs mountall.sh mountnfs.sh ifupdown&amp;quot;&lt;br /&gt;
+REMOVE_LINKS=&amp;quot;klogd hwclock.sh setserial urandom networking umountfs umountroot halt reboot mountvirtfs mountall.sh mountnfs.sh ifupdown&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Post installation script&lt;br /&gt;
 POST_INSTALL_SCRIPT=&amp;quot;&amp;quot;&lt;br /&gt;
@@ -384,7 +384,7 @@&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 ## use &amp;quot;vserver ... build&amp;quot; to build the new vserver&lt;br /&gt;
-if ! /usr/sbin/vserver &amp;quot;$VHOST&amp;quot; build -m debootstrap \&lt;br /&gt;
+if ! vserver &amp;quot;$VHOST&amp;quot; build -m debootstrap \&lt;br /&gt;
        --rootdir &amp;quot;$VROOTDIR&amp;quot; --hostname &amp;quot;$VHOST&amp;quot; --interface &amp;quot;$INTERFACE:$IP&amp;quot; \&lt;br /&gt;
        -- -d &amp;quot;$DIST&amp;quot; -m &amp;quot;$MIRROR&amp;quot; \&lt;br /&gt;
        -- $ARCH_ARGUMENT \&lt;br /&gt;
@@ -398,12 +398,12 @@&lt;br /&gt;
 # Make it so that apt and friends work&lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF &amp;gt; &amp;quot;$VROOTDIR/$VHOST/etc/apt/sources.list&amp;quot;&lt;br /&gt;
 deb $MIRROR/ $DIST main non-free contrib&lt;br /&gt;
-deb-src $MIRROR/ $DIST main non-free contrib&lt;br /&gt;
+#deb-src $MIRROR/ $DIST main non-free contrib&lt;br /&gt;
&lt;br /&gt;
-deb http://non-us.debian.org/debian-non-US $DIST/non-US main contrib non-free&lt;br /&gt;
-deb-src http://non-us.debian.org/debian-non-US $DIST/non-US main contrib non-free&lt;br /&gt;
+#deb http://non-us.debian.org/debian-non-US $DIST/non-US main contrib non-free&lt;br /&gt;
+#deb-src http://non-us.debian.org/debian-non-US $DIST/non-US main contrib non-free&lt;br /&gt;
&lt;br /&gt;
-deb http://security.debian.org $DIST/updates main contrib non-free&lt;br /&gt;
+#deb http://security.debian.org $DIST/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
@@ -455,8 +455,13 @@&lt;br /&gt;
 # uname -a &amp;gt; $VROOTDIR/$VHOST/etc/motd&lt;br /&gt;
&lt;br /&gt;
 # Create a shorter motd (uname -a would give name of host-server)&lt;br /&gt;
-echo &amp;quot;Debian GNU/Linux ($DIST/$(uname -m)) $VHOST.$VDOMAIN&amp;quot; \&lt;br /&gt;
-    &amp;gt; &amp;quot;$VROOTDIR/$VHOST/etc/motd&amp;quot;&lt;br /&gt;
+if [ -L &amp;quot;$VROOTDIR/$VHOST/etc/motd&amp;quot; ]; then&lt;br /&gt;
+    echo &amp;quot;Debian GNU/Linux ($DIST/$(uname -m)) $VHOST.$VDOMAIN&amp;quot; \&lt;br /&gt;
+	&amp;gt; &amp;quot;$VROOTDIR/$VHOST/var/run/motd&amp;quot;&lt;br /&gt;
+else&lt;br /&gt;
+    echo &amp;quot;Debian GNU/Linux ($DIST/$(uname -m)) $VHOST.$VDOMAIN&amp;quot; \&lt;br /&gt;
+	&amp;gt; &amp;quot;$VROOTDIR/$VHOST/etc/motd&amp;quot;&lt;br /&gt;
+fi&lt;br /&gt;
&lt;br /&gt;
 # Create a dummy fstab&lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF &amp;gt; &amp;quot;$VROOTDIR/$VHOST/etc/fstab&amp;quot;&lt;br /&gt;
@@ -526,19 +531,26 @@&lt;br /&gt;
&lt;br /&gt;
 dselect update&lt;br /&gt;
&lt;br /&gt;
-tzsetup -y&lt;br /&gt;
+if [ &amp;quot;$DIST&amp;quot; == &amp;quot;etch&amp;quot; ]||[ &amp;quot;$DIST&amp;quot; == &amp;quot;sid&amp;quot; ]; then&lt;br /&gt;
+    tzconfig&lt;br /&gt;
+else&lt;br /&gt;
+    tzsetup -y&lt;br /&gt;
+fi&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure passwd&lt;br /&gt;
&lt;br /&gt;
-tasksel&lt;br /&gt;
+if [ &amp;quot;$DIST&amp;quot; == &amp;quot;woody&amp;quot; ]||[ &amp;quot;$DIST&amp;quot; == &amp;quot;sarge&amp;quot; ]; then&lt;br /&gt;
+    tasksel&lt;br /&gt;
+fi&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;$DIST&amp;quot; == &amp;quot;woody&amp;quot; ]; then&lt;br /&gt;
     rm -f /etc/exim/exim.conf&lt;br /&gt;
     eximconfig&lt;br /&gt;
 fi&lt;br /&gt;
-&lt;br /&gt;
-# because the --exclude flag doesn\&#039;t seem to work on debootstrap&lt;br /&gt;
-dpkg -P `echo $REMOVE_PACKAGES | sed -e &#039;s/,/ /g&#039;`&lt;br /&gt;
+if [ &amp;quot;$DIST&amp;quot; == &amp;quot;woody&amp;quot; ]||[ &amp;quot;$DIST&amp;quot; == &amp;quot;sarge&amp;quot; ]; then&lt;br /&gt;
+    # because the --exclude flag doesn\&#039;t seem to work on debootstrap&lt;br /&gt;
+    dpkg -P `echo $REMOVE_PACKAGES | sed -e &#039;s/,/ /g&#039;`&lt;br /&gt;
+fi&lt;br /&gt;
&lt;br /&gt;
 for link in $REMOVE_LINKS&lt;br /&gt;
 do&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change also the /etc/hosts to assign localhost to the public ip&lt;br /&gt;
&lt;br /&gt;
==Imposing disk usage limits on vservers==&lt;br /&gt;
This will also be used to monitor easily the disk usage of the vservers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Link this as /etc/vservers/&amp;lt;servername&amp;gt;/scripts/post-start.d script&lt;br /&gt;
# with the desired size limit in Mb.&lt;br /&gt;
# For example to set the limit at 10G:&lt;br /&gt;
# ln -s /usr/local/sbin/vdlimit_&lt;br /&gt;
#       /etc/vservers/&amp;lt;servername&amp;gt;/scripts/post-start.d/vdlimit_10240&lt;br /&gt;
# To change the limit on-the-fly simply rename the link and execute &lt;br /&gt;
# ./vdlimit_&amp;lt;newsize&amp;gt; pre-stop &amp;lt;servername&amp;gt;;./vdlimit_&amp;lt;newsize&amp;gt; post-start &amp;lt;servername&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
# Copyright Philippe Teuwen &amp;lt;phil_at_teuwen.org&amp;gt;&lt;br /&gt;
# License: GPL&lt;br /&gt;
# version 1.0&lt;br /&gt;
&lt;br /&gt;
# The script will be called from within the vserver working dir&lt;br /&gt;
VSERVER=`pwd|sed &#039;s/\/etc\/vservers\/\(.*\)\/vdir/\1/&#039;`&lt;br /&gt;
&lt;br /&gt;
# space in Mb&lt;br /&gt;
SPACE=$(basename $0 | sed &#039;s/^vdlimit_//;&#039;)&lt;br /&gt;
# 10G if not specified&lt;br /&gt;
SPACE=${SPACE:-10240}&lt;br /&gt;
&lt;br /&gt;
# space in kb&lt;br /&gt;
SPACE=$(($SPACE*1024))&lt;br /&gt;
INODES=$SPACE&lt;br /&gt;
&lt;br /&gt;
vserver $VSERVER status &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
ret=$?&lt;br /&gt;
if [ &amp;quot;$ret&amp;quot; = 5 ]; then&lt;br /&gt;
    echo &amp;quot;Please specify an existing vserver!&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$ret&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &amp;quot;Please specify a running vserver!&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CTX=`cat /var/run/vservers/$VSERVER`&lt;br /&gt;
SPACE_USED=`du -sx /etc/vservers/.defaults/vdirbase/$VSERVER | awk &#039;{print $1}&#039;`&lt;br /&gt;
INODES_USED=`ls -1aRi /etc/vservers/.defaults/vdirbase/$VSERVER/ 2&amp;gt;/dev/null |\&lt;br /&gt;
 awk &#039;/^[0-9]+ / { print $1 }&#039; | sort -u | wc -l`&lt;br /&gt;
if [ $SPACE_USED -ge $SPACE ]||[ $INODES_USED -ge $INODES ]; then&lt;br /&gt;
    echo &amp;quot;Vserver $VSERVER is already taking more space/inodes than what you try to limit to!&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
/usr/sbin/vdlimit --xid $CTX \&lt;br /&gt;
                  --set space_total=$SPACE \&lt;br /&gt;
                  --set space_used=$SPACE_USED \&lt;br /&gt;
                  --set inodes_total=$INODES \&lt;br /&gt;
                  --set inodes_used=$INODES_USED \&lt;br /&gt;
                  --set reserved=5 /etc/vservers/.defaults/vdirbase/$VSERVER/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Vserver_administration&amp;diff=2192</id>
		<title>Vserver administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Vserver_administration&amp;diff=2192"/>
		<updated>2007-05-21T07:43:06Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Disk limits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Official homepage: [http://linux-vserver.org/ Linux VServer Project]&lt;br /&gt;
&lt;br /&gt;
Good introduction:&lt;br /&gt;
* [http://linux-vserver.org/index.php?page=Linux-VServer-Paper Linux-VServer Technology]&lt;br /&gt;
* [http://linux-vserver.org/index.php?page=Linux-VServer-Paper-French La Technologie Linux-VServer]&lt;br /&gt;
&lt;br /&gt;
Debian support:&lt;br /&gt;
 apt-cache search vserver&lt;br /&gt;
   kernel-patch-vserver - context switching virtual private servers - kernel patch&lt;br /&gt;
   [http://www.nongnu.org/util-vserver/ util-vserver] - tools for Virtual private servers and context switching&lt;br /&gt;
   vserver-debiantools - Tools to manage debian virtual servers&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
* [http://www.lri.fr/~fragile/IMG/pdf/Quetier.pdf Benchmark Comparisons between UML, VMWare, vserver and Xen (pdf)]&lt;br /&gt;
&lt;br /&gt;
==Kernel compilation==&lt;br /&gt;
===The Debian way===&lt;br /&gt;
I followed instructions given in&lt;br /&gt;
* /usr/share/doc/kernel-patch-vserver/README.Debian&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-step 2.6]&lt;br /&gt;
* [http://deb.riseup.net/vserver/preparing/ Debian vservers]&lt;br /&gt;
* [http://arnofear.free.fr/linux/vserver-1.php Debian and vserver, french howto]&lt;br /&gt;
* [http://lena.franken.de/linux/debian_and_vserver/ Debian and vserver]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install kernel-patch-vserver linux-source-2.6.16 kernel-package fakeroot&lt;br /&gt;
cd /usr/src&lt;br /&gt;
tar xjf linux-source-2.6.16.tar.bz2&lt;br /&gt;
cd /usr/src/linux-source-2.6.16&lt;br /&gt;
cp config-2.6.16-1-amd64-k8 .config&lt;br /&gt;
export PATCH_THE_KERNEL=YES&lt;br /&gt;
make-kpkg --rootcmd fakeroot \&lt;br /&gt;
        --revision custom01 \&lt;br /&gt;
        --added-patches vserver \&lt;br /&gt;
        --append-to-version +vserver \&lt;br /&gt;
        --initrd \&lt;br /&gt;
        binary-arch&lt;br /&gt;
&amp;quot;Virtual root device support&amp;quot; -&amp;gt; **y**&lt;br /&gt;
&amp;quot;Legacy kernel API&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Show a Legacy Version ID&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Disable Legacy Networking Kernel API&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Enable Proc Security&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Enable Hard CPU Limits&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Limit the IDLE task&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Persistent Inode Context Tagging&amp;quot; -&amp;gt; UID24/GID24 (32/32 probably not yet supported on Reiserfs)&lt;br /&gt;
&amp;quot;Tag NFSD User Auth and Files&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;VServer Debugging Code&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install kernel and reboot&lt;br /&gt;
===Vanilla with GrSec, still the Debian way===&lt;br /&gt;
I used linux-2.6.17.14.tar.bz2 + patch-2.6.17.14-vs2.0.2.1-grsec2.1.9.diff&lt;br /&gt;
&amp;lt;br&amp;gt;and the config of the Debian kernel config-2.6.17-2-vserver-amd64&lt;br /&gt;
 make oldconfig&lt;br /&gt;
I activated HARDCPU limits and misc PAX &amp;amp; GRSEC stuff ([http://people.linux-vserver.org/~harry/_README_ this page] can help):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_VSERVER_HARDCPU=y&lt;br /&gt;
CONFIG_VSERVER_HARDCPU_IDLE=y&lt;br /&gt;
CONFIG_PAX=y&lt;br /&gt;
CONFIG_PAX_SOFTMODE=y&lt;br /&gt;
CONFIG_PAX_PT_PAX_FLAGS=y&lt;br /&gt;
CONFIG_PAX_HAVE_ACL_FLAGS=y&lt;br /&gt;
CONFIG_PAX_NOEXEC=y&lt;br /&gt;
CONFIG_PAX_PAGEEXEC=y&lt;br /&gt;
CONFIG_PAX_MPROTECT=y&lt;br /&gt;
CONFIG_PAX_ASLR=y&lt;br /&gt;
CONFIG_PAX_RANDUSTACK=y&lt;br /&gt;
CONFIG_PAX_RANDMMAP=y&lt;br /&gt;
CONFIG_PAX_MEMORY_SANITIZE=y&lt;br /&gt;
CONFIG_GRKERNSEC=y&lt;br /&gt;
CONFIG_GRKERNSEC_CUSTOM=y&lt;br /&gt;
CONFIG_GRKERNSEC_KMEM=y&lt;br /&gt;
CONFIG_GRKERNSEC_IO=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_MEMMAP=y&lt;br /&gt;
CONFIG_GRKERNSEC_BRUTE=y&lt;br /&gt;
CONFIG_GRKERNSEC_MODSTOP=y&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_HIDEKERN=y&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_MAXTRIES=3&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_TIMEOUT=30&lt;br /&gt;
CONFIG_GRKERNSEC_PROC=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_USER=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_ADD=y&lt;br /&gt;
CONFIG_GRKERNSEC_LINK=y&lt;br /&gt;
CONFIG_GRKERNSEC_FIFO=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_PIVOT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_CHDIR=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_MKNOD=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_SHMAT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_UNIX=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_NICE=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y&lt;br /&gt;
CONFIG_GRKERNSEC_RESLOG=y&lt;br /&gt;
CONFIG_GRKERNSEC_SIGNAL=y&lt;br /&gt;
CONFIG_GRKERNSEC_FORKFAIL=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_IPADDR=y&lt;br /&gt;
CONFIG_GRKERNSEC_EXECVE=y&lt;br /&gt;
CONFIG_GRKERNSEC_SHM=y&lt;br /&gt;
CONFIG_GRKERNSEC_DMESG=y&lt;br /&gt;
CONFIG_GRKERNSEC_RANDPID=y&lt;br /&gt;
CONFIG_GRKERNSEC_RANDNET=y&lt;br /&gt;
CONFIG_GRKERNSEC_SYSCTL=y&lt;br /&gt;
CONFIG_GRKERNSEC_FLOODTIME=10&lt;br /&gt;
CONFIG_GRKERNSEC_FLOODBURST=4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --us --uc --initrd kernel-image&lt;br /&gt;
And I got a linux-image-2.6.17.14-grsec2.1.9-vs2.0.2.1_2.6.17.14-grsec2.1.9-vs2.0.2.1-10.00.Custom_amd64.deb&lt;br /&gt;
==Host preparation==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install util-vserver vserver-debiantools&lt;br /&gt;
wget http://vserver.13thfloor.at/Stuff/SCRIPT/testme.sh&lt;br /&gt;
chmod +x testme.sh&lt;br /&gt;
./testme.sh&lt;br /&gt;
dd bs=1024k count=1024 if=/dev/zero of=1gb.test&lt;br /&gt;
modprobe loop&lt;br /&gt;
losetup /dev/loop0 ./1gb.test&lt;br /&gt;
./testfs.sh [ -F reiser ] -D /dev/loop0 -M /mnt&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
modprobe -r loop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is no error at this point but as I&#039;m using Reiserfs, I have to activate manually the extended attributes (for lsattr/chattr) by adding the following option to /etc/fstab lines: &amp;quot;attrs&amp;quot; (?? also option acl ??)&lt;br /&gt;
&amp;lt;br&amp;gt;Test: lsattr &amp;lt;mount point of a Reiserfs&amp;gt;&lt;br /&gt;
===Change the vserver base path===&lt;br /&gt;
* /etc/vservers/.defaults/vdirbase -&amp;gt; /var/lib/vservers&lt;br /&gt;
* I change it to /home/vservers, fix the above symlink&lt;br /&gt;
* Re-create the &amp;quot;chroot barrier&amp;quot;: &amp;lt;br&amp;gt;setattr --barrier /home/vservers&amp;lt;br&amp;gt;showattr /home -&amp;gt; B for vservers&lt;br /&gt;
* Some tools could have /var/lib/vservers hardcoded, for safety I create a symlink /var/lib/vservers pointing to /home/vservers&lt;br /&gt;
&lt;br /&gt;
==Manipulating vservers==&lt;br /&gt;
===Create a vserver===&lt;br /&gt;
Edit /etc/vservers/newvserver-vars:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cf http://amd64.debian.net/README.mirrors.html&lt;br /&gt;
MIRROR=&amp;quot;http://ftp.belnet.be/debian-amd64/debian&amp;quot;&lt;br /&gt;
INTERFACE=&amp;quot;&amp;lt;my_if&amp;gt;&amp;quot;&lt;br /&gt;
ARCH=&amp;quot;amd64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create a vserver with 64bits:&lt;br /&gt;
 LANG=C newvserver --hostname template64 --domain teuwen.org --ip &amp;lt;new_ip&amp;gt;/24 --dist etch&lt;br /&gt;
Create a vserver with 32bits emulation:&lt;br /&gt;
 LANG=C newvserver --hostname template32 --domain teuwen.org --ip &amp;lt;new_ip&amp;gt;/24 --dist etch --arch i386 --mirror &amp;quot;http://&amp;lt;i386_debian_mirror&amp;gt;&amp;quot;&lt;br /&gt;
Tuning:&lt;br /&gt;
* take care of the config duplication!&lt;br /&gt;
* enter the vserver and run tzconfig to choose the proper timezone&lt;br /&gt;
* fix /etc/apt/sources.list&lt;br /&gt;
* delete rcX.d links to umountroot&lt;br /&gt;
* Warning! If you use newvserver as such, it will overwrite the host /etc/motd due to a symlink&lt;br /&gt;
* See [Vserver tools] for a patch for newvserver&lt;br /&gt;
Removing unnecessary progs (check if you really don&#039;t need them!!):&lt;br /&gt;
* aptitude apt-utils base-config cpio dselect tasksel libncursesw5 libsigc++-1.2-5c2 libsigc++-2.0-0c2a&lt;br /&gt;
* dmidecode laptop-detect module-init-tools&lt;br /&gt;
* bsdmainutils ed nano nvi&lt;br /&gt;
* groff-base man-db manpages info libgdbm3&lt;br /&gt;
* netcat traceroute wget libssl0.9.8&lt;br /&gt;
* gettext-base libconsole libgnutls11 liblzo2-2 libtasn1-2-bin&lt;br /&gt;
&lt;br /&gt;
===Automatic start at bootup===&lt;br /&gt;
 echo default &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/init/mark&lt;br /&gt;
Note that at shotdown all vservers will be stopped&lt;br /&gt;
===Delete a vserver===&lt;br /&gt;
Remove dirs /home/vservers/&amp;lt;my_vserver&amp;gt; (depends on the setting of vdirbase, cf. above), /etc/vservers/&amp;lt;my_vserver&amp;gt; and /var/run/vservers/&amp;lt;my_vserver&amp;gt; and the corresponding symlink in /var/run/vservers.rev&lt;br /&gt;
===Config of a vserver===&lt;br /&gt;
&#039;&#039;TODO&#039;&#039;&lt;br /&gt;
 ?? /etc/vservers/&amp;lt;my_vserver&amp;gt;.conf&lt;br /&gt;
 ?? S_CAPS&lt;br /&gt;
see [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Detailed config page (better choosing boring CSS...)]&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t assign unique IPs to the vservers but reuse the one of the host: &lt;br /&gt;
 touch /etc/vservers/&amp;lt;vserver&amp;gt;/interfaces/&amp;lt;N&amp;gt;/nodev&lt;br /&gt;
&#039;&#039;When this file exists, the interface will be assumed to exist already. This can be used to assign primary interfaces which are created by the host or another vserver.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Run a vserver===&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; start&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; enter&lt;br /&gt;
If you get &amp;quot;mesg: /dev/pts/1: Operation not permitted&amp;quot;, be root on the host with &amp;quot;su -&amp;quot;&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; stop&lt;br /&gt;
===Other tools===&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; status&lt;br /&gt;
 vserver-stat&lt;br /&gt;
 vtop, vps, vpstree, vkill&lt;br /&gt;
/etc/rc.d/init.d/rebootmgr is a daemon which can be called from vservers via vreboot and vhalt to stop/restart the vserver from inside&lt;br /&gt;
&lt;br /&gt;
See also [http://www.nongnu.org/util-vserver/doc/conf/compatibility.html compatibility of util-vserver alpha branch]&lt;br /&gt;
&lt;br /&gt;
See [[Vserver tools]] for my own/modified scripts&lt;br /&gt;
&lt;br /&gt;
===Duplicate a vserver===&lt;br /&gt;
 vserver &amp;lt;my_vserver1&amp;gt; stop&lt;br /&gt;
 dupvserver --from &amp;lt;my_vserver1&amp;gt; --to &amp;lt;my_vserver2&amp;gt; --ip &amp;lt;new_ip&amp;gt;&lt;br /&gt;
dupvserver is broken with the new configuration structure /etc/vservers/&amp;lt;my_vserver&amp;gt;/&lt;br /&gt;
&amp;lt;br&amp;gt;See [[Vserver tools]] for a patch for dupvserver&lt;br /&gt;
===Move/copy a vserver===&lt;br /&gt;
Basically stop the vserver and copy /etc/vservers/&amp;lt;my_vserver&amp;gt; and /home/vservers/&amp;lt;my_vserver&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. rsync -e ssh -avHl /vservers/XX new-server:/vserver/XX&lt;br /&gt;
==Share directories==&lt;br /&gt;
To mount a directory from one vserver into another from the host:&lt;br /&gt;
 vnamespace -e &amp;lt;vserver&amp;gt; mount --rbind /directory/to/mount/somewhere /where/to/mount/it&lt;br /&gt;
 vnamespace -e &amp;lt;vserver&amp;gt; umount /where/it/was/mounted&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
 mount --bind /home /var/lib/vservers/vserver1/home&lt;br /&gt;
 mount --bind /home /var/lib/vservers/vserver2/home&lt;br /&gt;
The second method had the disavantage to require a reboot of the vserver&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in a vserver:&lt;br /&gt;
&amp;lt;br&amp;gt;Add the nfs share to /etc/vservers/&amp;lt;vserver&amp;gt;/fstab&lt;br /&gt;
&amp;lt;br&amp;gt;If you want the user to be able to do it from the vserver itself, you&#039;ve to add some capabilities, apparently sth like  SECURE_MOUNT, SECURE_REMOUNT and/or BINARY_MOUNT to /etc/vservers/&amp;lt;vserver&amp;gt;/ccapabilities (didn&#039;t try)&lt;br /&gt;
&lt;br /&gt;
==Apt-get==&lt;br /&gt;
 LANG=C vapt-get &amp;lt;my_vserver1&amp;gt; &amp;lt;my_vserver2&amp;gt; &amp;lt;...&amp;gt; -- install &amp;lt;pkg1&amp;gt; &amp;lt;pkg2&amp;gt;&lt;br /&gt;
==Unify==&lt;br /&gt;
cf immutable-linkage-invert flag&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
 mkdir /etc/vservers/template64/apps/vunify&lt;br /&gt;
 mkdir /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/vunify&lt;br /&gt;
 ln -s /etc/vservers/template64 /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/vunify/refserver.template64&lt;br /&gt;
Unification:&lt;br /&gt;
&amp;lt;br&amp;gt;Be sure both vservers are running&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; unify [-n] [-R]&lt;br /&gt;
-n for dry run, no change&lt;br /&gt;
&amp;lt;br&amp;gt;-R for de-unifying&lt;br /&gt;
&lt;br /&gt;
When using tar, add option -U to unlink &amp;amp; recreate files instead of overwriting.&lt;br /&gt;
&amp;lt;br&amp;gt;Manual set/unset of the immutable-linkage-invert flag:&lt;br /&gt;
 setattr --iunlink /my/file&lt;br /&gt;
 setattr --~iunlink /my/file&lt;br /&gt;
==Disk limits==&lt;br /&gt;
cf http://linux-vserver.org/Disk+Limits&lt;br /&gt;
&lt;br /&gt;
* Assign static contexts for the vservers (i.e. have a value between 2 and 49151 in /etc/vservers/&amp;lt;name&amp;gt;/context)&lt;br /&gt;
* Mount the filesystem holding the vserver(s) with the tagxid option&lt;br /&gt;
** Check if this is mounted properly: use cat /proc/mounts&amp;lt;br&amp;gt;Ex.: /dev/mapper/Zeus-home /home reiserfs rw,tagxid 0 0&lt;br /&gt;
** WARNING: if the filesystem is already in use with vservers, nothing prevent you to umount the filesystem while the vservers are still running, which is VERY BAD! Be careful.&lt;br /&gt;
** I could only get the tagxid taken properly into account after a reboot&lt;br /&gt;
* Change the xid of already existing files:&lt;br /&gt;
 chxid -c &amp;lt;my_vserver&amp;gt; -R /home/vservers/&amp;lt;my_vserver&amp;gt;&lt;br /&gt;
* Set limits, first method: here limit to 5Gb, 100000 inodes and 5% for the root user&amp;lt;br&amp;gt;For info as I could not get it working properly yet&lt;br /&gt;
 mkdir /var/cache/vservers&lt;br /&gt;
 ln -s /var/cache/vservers /etc/vservers/.defaults/cachebase&lt;br /&gt;
 mkdir /etc/vservers/.defaults/cachebase/&amp;lt;my_server&amp;gt;&lt;br /&gt;
 ln -s /etc/vservers/.defaults/cachebase/&amp;lt;my_server&amp;gt; /etc/vservers/&amp;lt;my_server&amp;gt;/cache&lt;br /&gt;
 mkdir -p /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0&lt;br /&gt;
 echo /home/vservers/&amp;lt;my_vserver&amp;gt; &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/directory&lt;br /&gt;
 echo $(( 5 * 1024 * 1024 )) &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/space_total&lt;br /&gt;
 echo 100000 &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/inodes_total&lt;br /&gt;
 echo 5 &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/reserved&lt;br /&gt;
* Set limits, second method:&lt;br /&gt;
** Install my vdlimit_ script in /usr/local/sbin: [[Vserver tools]]&lt;br /&gt;
 ln -s /usr/local/sbin/vdlimit_ /etc/vservers/&amp;lt;my_vserver&amp;gt;/scripts/post-start.d/vdlimit_$((5*1024))&lt;br /&gt;
** To change the limit on-the-fly simply rename the link and execute &lt;br /&gt;
 ./vdlimit_&amp;lt;new_size&amp;gt; pre-stop &amp;lt;my_vserver&amp;gt;;./vdlimit_&amp;lt;new_size&amp;gt; post-start &amp;lt;my_vserver&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
==Network==&lt;br /&gt;
===Intern network===&lt;br /&gt;
For pure loopback, use dummy interface, cf http://mirabellug.org/wikini/wakka.php?wiki=VServers&lt;br /&gt;
&lt;br /&gt;
For usable dummy interface, us permanent taps as the uml tools allow:&lt;br /&gt;
 apt-get install uml-utilities&lt;br /&gt;
* Create a pseudo-interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto tap0&lt;br /&gt;
iface tap0 inet static&lt;br /&gt;
    address 192.168.2.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
    tunctl_user uml-net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And configure vservers with the same dev=tap0&lt;br /&gt;
&lt;br /&gt;
Update: to check but actually all traffic with private or public IP will anyway be done through lo so this is probably not required&lt;br /&gt;
&lt;br /&gt;
Note that if you use openvpn, you can create tun/tap with&lt;br /&gt;
 openvpn --mktun --dev tap0&lt;br /&gt;
&lt;br /&gt;
===Configure daemons to listen only to the IP-address of the mothersystem===&lt;br /&gt;
* &#039;&#039;openbsd-inetd:&#039;&#039; (not netkit-inetd) in file /etc/inetd.conf:&amp;lt;br&amp;gt;Prepend the service with &amp;lt;IP pub&amp;gt;:&amp;lt;br&amp;gt;Example&lt;br /&gt;
 &amp;lt;IP pub&amp;gt;:cvspserver       stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver&lt;br /&gt;
* &#039;&#039;xinetd:&#039;&#039; (not inetd) in file /etc/xinetd.conf:&lt;br /&gt;
 defaults&lt;br /&gt;
 { bind = &amp;lt;IP pub&amp;gt; }&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/xinetd restart&lt;br /&gt;
* &#039;&#039;sshd:&#039;&#039; in file /etc/ssh/sshd_config:&lt;br /&gt;
 ListenAddress &amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ssh restart&lt;br /&gt;
* &#039;&#039;exim4:&#039;&#039; in file /etc/exim4/update-exim4.conf.conf:&lt;br /&gt;
 dc_local_interfaces=&#039;&amp;lt;IP pub&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/exim4 restart&lt;br /&gt;
Better to do it through debconf to avoid surprises at update time: dpkg-reconfigure exim4-config&lt;br /&gt;
* &#039;&#039;courier-imap:&#039;&#039; in file /etc/courier/imapd:&lt;br /&gt;
 ADDRESS=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/courier-imap restart&lt;br /&gt;
* &#039;&#039;courier-imap-ssl:&#039;&#039; in file /etc/courier-ssl/imapd:&lt;br /&gt;
 ADDRESS=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/courier-imap-ssl restart&lt;br /&gt;
* &#039;&#039;imapproxy:&#039;&#039; in file /etc/imapproxy.conf:&lt;br /&gt;
 listen_address &amp;lt;IP pub&amp;gt;&lt;br /&gt;
Within a vserver, you&#039;ll probably hav to reduce the cache_size or give capability to the vserver to raise the setrlimit.&lt;br /&gt;
* &#039;&#039;mysql:&#039;&#039; in file /etc/mysql/my.cnf:&lt;br /&gt;
 bind-address = &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;vsFtpd:&#039;&#039; in file /etc/vsftpd.conf:&lt;br /&gt;
 listen_address=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;postgresql:&#039;&#039; in file /etc/postgresql/postgresql.conf:&lt;br /&gt;
 virtual_host = &#039;&amp;lt;IP pub&amp;gt;&#039;&lt;br /&gt;
* &#039;&#039;apache2:&#039;&#039; in file /etc/apache2/ports.conf:&lt;br /&gt;
 Listen &amp;lt;IP pub&amp;gt;:80&lt;br /&gt;
* &#039;&#039;zope2.9:&#039;&#039; in file /etc/zope2.9/&amp;lt;instance&amp;gt;/zope.conf:&lt;br /&gt;
 ip-address &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;portmap:&#039;&#039; in file /etc/default/portmap:&lt;br /&gt;
 OPTIONS=&amp;quot;-i &amp;lt;IP pub/loopback&amp;gt;&amp;quot;&lt;br /&gt;
* &#039;&#039;dnsmasq:&#039;&#039; in file /etc/dnsmasq.conf:&lt;br /&gt;
 listen-address=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
 bind-interfaces&lt;br /&gt;
* &#039;&#039;[[Virtual_Private_Networks|openvpn]]&#039;&#039; in file /etc/openvpn/server.conf:&lt;br /&gt;
 local &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* netstat -lp -&amp;gt; other greedy daemons?&lt;br /&gt;
* Seems that this is possible via another method, here it will bind the daemon to the first IP of the interface:&amp;lt;br&amp;gt;exec /usr/sbin/chbind --ip eth0 /path/to/daemon&lt;br /&gt;
&lt;br /&gt;
===Add an interface without rebooting the vserver===&lt;br /&gt;
* add the ip to the host (ip addr add ...)&lt;br /&gt;
* add the ip to the guest&#039;s network context&lt;br /&gt;
 # naddress --add --nid &amp;lt;nid&amp;gt; --ip &amp;lt;ip&amp;gt;/&amp;lt;mask&amp;gt;&lt;br /&gt;
* enter the guest (best via ssh)&lt;br /&gt;
* restart the services if required&amp;lt;br&amp;gt;(most services will automatically start using the new addresses)&lt;br /&gt;
* update the config to reflect the changes for the next guest restart (if desired)&lt;br /&gt;
Thanks Herbert!&lt;br /&gt;
==Understanding vservers==&lt;br /&gt;
===Security contextes===&lt;br /&gt;
* Find security context of process N:&lt;br /&gt;
 chcontext --ctx 1 cat /proc/N/status|grep s_context&lt;br /&gt;
* Be in the same context:&lt;br /&gt;
 chcontext --ctx X /bin/sh&lt;br /&gt;
* Master context: 1, example to get all listening ports:&lt;br /&gt;
 chcontext --ctx 1 netstat -lpn&lt;br /&gt;
See also [http://www.solucorp.qc.ca/miscprj/s_context.hc Virtual private servers and security contexts]&lt;br /&gt;
===Ceiling capabilities===&lt;br /&gt;
* As non-root, check capBset: &lt;br /&gt;
 cat /proc/self/status&lt;br /&gt;
* Reduce ceiling caps: &lt;br /&gt;
 reducecap --secure /bin/sh&lt;br /&gt;
* Now capBset is reduced: &lt;br /&gt;
 cat /proc/self/status&lt;br /&gt;
 su&lt;br /&gt;
* capEff raised a bit but not enough to do for example /sbin/ifconfig eth0 down&lt;br /&gt;
* See also [Capabilities in Linux|http://www.lids.org/lids-howto/node34.html]&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Not necessarily related to vserver but always useful to consider :-)&lt;br /&gt;
*ssh&lt;br /&gt;
**Use the AllowUsers option to give ssh rights only to those who need it.&lt;br /&gt;
**Brute-force protection: apt-get install denyhosts&amp;lt;br&amp;gt;Edit /etc/denyhosts.conf to get email reports&amp;lt;br&amp;gt;Un case someone forgot his pwd and got banned, to remove the ban directly: remove it from /var/lib/denyhosts files and /etc/hosts.deny of course&lt;br /&gt;
*iptables (on the host)&lt;br /&gt;
**cf --uid-owner and other --XXX-owner options&amp;lt;br&amp;gt;on OUTPUT table to avoid download of malicious code&amp;lt;br&amp;gt;on INPUT table to avoid bindshells&lt;br /&gt;
*resource limits&lt;br /&gt;
** cpu/mem&lt;br /&gt;
&lt;br /&gt;
===GrSec===&lt;br /&gt;
* http://pax.grsecurity.net/&lt;br /&gt;
* http://people.linux-vserver.org/~harry/_README_&lt;br /&gt;
* http://www.zataz.net/docs/8024/introduction-grsecurity.html&lt;br /&gt;
* http://linux-vserver.org/grsecurityHowto&lt;br /&gt;
* http://ludit.kuleuven.be/software/vserver/_README_&lt;br /&gt;
 apt-get install paxctl gradm2&lt;br /&gt;
&lt;br /&gt;
==Iptables Proxy==&lt;br /&gt;
* http://www.virtuaserver.com.br/forum/viewtopic.php?t=130&lt;br /&gt;
&lt;br /&gt;
==Other tricks==&lt;br /&gt;
* For other tweaks, see http://deb.riseup.net/vserver/usage/ :&lt;br /&gt;
** What if I accidentally removed a vserver while it was running?&lt;br /&gt;
** Howto convert legacy vservers to the new format&lt;br /&gt;
** Howto add an IP to a running vserver, without restarting it?&lt;br /&gt;
** Howto make the host interface and IP available in a vserver&lt;br /&gt;
** Howto impose disk limits in each vserver&lt;br /&gt;
* http://www.paul.sladen.org/vserver/faq&lt;br /&gt;
* [http://linux-vserver.org/ProblematicPrograms Problematic programs]&lt;br /&gt;
* If you drop files from &amp;quot;outside of the vserver context&amp;quot; (from the host e.g.) you&#039;ve to reassign the correct xid to the files:&lt;br /&gt;
 chxid -c &amp;lt;vserver&amp;gt; -R /home/vservers/&amp;lt;vserver&amp;gt;&lt;br /&gt;
 # all at once:&lt;br /&gt;
 for i in $(ls /etc/vservers/); do echo $i; chxid -c $i -R /home/vservers/$i;done&lt;br /&gt;
* If you drop files from &amp;quot;outside of the vserver context&amp;quot; (from the host e.g.) you&#039;ve to regenerate the disk usage and  limit of the vserver if you use my vdlimit_ script:&lt;br /&gt;
 vserver &amp;lt;vserver&amp;gt; stop&lt;br /&gt;
 rm /var/cache/vservers/&amp;lt;vserver&amp;gt;_vdlimit_&lt;br /&gt;
 vserver &amp;lt;vserver&amp;gt; start&lt;br /&gt;
* To run a script (e.g. an /etc/init.d/start_my_daemon) in ctx 1, e.g. to start ntop and be sure it can see all the traffic, simply add at the begin of the script:&lt;br /&gt;
 if cat /proc/self/vinfo|grep -q -v &amp;quot;:[^0-9]1$&amp;quot;; then                                                                                                                      &lt;br /&gt;
    /usr/sbin/chcontext --ctx 1 $0 $*                                                                                                                                     &lt;br /&gt;
    exit                                                                                                                                                                  &lt;br /&gt;
 fi&lt;br /&gt;
* To &amp;quot;mount&amp;quot; a samba shared drive from a vserver is not possible or at least when running grsec but you can still use the good old ftp-styled smbclient&lt;br /&gt;
 smbclient //machine/share -U domain/user&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
* http://www.nongnu.org/util-vserver/doc/conf/compatibility.html&lt;br /&gt;
* http://linux-vserver.derjohn.de/&lt;br /&gt;
* [VServer wiki|http://vserver.strahlungsfrei.de/tiki-index.php]&lt;br /&gt;
* [Administrator Guide|http://linux-vserver.org/linux-vserver_administrators_gide]&lt;br /&gt;
* [Debian newvserver|http://www.paul.sladen.org/vserver/debian/]&lt;br /&gt;
* [Howto Debian vserver|http://www.howtoforge.com/linux_vserver_debian]&lt;br /&gt;
* ?? apt-get install vlan&lt;br /&gt;
* ?? ipac-ng&lt;br /&gt;
* CPU limit&lt;br /&gt;
** http://linux-vserver.org/Linux-VServer-Paper-06&lt;br /&gt;
** http://list.linux-vserver.org/archive/vserver/msg08134.html&lt;br /&gt;
* BW limit&lt;br /&gt;
** http://lartc.org/howto/&lt;br /&gt;
* http://linux-vserver.org/HowTo+Read+ProcFS&lt;br /&gt;
* http://linux-vserver.org/HistoryList?full=1&lt;br /&gt;
* Publish Munin scripts&lt;br /&gt;
* http://linux-vserver.org/VServer+installation+Fedora+Core+5&lt;br /&gt;
* http://vserver.13thfloor.at/Experimental/&lt;br /&gt;
* http://www.archivesat.com/Linux-VServer/&lt;br /&gt;
* http://www.solucorp.qc.ca/miscprj/s_context.hc?s1=1&amp;amp;s2=0&amp;amp;s3=0&amp;amp;s4=0&amp;amp;full=0&amp;amp;prjstate=1&amp;amp;nodoc=0&lt;br /&gt;
* (fr) http://fr.wikibooks.org/wiki/Vserver&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Vserver_administration&amp;diff=2139</id>
		<title>Vserver administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Vserver_administration&amp;diff=2139"/>
		<updated>2007-04-18T12:48:40Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Change the vserver base path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Official homepage: [http://linux-vserver.org/ Linux VServer Project]&lt;br /&gt;
&lt;br /&gt;
Good introduction:&lt;br /&gt;
* [http://linux-vserver.org/index.php?page=Linux-VServer-Paper Linux-VServer Technology]&lt;br /&gt;
* [http://linux-vserver.org/index.php?page=Linux-VServer-Paper-French La Technologie Linux-VServer]&lt;br /&gt;
&lt;br /&gt;
Debian support:&lt;br /&gt;
 apt-cache search vserver&lt;br /&gt;
   kernel-patch-vserver - context switching virtual private servers - kernel patch&lt;br /&gt;
   [http://www.nongnu.org/util-vserver/ util-vserver] - tools for Virtual private servers and context switching&lt;br /&gt;
   vserver-debiantools - Tools to manage debian virtual servers&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
* [http://www.lri.fr/~fragile/IMG/pdf/Quetier.pdf Benchmark Comparisons between UML, VMWare, vserver and Xen (pdf)]&lt;br /&gt;
&lt;br /&gt;
==Kernel compilation==&lt;br /&gt;
===The Debian way===&lt;br /&gt;
I followed instructions given in&lt;br /&gt;
* /usr/share/doc/kernel-patch-vserver/README.Debian&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-step 2.6]&lt;br /&gt;
* [http://deb.riseup.net/vserver/preparing/ Debian vservers]&lt;br /&gt;
* [http://arnofear.free.fr/linux/vserver-1.php Debian and vserver, french howto]&lt;br /&gt;
* [http://lena.franken.de/linux/debian_and_vserver/ Debian and vserver]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install kernel-patch-vserver linux-source-2.6.16 kernel-package fakeroot&lt;br /&gt;
cd /usr/src&lt;br /&gt;
tar xjf linux-source-2.6.16.tar.bz2&lt;br /&gt;
cd /usr/src/linux-source-2.6.16&lt;br /&gt;
cp config-2.6.16-1-amd64-k8 .config&lt;br /&gt;
export PATCH_THE_KERNEL=YES&lt;br /&gt;
make-kpkg --rootcmd fakeroot \&lt;br /&gt;
        --revision custom01 \&lt;br /&gt;
        --added-patches vserver \&lt;br /&gt;
        --append-to-version +vserver \&lt;br /&gt;
        --initrd \&lt;br /&gt;
        binary-arch&lt;br /&gt;
&amp;quot;Virtual root device support&amp;quot; -&amp;gt; **y**&lt;br /&gt;
&amp;quot;Legacy kernel API&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Show a Legacy Version ID&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Disable Legacy Networking Kernel API&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Enable Proc Security&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Enable Hard CPU Limits&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Limit the IDLE task&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Persistent Inode Context Tagging&amp;quot; -&amp;gt; UID24/GID24 (32/32 probably not yet supported on Reiserfs)&lt;br /&gt;
&amp;quot;Tag NFSD User Auth and Files&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;VServer Debugging Code&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install kernel and reboot&lt;br /&gt;
===Vanilla with GrSec, still the Debian way===&lt;br /&gt;
I used linux-2.6.17.14.tar.bz2 + patch-2.6.17.14-vs2.0.2.1-grsec2.1.9.diff&lt;br /&gt;
&amp;lt;br&amp;gt;and the config of the Debian kernel config-2.6.17-2-vserver-amd64&lt;br /&gt;
 make oldconfig&lt;br /&gt;
I activated HARDCPU limits and misc PAX &amp;amp; GRSEC stuff ([http://people.linux-vserver.org/~harry/_README_ this page] can help):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_VSERVER_HARDCPU=y&lt;br /&gt;
CONFIG_VSERVER_HARDCPU_IDLE=y&lt;br /&gt;
CONFIG_PAX=y&lt;br /&gt;
CONFIG_PAX_SOFTMODE=y&lt;br /&gt;
CONFIG_PAX_PT_PAX_FLAGS=y&lt;br /&gt;
CONFIG_PAX_HAVE_ACL_FLAGS=y&lt;br /&gt;
CONFIG_PAX_NOEXEC=y&lt;br /&gt;
CONFIG_PAX_PAGEEXEC=y&lt;br /&gt;
CONFIG_PAX_MPROTECT=y&lt;br /&gt;
CONFIG_PAX_ASLR=y&lt;br /&gt;
CONFIG_PAX_RANDUSTACK=y&lt;br /&gt;
CONFIG_PAX_RANDMMAP=y&lt;br /&gt;
CONFIG_PAX_MEMORY_SANITIZE=y&lt;br /&gt;
CONFIG_GRKERNSEC=y&lt;br /&gt;
CONFIG_GRKERNSEC_CUSTOM=y&lt;br /&gt;
CONFIG_GRKERNSEC_KMEM=y&lt;br /&gt;
CONFIG_GRKERNSEC_IO=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_MEMMAP=y&lt;br /&gt;
CONFIG_GRKERNSEC_BRUTE=y&lt;br /&gt;
CONFIG_GRKERNSEC_MODSTOP=y&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_HIDEKERN=y&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_MAXTRIES=3&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_TIMEOUT=30&lt;br /&gt;
CONFIG_GRKERNSEC_PROC=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_USER=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_ADD=y&lt;br /&gt;
CONFIG_GRKERNSEC_LINK=y&lt;br /&gt;
CONFIG_GRKERNSEC_FIFO=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_PIVOT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_CHDIR=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_MKNOD=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_SHMAT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_UNIX=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_NICE=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y&lt;br /&gt;
CONFIG_GRKERNSEC_RESLOG=y&lt;br /&gt;
CONFIG_GRKERNSEC_SIGNAL=y&lt;br /&gt;
CONFIG_GRKERNSEC_FORKFAIL=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_IPADDR=y&lt;br /&gt;
CONFIG_GRKERNSEC_EXECVE=y&lt;br /&gt;
CONFIG_GRKERNSEC_SHM=y&lt;br /&gt;
CONFIG_GRKERNSEC_DMESG=y&lt;br /&gt;
CONFIG_GRKERNSEC_RANDPID=y&lt;br /&gt;
CONFIG_GRKERNSEC_RANDNET=y&lt;br /&gt;
CONFIG_GRKERNSEC_SYSCTL=y&lt;br /&gt;
CONFIG_GRKERNSEC_FLOODTIME=10&lt;br /&gt;
CONFIG_GRKERNSEC_FLOODBURST=4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --us --uc --initrd kernel-image&lt;br /&gt;
And I got a linux-image-2.6.17.14-grsec2.1.9-vs2.0.2.1_2.6.17.14-grsec2.1.9-vs2.0.2.1-10.00.Custom_amd64.deb&lt;br /&gt;
==Host preparation==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install util-vserver vserver-debiantools&lt;br /&gt;
wget http://vserver.13thfloor.at/Stuff/SCRIPT/testme.sh&lt;br /&gt;
chmod +x testme.sh&lt;br /&gt;
./testme.sh&lt;br /&gt;
dd bs=1024k count=1024 if=/dev/zero of=1gb.test&lt;br /&gt;
modprobe loop&lt;br /&gt;
losetup /dev/loop0 ./1gb.test&lt;br /&gt;
./testfs.sh [ -F reiser ] -D /dev/loop0 -M /mnt&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
modprobe -r loop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is no error at this point but as I&#039;m using Reiserfs, I have to activate manually the extended attributes (for lsattr/chattr) by adding the following option to /etc/fstab lines: &amp;quot;attrs&amp;quot; (?? also option acl ??)&lt;br /&gt;
&amp;lt;br&amp;gt;Test: lsattr &amp;lt;mount point of a Reiserfs&amp;gt;&lt;br /&gt;
===Change the vserver base path===&lt;br /&gt;
* /etc/vservers/.defaults/vdirbase -&amp;gt; /var/lib/vservers&lt;br /&gt;
* I change it to /home/vservers, fix the above symlink&lt;br /&gt;
* Re-create the &amp;quot;chroot barrier&amp;quot;: &amp;lt;br&amp;gt;setattr --barrier /home/vservers&amp;lt;br&amp;gt;showattr /home -&amp;gt; B for vservers&lt;br /&gt;
* Some tools could have /var/lib/vservers hardcoded, for safety I create a symlink /var/lib/vservers pointing to /home/vservers&lt;br /&gt;
&lt;br /&gt;
==Manipulating vservers==&lt;br /&gt;
===Create a vserver===&lt;br /&gt;
Edit /etc/vservers/newvserver-vars:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cf http://amd64.debian.net/README.mirrors.html&lt;br /&gt;
MIRROR=&amp;quot;http://ftp.belnet.be/debian-amd64/debian&amp;quot;&lt;br /&gt;
INTERFACE=&amp;quot;&amp;lt;my_if&amp;gt;&amp;quot;&lt;br /&gt;
ARCH=&amp;quot;amd64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create a vserver with 64bits:&lt;br /&gt;
 LANG=C newvserver --hostname template64 --domain teuwen.org --ip &amp;lt;new_ip&amp;gt;/24 --dist etch&lt;br /&gt;
Create a vserver with 32bits emulation:&lt;br /&gt;
 LANG=C newvserver --hostname template32 --domain teuwen.org --ip &amp;lt;new_ip&amp;gt;/24 --dist etch --arch i386 --mirror &amp;quot;http://&amp;lt;i386_debian_mirror&amp;gt;&amp;quot;&lt;br /&gt;
Tuning:&lt;br /&gt;
* take care of the config duplication!&lt;br /&gt;
* enter the vserver and run tzconfig to choose the proper timezone&lt;br /&gt;
* fix /etc/apt/sources.list&lt;br /&gt;
* delete rcX.d links to umountroot&lt;br /&gt;
* Warning! If you use newvserver as such, it will overwrite the host /etc/motd due to a symlink&lt;br /&gt;
* See [Vserver tools] for a patch for newvserver&lt;br /&gt;
Removing unnecessary progs (check if you really don&#039;t need them!!):&lt;br /&gt;
* aptitude apt-utils base-config cpio dselect tasksel libncursesw5 libsigc++-1.2-5c2 libsigc++-2.0-0c2a&lt;br /&gt;
* dmidecode laptop-detect module-init-tools&lt;br /&gt;
* bsdmainutils ed nano nvi&lt;br /&gt;
* groff-base man-db manpages info libgdbm3&lt;br /&gt;
* netcat traceroute wget libssl0.9.8&lt;br /&gt;
* gettext-base libconsole libgnutls11 liblzo2-2 libtasn1-2-bin&lt;br /&gt;
&lt;br /&gt;
===Automatic start at bootup===&lt;br /&gt;
 echo default &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/init/mark&lt;br /&gt;
Note that at shotdown all vservers will be stopped&lt;br /&gt;
===Delete a vserver===&lt;br /&gt;
Remove dirs /home/vservers/&amp;lt;my_vserver&amp;gt; (depends on the setting of vdirbase, cf. above), /etc/vservers/&amp;lt;my_vserver&amp;gt; and /var/run/vservers/&amp;lt;my_vserver&amp;gt; and the corresponding symlink in /var/run/vservers.rev&lt;br /&gt;
===Config of a vserver===&lt;br /&gt;
&#039;&#039;TODO&#039;&#039;&lt;br /&gt;
 ?? /etc/vservers/&amp;lt;my_vserver&amp;gt;.conf&lt;br /&gt;
 ?? S_CAPS&lt;br /&gt;
see [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Detailed config page (better choosing boring CSS...)]&lt;br /&gt;
===Run a vserver===&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; start&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; enter&lt;br /&gt;
If you get &amp;quot;mesg: /dev/pts/1: Operation not permitted&amp;quot;, be root on the host with &amp;quot;su -&amp;quot;&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; stop&lt;br /&gt;
===Other tools===&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; status&lt;br /&gt;
 vserver-stat&lt;br /&gt;
 vtop, vps, vpstree, vkill&lt;br /&gt;
/etc/rc.d/init.d/rebootmgr is a daemon which can be called from vservers via vreboot and vhalt to stop/restart the vserver from inside&lt;br /&gt;
&lt;br /&gt;
See also [http://www.nongnu.org/util-vserver/doc/conf/compatibility.html compatibility of util-vserver alpha branch]&lt;br /&gt;
&lt;br /&gt;
See [[Vserver tools]] for my own/modified scripts&lt;br /&gt;
&lt;br /&gt;
===Duplicate a vserver===&lt;br /&gt;
 vserver &amp;lt;my_vserver1&amp;gt; stop&lt;br /&gt;
 dupvserver --from &amp;lt;my_vserver1&amp;gt; --to &amp;lt;my_vserver2&amp;gt; --ip &amp;lt;new_ip&amp;gt;&lt;br /&gt;
dupvserver is broken with the new configuration structure /etc/vservers/&amp;lt;my_vserver&amp;gt;/&lt;br /&gt;
&amp;lt;br&amp;gt;See [[Vserver tools]] for a patch for dupvserver&lt;br /&gt;
===Move/copy a vserver===&lt;br /&gt;
Basically stop the vserver and copy /etc/vservers/&amp;lt;my_vserver&amp;gt; and /home/vservers/&amp;lt;my_vserver&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. rsync -e ssh -avHl /vservers/XX new-server:/vserver/XX&lt;br /&gt;
==Share directories==&lt;br /&gt;
To mount a directory from one vserver into another from the host:&lt;br /&gt;
 vnamespace -e &amp;lt;vserver&amp;gt; mount --rbind /directory/to/mount/somewhere /where/to/mount/it&lt;br /&gt;
 vnamespace -e &amp;lt;vserver&amp;gt; umount /where/it/was/mounted&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
 mount --bind /home /var/lib/vservers/vserver1/home&lt;br /&gt;
 mount --bind /home /var/lib/vservers/vserver2/home&lt;br /&gt;
The second method had the disavantage to require a reboot of the vserver&lt;br /&gt;
==Apt-get==&lt;br /&gt;
 LANG=C vapt-get &amp;lt;my_vserver1&amp;gt; &amp;lt;my_vserver2&amp;gt; &amp;lt;...&amp;gt; -- install &amp;lt;pkg1&amp;gt; &amp;lt;pkg2&amp;gt;&lt;br /&gt;
==Unify==&lt;br /&gt;
cf immutable-linkage-invert flag&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
 mkdir /etc/vservers/template64/apps/vunify&lt;br /&gt;
 mkdir /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/vunify&lt;br /&gt;
 ln -s /etc/vservers/template64 /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/vunify/refserver.template64&lt;br /&gt;
Unification:&lt;br /&gt;
&amp;lt;br&amp;gt;Be sure both vservers are running&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; unify [-n] [-R]&lt;br /&gt;
-n for dry run, no change&lt;br /&gt;
&amp;lt;br&amp;gt;-R for de-unifying&lt;br /&gt;
&lt;br /&gt;
When using tar, add option -U to unlink &amp;amp; recreate files instead of overwriting.&lt;br /&gt;
&amp;lt;br&amp;gt;Manual set/unset of the immutable-linkage-invert flag:&lt;br /&gt;
 setattr --iunlink /my/file&lt;br /&gt;
 setattr --~iunlink /my/file&lt;br /&gt;
==Disk limits==&lt;br /&gt;
cf http://linux-vserver.org/Disk+Limits&lt;br /&gt;
&lt;br /&gt;
* Assign static contexts for the vservers (i.e. have a value between 2 and 49151 in /etc/vservers/&amp;lt;name&amp;gt;/context)&lt;br /&gt;
* Mount the filesystem holding the vserver(s) with the tagxid option&lt;br /&gt;
** Check if this is mounted properly: use cat /proc/mounts&amp;lt;br&amp;gt;Ex.: /dev/mapper/Zeus-home /home reiserfs rw,tagxid 0 0&lt;br /&gt;
** WARNING: if the filesystem is already in use with vservers, nothing prevent you to umount the filesystem while the vservers are still running, which is VERY BAD! Be careful.&lt;br /&gt;
** I could only get the tagxid taken properly into account after a reboot&lt;br /&gt;
* Change the xid of already existing files:&lt;br /&gt;
 chxid -c &amp;lt;my_vserver&amp;gt; -R /home/vservers/&amp;lt;my_vserver&amp;gt;&lt;br /&gt;
* Set limits, first method: here limit to 5Gb, 100000 inodes and 5% for the root user&amp;lt;br&amp;gt;For info as I could not get it working properly yet&lt;br /&gt;
 mkdir /var/cache/vservers&lt;br /&gt;
 ln -s /var/cache/vservers /etc/vservers/.defaults/cachebase&lt;br /&gt;
 mkdir /etc/vservers/.defaults/cachebase/&amp;lt;my_server&amp;gt;&lt;br /&gt;
 ln -s /etc/vservers/.defaults/cachebase/&amp;lt;my_server&amp;gt; /etc/vservers/&amp;lt;my_server&amp;gt;/cache&lt;br /&gt;
 mkdir -p /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0&lt;br /&gt;
 echo /home/vservers/&amp;lt;my_vserver&amp;gt; &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/directory&lt;br /&gt;
 echo $(( 5 * 1024 * 1024 )) &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/space_total&lt;br /&gt;
 echo 100000 &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/inodes_total&lt;br /&gt;
 echo 5 &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/reserved&lt;br /&gt;
* Set limits, second method:&lt;br /&gt;
** Install my vdlimit_ script in /usr/local/sbin: [[Vserver tools]]&lt;br /&gt;
 ln -s /usr/local/sbin/vdlimit_ /etc/vservers/&amp;lt;my_vserver&amp;gt;/scripts/post-start.d/vdlimit_$((5*1024))&lt;br /&gt;
==Network==&lt;br /&gt;
===Intern network===&lt;br /&gt;
For pure loopback, use dummy interface, cf http://mirabellug.org/wikini/wakka.php?wiki=VServers&lt;br /&gt;
&lt;br /&gt;
For usable dummy interface, us permanent taps as the uml tools allow:&lt;br /&gt;
 apt-get install uml-utilities&lt;br /&gt;
* Create a pseudo-interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto tap0&lt;br /&gt;
iface tap0 inet static&lt;br /&gt;
    address 192.168.2.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
    tunctl_user uml-net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And configure vservers with the same dev=tap0&lt;br /&gt;
&lt;br /&gt;
Update: to check but actually all traffic with private or public IP will anyway be done through lo so this is probably not required&lt;br /&gt;
===Configure daemons to listen only to the IP-address of the mothersystem===&lt;br /&gt;
* &#039;&#039;openbsd-inetd:&#039;&#039; (not netkit-inetd) in file /etc/inetd.conf:&amp;lt;br&amp;gt;Prepend the service with &amp;lt;IP pub&amp;gt;:&amp;lt;br&amp;gt;Example&lt;br /&gt;
 &amp;lt;IP pub&amp;gt;:cvspserver       stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver&lt;br /&gt;
* &#039;&#039;xinetd:&#039;&#039; (not inetd) in file /etc/xinetd.conf:&lt;br /&gt;
 defaults&lt;br /&gt;
 { bind = &amp;lt;IP pub&amp;gt; }&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/xinetd restart&lt;br /&gt;
* &#039;&#039;sshd:&#039;&#039; in file /etc/ssh/sshd_config:&lt;br /&gt;
 ListenAddress &amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ssh restart&lt;br /&gt;
* &#039;&#039;exim4:&#039;&#039; in file /etc/exim4/update-exim4.conf.conf:&lt;br /&gt;
 dc_local_interfaces=&#039;&amp;lt;IP pub&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/exim4 restart&lt;br /&gt;
Better to do it through debconf to avoid surprises at update time: dpkg-reconfigure exim4-config&lt;br /&gt;
* &#039;&#039;courier-imap:&#039;&#039; in file /etc/courier/imapd:&lt;br /&gt;
 ADDRESS=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/courier-imap restart&lt;br /&gt;
* &#039;&#039;courier-imap-ssl:&#039;&#039; in file /etc/courier-ssl/imapd:&lt;br /&gt;
 ADDRESS=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/courier-imap-ssl restart&lt;br /&gt;
* &#039;&#039;imapproxy:&#039;&#039; in file /etc/imapproxy.conf:&lt;br /&gt;
 listen_address &amp;lt;IP pub&amp;gt;&lt;br /&gt;
Within a vserver, you&#039;ll probably hav to reduce the cache_size or give capability to the vserver to raise the setrlimit.&lt;br /&gt;
* &#039;&#039;mysql:&#039;&#039; in file /etc/mysql/my.cnf:&lt;br /&gt;
 bind-address = &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;vsFtpd:&#039;&#039; in file /etc/vsftpd.conf:&lt;br /&gt;
 listen_address=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;postgresql:&#039;&#039; in file /etc/postgresql/postgresql.conf:&lt;br /&gt;
 virtual_host = &#039;&amp;lt;IP pub&amp;gt;&#039;&lt;br /&gt;
* &#039;&#039;apache2:&#039;&#039; in file /etc/apache2/ports.conf:&lt;br /&gt;
 Listen &amp;lt;IP pub&amp;gt;:80&lt;br /&gt;
* &#039;&#039;zope2.9:&#039;&#039; in file /etc/zope2.9/&amp;lt;instance&amp;gt;/zope.conf:&lt;br /&gt;
 ip-address &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;portmap:&#039;&#039; in file /etc/default/portmap:&lt;br /&gt;
 OPTIONS=&amp;quot;-i &amp;lt;IP pub/loopback&amp;gt;&amp;quot;&lt;br /&gt;
* &#039;&#039;dnsmasq:&#039;&#039; in file /etc/dnsmasq.conf:&lt;br /&gt;
 listen-address=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
 bind-interfaces&lt;br /&gt;
* netstat -lp -&amp;gt; other greedy daemons?&lt;br /&gt;
* Seems that this is possible via another method, here it will bind the daemon to the first IP of the interface:&amp;lt;br&amp;gt;exec /usr/sbin/chbind --ip eth0 /path/to/daemon&lt;br /&gt;
===Add an interface without rebooting the vserver===&lt;br /&gt;
* add the ip to the host (ip addr add ...)&lt;br /&gt;
* add the ip to the guest&#039;s network context&lt;br /&gt;
 # naddress --add --nid &amp;lt;nid&amp;gt; --ip &amp;lt;ip&amp;gt;/&amp;lt;mask&amp;gt;&lt;br /&gt;
* enter the guest (best via ssh)&lt;br /&gt;
* restart the services if required&amp;lt;br&amp;gt;(most services will automatically start using the new addresses)&lt;br /&gt;
* update the config to reflect the changes for the next guest restart (if desired)&lt;br /&gt;
Thanks Herbert!&lt;br /&gt;
==Understanding vservers==&lt;br /&gt;
===Security contextes===&lt;br /&gt;
* Find security context of process N:&lt;br /&gt;
 chcontext --ctx 1 cat /proc/N/status|grep s_context&lt;br /&gt;
* Be in the same context:&lt;br /&gt;
 chcontext --ctx X /bin/sh&lt;br /&gt;
* Master context: 1, example to get all listening ports:&lt;br /&gt;
 chcontext --ctx 1 netstat -lpn&lt;br /&gt;
See also [http://www.solucorp.qc.ca/miscprj/s_context.hc Virtual private servers and security contexts]&lt;br /&gt;
===Ceiling capabilities===&lt;br /&gt;
* As non-root, check capBset: &lt;br /&gt;
 cat /proc/self/status&lt;br /&gt;
* Reduce ceiling caps: &lt;br /&gt;
 reducecap --secure /bin/sh&lt;br /&gt;
* Now capBset is reduced: &lt;br /&gt;
 cat /proc/self/status&lt;br /&gt;
 su&lt;br /&gt;
* capEff raised a bit but not enough to do for example /sbin/ifconfig eth0 down&lt;br /&gt;
* See also [Capabilities in Linux|http://www.lids.org/lids-howto/node34.html]&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Not necessarily related to vserver but always useful to consider :-)&lt;br /&gt;
*ssh&lt;br /&gt;
**Use the AllowUsers option to give ssh rights only to those who need it.&lt;br /&gt;
**Brute-force protection: apt-get install denyhosts&amp;lt;br&amp;gt;Edit /etc/denyhosts.conf to get email reports&amp;lt;br&amp;gt;Un case someone forgot his pwd and got banned, to remove the ban directly: remove it from /var/lib/denyhosts files and /etc/hosts.deny of course&lt;br /&gt;
*iptables (on the host)&lt;br /&gt;
**cf --uid-owner and other --XXX-owner options&amp;lt;br&amp;gt;on OUTPUT table to avoid download of malicious code&amp;lt;br&amp;gt;on INPUT table to avoid bindshells&lt;br /&gt;
*resource limits&lt;br /&gt;
** cpu/mem&lt;br /&gt;
&lt;br /&gt;
===GrSec===&lt;br /&gt;
* http://pax.grsecurity.net/&lt;br /&gt;
* http://people.linux-vserver.org/~harry/_README_&lt;br /&gt;
* http://www.zataz.net/docs/8024/introduction-grsecurity.html&lt;br /&gt;
* http://linux-vserver.org/grsecurityHowto&lt;br /&gt;
* http://ludit.kuleuven.be/software/vserver/_README_&lt;br /&gt;
 apt-get install paxctl gradm2&lt;br /&gt;
&lt;br /&gt;
==Iptables Proxy==&lt;br /&gt;
* http://www.virtuaserver.com.br/forum/viewtopic.php?t=130&lt;br /&gt;
&lt;br /&gt;
==Other tricks==&lt;br /&gt;
* For other tweaks, see http://deb.riseup.net/vserver/usage/ :&lt;br /&gt;
** What if I accidentally removed a vserver while it was running?&lt;br /&gt;
** Howto convert legacy vservers to the new format&lt;br /&gt;
** Howto add an IP to a running vserver, without restarting it?&lt;br /&gt;
** Howto make the host interface and IP available in a vserver&lt;br /&gt;
** Howto impose disk limits in each vserver&lt;br /&gt;
* http://www.paul.sladen.org/vserver/faq&lt;br /&gt;
* [http://linux-vserver.org/ProblematicPrograms Problematic programs]&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
* http://www.nongnu.org/util-vserver/doc/conf/compatibility.html&lt;br /&gt;
* http://linux-vserver.derjohn.de/&lt;br /&gt;
* [VServer wiki|http://vserver.strahlungsfrei.de/tiki-index.php]&lt;br /&gt;
* [Administrator Guide|http://linux-vserver.org/linux-vserver_administrators_gide]&lt;br /&gt;
* [Debian newvserver|http://www.paul.sladen.org/vserver/debian/]&lt;br /&gt;
* [Howto Debian vserver|http://www.howtoforge.com/linux_vserver_debian]&lt;br /&gt;
* ?? apt-get install vlan&lt;br /&gt;
* ?? ipac-ng&lt;br /&gt;
* CPU limit&lt;br /&gt;
** http://linux-vserver.org/Linux-VServer-Paper-06&lt;br /&gt;
** http://list.linux-vserver.org/archive/vserver/msg08134.html&lt;br /&gt;
* BW limit&lt;br /&gt;
** http://lartc.org/howto/&lt;br /&gt;
* http://linux-vserver.org/HowTo+Read+ProcFS&lt;br /&gt;
* http://linux-vserver.org/HistoryList?full=1&lt;br /&gt;
* Publish Munin scripts&lt;br /&gt;
* http://linux-vserver.org/VServer+installation+Fedora+Core+5&lt;br /&gt;
* http://vserver.13thfloor.at/Experimental/&lt;br /&gt;
* http://www.archivesat.com/Linux-VServer/&lt;br /&gt;
* http://www.solucorp.qc.ca/miscprj/s_context.hc?s1=1&amp;amp;s2=0&amp;amp;s3=0&amp;amp;s4=0&amp;amp;full=0&amp;amp;prjstate=1&amp;amp;nodoc=0&lt;br /&gt;
* (fr) http://fr.wikibooks.org/wiki/Vserver&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Vserver_administration&amp;diff=2138</id>
		<title>Vserver administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Vserver_administration&amp;diff=2138"/>
		<updated>2007-04-18T12:48:26Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Change the vserver base path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Official homepage: [http://linux-vserver.org/ Linux VServer Project]&lt;br /&gt;
&lt;br /&gt;
Good introduction:&lt;br /&gt;
* [http://linux-vserver.org/index.php?page=Linux-VServer-Paper Linux-VServer Technology]&lt;br /&gt;
* [http://linux-vserver.org/index.php?page=Linux-VServer-Paper-French La Technologie Linux-VServer]&lt;br /&gt;
&lt;br /&gt;
Debian support:&lt;br /&gt;
 apt-cache search vserver&lt;br /&gt;
   kernel-patch-vserver - context switching virtual private servers - kernel patch&lt;br /&gt;
   [http://www.nongnu.org/util-vserver/ util-vserver] - tools for Virtual private servers and context switching&lt;br /&gt;
   vserver-debiantools - Tools to manage debian virtual servers&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
* [http://www.lri.fr/~fragile/IMG/pdf/Quetier.pdf Benchmark Comparisons between UML, VMWare, vserver and Xen (pdf)]&lt;br /&gt;
&lt;br /&gt;
==Kernel compilation==&lt;br /&gt;
===The Debian way===&lt;br /&gt;
I followed instructions given in&lt;br /&gt;
* /usr/share/doc/kernel-patch-vserver/README.Debian&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-step 2.6]&lt;br /&gt;
* [http://deb.riseup.net/vserver/preparing/ Debian vservers]&lt;br /&gt;
* [http://arnofear.free.fr/linux/vserver-1.php Debian and vserver, french howto]&lt;br /&gt;
* [http://lena.franken.de/linux/debian_and_vserver/ Debian and vserver]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install kernel-patch-vserver linux-source-2.6.16 kernel-package fakeroot&lt;br /&gt;
cd /usr/src&lt;br /&gt;
tar xjf linux-source-2.6.16.tar.bz2&lt;br /&gt;
cd /usr/src/linux-source-2.6.16&lt;br /&gt;
cp config-2.6.16-1-amd64-k8 .config&lt;br /&gt;
export PATCH_THE_KERNEL=YES&lt;br /&gt;
make-kpkg --rootcmd fakeroot \&lt;br /&gt;
        --revision custom01 \&lt;br /&gt;
        --added-patches vserver \&lt;br /&gt;
        --append-to-version +vserver \&lt;br /&gt;
        --initrd \&lt;br /&gt;
        binary-arch&lt;br /&gt;
&amp;quot;Virtual root device support&amp;quot; -&amp;gt; **y**&lt;br /&gt;
&amp;quot;Legacy kernel API&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Show a Legacy Version ID&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Disable Legacy Networking Kernel API&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Enable Proc Security&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Enable Hard CPU Limits&amp;quot; -&amp;gt; y&lt;br /&gt;
&amp;quot;Limit the IDLE task&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;Persistent Inode Context Tagging&amp;quot; -&amp;gt; UID24/GID24 (32/32 probably not yet supported on Reiserfs)&lt;br /&gt;
&amp;quot;Tag NFSD User Auth and Files&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;quot;VServer Debugging Code&amp;quot; -&amp;gt; n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install kernel and reboot&lt;br /&gt;
===Vanilla with GrSec, still the Debian way===&lt;br /&gt;
I used linux-2.6.17.14.tar.bz2 + patch-2.6.17.14-vs2.0.2.1-grsec2.1.9.diff&lt;br /&gt;
&amp;lt;br&amp;gt;and the config of the Debian kernel config-2.6.17-2-vserver-amd64&lt;br /&gt;
 make oldconfig&lt;br /&gt;
I activated HARDCPU limits and misc PAX &amp;amp; GRSEC stuff ([http://people.linux-vserver.org/~harry/_README_ this page] can help):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_VSERVER_HARDCPU=y&lt;br /&gt;
CONFIG_VSERVER_HARDCPU_IDLE=y&lt;br /&gt;
CONFIG_PAX=y&lt;br /&gt;
CONFIG_PAX_SOFTMODE=y&lt;br /&gt;
CONFIG_PAX_PT_PAX_FLAGS=y&lt;br /&gt;
CONFIG_PAX_HAVE_ACL_FLAGS=y&lt;br /&gt;
CONFIG_PAX_NOEXEC=y&lt;br /&gt;
CONFIG_PAX_PAGEEXEC=y&lt;br /&gt;
CONFIG_PAX_MPROTECT=y&lt;br /&gt;
CONFIG_PAX_ASLR=y&lt;br /&gt;
CONFIG_PAX_RANDUSTACK=y&lt;br /&gt;
CONFIG_PAX_RANDMMAP=y&lt;br /&gt;
CONFIG_PAX_MEMORY_SANITIZE=y&lt;br /&gt;
CONFIG_GRKERNSEC=y&lt;br /&gt;
CONFIG_GRKERNSEC_CUSTOM=y&lt;br /&gt;
CONFIG_GRKERNSEC_KMEM=y&lt;br /&gt;
CONFIG_GRKERNSEC_IO=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_MEMMAP=y&lt;br /&gt;
CONFIG_GRKERNSEC_BRUTE=y&lt;br /&gt;
CONFIG_GRKERNSEC_MODSTOP=y&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_HIDEKERN=y&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_MAXTRIES=3&lt;br /&gt;
CONFIG_GRKERNSEC_ACL_TIMEOUT=30&lt;br /&gt;
CONFIG_GRKERNSEC_PROC=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_USER=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_ADD=y&lt;br /&gt;
CONFIG_GRKERNSEC_LINK=y&lt;br /&gt;
CONFIG_GRKERNSEC_FIFO=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_PIVOT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_CHDIR=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_MKNOD=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_SHMAT=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_UNIX=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_NICE=y&lt;br /&gt;
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y&lt;br /&gt;
CONFIG_GRKERNSEC_RESLOG=y&lt;br /&gt;
CONFIG_GRKERNSEC_SIGNAL=y&lt;br /&gt;
CONFIG_GRKERNSEC_FORKFAIL=y&lt;br /&gt;
CONFIG_GRKERNSEC_PROC_IPADDR=y&lt;br /&gt;
CONFIG_GRKERNSEC_EXECVE=y&lt;br /&gt;
CONFIG_GRKERNSEC_SHM=y&lt;br /&gt;
CONFIG_GRKERNSEC_DMESG=y&lt;br /&gt;
CONFIG_GRKERNSEC_RANDPID=y&lt;br /&gt;
CONFIG_GRKERNSEC_RANDNET=y&lt;br /&gt;
CONFIG_GRKERNSEC_SYSCTL=y&lt;br /&gt;
CONFIG_GRKERNSEC_FLOODTIME=10&lt;br /&gt;
CONFIG_GRKERNSEC_FLOODBURST=4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --us --uc --initrd kernel-image&lt;br /&gt;
And I got a linux-image-2.6.17.14-grsec2.1.9-vs2.0.2.1_2.6.17.14-grsec2.1.9-vs2.0.2.1-10.00.Custom_amd64.deb&lt;br /&gt;
==Host preparation==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install util-vserver vserver-debiantools&lt;br /&gt;
wget http://vserver.13thfloor.at/Stuff/SCRIPT/testme.sh&lt;br /&gt;
chmod +x testme.sh&lt;br /&gt;
./testme.sh&lt;br /&gt;
dd bs=1024k count=1024 if=/dev/zero of=1gb.test&lt;br /&gt;
modprobe loop&lt;br /&gt;
losetup /dev/loop0 ./1gb.test&lt;br /&gt;
./testfs.sh [ -F reiser ] -D /dev/loop0 -M /mnt&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
modprobe -r loop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is no error at this point but as I&#039;m using Reiserfs, I have to activate manually the extended attributes (for lsattr/chattr) by adding the following option to /etc/fstab lines: &amp;quot;attrs&amp;quot; (?? also option acl ??)&lt;br /&gt;
&amp;lt;br&amp;gt;Test: lsattr &amp;lt;mount point of a Reiserfs&amp;gt;&lt;br /&gt;
===Change the vserver base path===&lt;br /&gt;
* /etc/vservers/.defaults/vdirbase -&amp;gt; /var/lib/vservers&lt;br /&gt;
* I change it to /home/vservers, fix the above symlink&lt;br /&gt;
* Re-create the &amp;quot;chroot barrier&amp;quot;: &amp;lt;br&amp;gt;setattr --barrier /home/vservers%%%showattr /home -&amp;gt; B for vservers&lt;br /&gt;
* Some tools could have /var/lib/vservers hardcoded, for safety I create a symlink /var/lib/vservers pointing to /home/vservers&lt;br /&gt;
&lt;br /&gt;
==Manipulating vservers==&lt;br /&gt;
===Create a vserver===&lt;br /&gt;
Edit /etc/vservers/newvserver-vars:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cf http://amd64.debian.net/README.mirrors.html&lt;br /&gt;
MIRROR=&amp;quot;http://ftp.belnet.be/debian-amd64/debian&amp;quot;&lt;br /&gt;
INTERFACE=&amp;quot;&amp;lt;my_if&amp;gt;&amp;quot;&lt;br /&gt;
ARCH=&amp;quot;amd64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create a vserver with 64bits:&lt;br /&gt;
 LANG=C newvserver --hostname template64 --domain teuwen.org --ip &amp;lt;new_ip&amp;gt;/24 --dist etch&lt;br /&gt;
Create a vserver with 32bits emulation:&lt;br /&gt;
 LANG=C newvserver --hostname template32 --domain teuwen.org --ip &amp;lt;new_ip&amp;gt;/24 --dist etch --arch i386 --mirror &amp;quot;http://&amp;lt;i386_debian_mirror&amp;gt;&amp;quot;&lt;br /&gt;
Tuning:&lt;br /&gt;
* take care of the config duplication!&lt;br /&gt;
* enter the vserver and run tzconfig to choose the proper timezone&lt;br /&gt;
* fix /etc/apt/sources.list&lt;br /&gt;
* delete rcX.d links to umountroot&lt;br /&gt;
* Warning! If you use newvserver as such, it will overwrite the host /etc/motd due to a symlink&lt;br /&gt;
* See [Vserver tools] for a patch for newvserver&lt;br /&gt;
Removing unnecessary progs (check if you really don&#039;t need them!!):&lt;br /&gt;
* aptitude apt-utils base-config cpio dselect tasksel libncursesw5 libsigc++-1.2-5c2 libsigc++-2.0-0c2a&lt;br /&gt;
* dmidecode laptop-detect module-init-tools&lt;br /&gt;
* bsdmainutils ed nano nvi&lt;br /&gt;
* groff-base man-db manpages info libgdbm3&lt;br /&gt;
* netcat traceroute wget libssl0.9.8&lt;br /&gt;
* gettext-base libconsole libgnutls11 liblzo2-2 libtasn1-2-bin&lt;br /&gt;
&lt;br /&gt;
===Automatic start at bootup===&lt;br /&gt;
 echo default &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/init/mark&lt;br /&gt;
Note that at shotdown all vservers will be stopped&lt;br /&gt;
===Delete a vserver===&lt;br /&gt;
Remove dirs /home/vservers/&amp;lt;my_vserver&amp;gt; (depends on the setting of vdirbase, cf. above), /etc/vservers/&amp;lt;my_vserver&amp;gt; and /var/run/vservers/&amp;lt;my_vserver&amp;gt; and the corresponding symlink in /var/run/vservers.rev&lt;br /&gt;
===Config of a vserver===&lt;br /&gt;
&#039;&#039;TODO&#039;&#039;&lt;br /&gt;
 ?? /etc/vservers/&amp;lt;my_vserver&amp;gt;.conf&lt;br /&gt;
 ?? S_CAPS&lt;br /&gt;
see [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Detailed config page (better choosing boring CSS...)]&lt;br /&gt;
===Run a vserver===&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; start&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; enter&lt;br /&gt;
If you get &amp;quot;mesg: /dev/pts/1: Operation not permitted&amp;quot;, be root on the host with &amp;quot;su -&amp;quot;&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; stop&lt;br /&gt;
===Other tools===&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; status&lt;br /&gt;
 vserver-stat&lt;br /&gt;
 vtop, vps, vpstree, vkill&lt;br /&gt;
/etc/rc.d/init.d/rebootmgr is a daemon which can be called from vservers via vreboot and vhalt to stop/restart the vserver from inside&lt;br /&gt;
&lt;br /&gt;
See also [http://www.nongnu.org/util-vserver/doc/conf/compatibility.html compatibility of util-vserver alpha branch]&lt;br /&gt;
&lt;br /&gt;
See [[Vserver tools]] for my own/modified scripts&lt;br /&gt;
&lt;br /&gt;
===Duplicate a vserver===&lt;br /&gt;
 vserver &amp;lt;my_vserver1&amp;gt; stop&lt;br /&gt;
 dupvserver --from &amp;lt;my_vserver1&amp;gt; --to &amp;lt;my_vserver2&amp;gt; --ip &amp;lt;new_ip&amp;gt;&lt;br /&gt;
dupvserver is broken with the new configuration structure /etc/vservers/&amp;lt;my_vserver&amp;gt;/&lt;br /&gt;
&amp;lt;br&amp;gt;See [[Vserver tools]] for a patch for dupvserver&lt;br /&gt;
===Move/copy a vserver===&lt;br /&gt;
Basically stop the vserver and copy /etc/vservers/&amp;lt;my_vserver&amp;gt; and /home/vservers/&amp;lt;my_vserver&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. rsync -e ssh -avHl /vservers/XX new-server:/vserver/XX&lt;br /&gt;
==Share directories==&lt;br /&gt;
To mount a directory from one vserver into another from the host:&lt;br /&gt;
 vnamespace -e &amp;lt;vserver&amp;gt; mount --rbind /directory/to/mount/somewhere /where/to/mount/it&lt;br /&gt;
 vnamespace -e &amp;lt;vserver&amp;gt; umount /where/it/was/mounted&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
 mount --bind /home /var/lib/vservers/vserver1/home&lt;br /&gt;
 mount --bind /home /var/lib/vservers/vserver2/home&lt;br /&gt;
The second method had the disavantage to require a reboot of the vserver&lt;br /&gt;
==Apt-get==&lt;br /&gt;
 LANG=C vapt-get &amp;lt;my_vserver1&amp;gt; &amp;lt;my_vserver2&amp;gt; &amp;lt;...&amp;gt; -- install &amp;lt;pkg1&amp;gt; &amp;lt;pkg2&amp;gt;&lt;br /&gt;
==Unify==&lt;br /&gt;
cf immutable-linkage-invert flag&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
 mkdir /etc/vservers/template64/apps/vunify&lt;br /&gt;
 mkdir /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/vunify&lt;br /&gt;
 ln -s /etc/vservers/template64 /etc/vservers/&amp;lt;my_vserver&amp;gt;/apps/vunify/refserver.template64&lt;br /&gt;
Unification:&lt;br /&gt;
&amp;lt;br&amp;gt;Be sure both vservers are running&lt;br /&gt;
 vserver &amp;lt;my_vserver&amp;gt; unify [-n] [-R]&lt;br /&gt;
-n for dry run, no change&lt;br /&gt;
&amp;lt;br&amp;gt;-R for de-unifying&lt;br /&gt;
&lt;br /&gt;
When using tar, add option -U to unlink &amp;amp; recreate files instead of overwriting.&lt;br /&gt;
&amp;lt;br&amp;gt;Manual set/unset of the immutable-linkage-invert flag:&lt;br /&gt;
 setattr --iunlink /my/file&lt;br /&gt;
 setattr --~iunlink /my/file&lt;br /&gt;
==Disk limits==&lt;br /&gt;
cf http://linux-vserver.org/Disk+Limits&lt;br /&gt;
&lt;br /&gt;
* Assign static contexts for the vservers (i.e. have a value between 2 and 49151 in /etc/vservers/&amp;lt;name&amp;gt;/context)&lt;br /&gt;
* Mount the filesystem holding the vserver(s) with the tagxid option&lt;br /&gt;
** Check if this is mounted properly: use cat /proc/mounts&amp;lt;br&amp;gt;Ex.: /dev/mapper/Zeus-home /home reiserfs rw,tagxid 0 0&lt;br /&gt;
** WARNING: if the filesystem is already in use with vservers, nothing prevent you to umount the filesystem while the vservers are still running, which is VERY BAD! Be careful.&lt;br /&gt;
** I could only get the tagxid taken properly into account after a reboot&lt;br /&gt;
* Change the xid of already existing files:&lt;br /&gt;
 chxid -c &amp;lt;my_vserver&amp;gt; -R /home/vservers/&amp;lt;my_vserver&amp;gt;&lt;br /&gt;
* Set limits, first method: here limit to 5Gb, 100000 inodes and 5% for the root user&amp;lt;br&amp;gt;For info as I could not get it working properly yet&lt;br /&gt;
 mkdir /var/cache/vservers&lt;br /&gt;
 ln -s /var/cache/vservers /etc/vservers/.defaults/cachebase&lt;br /&gt;
 mkdir /etc/vservers/.defaults/cachebase/&amp;lt;my_server&amp;gt;&lt;br /&gt;
 ln -s /etc/vservers/.defaults/cachebase/&amp;lt;my_server&amp;gt; /etc/vservers/&amp;lt;my_server&amp;gt;/cache&lt;br /&gt;
 mkdir -p /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0&lt;br /&gt;
 echo /home/vservers/&amp;lt;my_vserver&amp;gt; &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/directory&lt;br /&gt;
 echo $(( 5 * 1024 * 1024 )) &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/space_total&lt;br /&gt;
 echo 100000 &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/inodes_total&lt;br /&gt;
 echo 5 &amp;gt; /etc/vservers/&amp;lt;my_vserver&amp;gt;/dlimits/0/reserved&lt;br /&gt;
* Set limits, second method:&lt;br /&gt;
** Install my vdlimit_ script in /usr/local/sbin: [[Vserver tools]]&lt;br /&gt;
 ln -s /usr/local/sbin/vdlimit_ /etc/vservers/&amp;lt;my_vserver&amp;gt;/scripts/post-start.d/vdlimit_$((5*1024))&lt;br /&gt;
==Network==&lt;br /&gt;
===Intern network===&lt;br /&gt;
For pure loopback, use dummy interface, cf http://mirabellug.org/wikini/wakka.php?wiki=VServers&lt;br /&gt;
&lt;br /&gt;
For usable dummy interface, us permanent taps as the uml tools allow:&lt;br /&gt;
 apt-get install uml-utilities&lt;br /&gt;
* Create a pseudo-interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto tap0&lt;br /&gt;
iface tap0 inet static&lt;br /&gt;
    address 192.168.2.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
    tunctl_user uml-net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And configure vservers with the same dev=tap0&lt;br /&gt;
&lt;br /&gt;
Update: to check but actually all traffic with private or public IP will anyway be done through lo so this is probably not required&lt;br /&gt;
===Configure daemons to listen only to the IP-address of the mothersystem===&lt;br /&gt;
* &#039;&#039;openbsd-inetd:&#039;&#039; (not netkit-inetd) in file /etc/inetd.conf:&amp;lt;br&amp;gt;Prepend the service with &amp;lt;IP pub&amp;gt;:&amp;lt;br&amp;gt;Example&lt;br /&gt;
 &amp;lt;IP pub&amp;gt;:cvspserver       stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver&lt;br /&gt;
* &#039;&#039;xinetd:&#039;&#039; (not inetd) in file /etc/xinetd.conf:&lt;br /&gt;
 defaults&lt;br /&gt;
 { bind = &amp;lt;IP pub&amp;gt; }&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/xinetd restart&lt;br /&gt;
* &#039;&#039;sshd:&#039;&#039; in file /etc/ssh/sshd_config:&lt;br /&gt;
 ListenAddress &amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ssh restart&lt;br /&gt;
* &#039;&#039;exim4:&#039;&#039; in file /etc/exim4/update-exim4.conf.conf:&lt;br /&gt;
 dc_local_interfaces=&#039;&amp;lt;IP pub&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/exim4 restart&lt;br /&gt;
Better to do it through debconf to avoid surprises at update time: dpkg-reconfigure exim4-config&lt;br /&gt;
* &#039;&#039;courier-imap:&#039;&#039; in file /etc/courier/imapd:&lt;br /&gt;
 ADDRESS=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/courier-imap restart&lt;br /&gt;
* &#039;&#039;courier-imap-ssl:&#039;&#039; in file /etc/courier-ssl/imapd:&lt;br /&gt;
 ADDRESS=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/courier-imap-ssl restart&lt;br /&gt;
* &#039;&#039;imapproxy:&#039;&#039; in file /etc/imapproxy.conf:&lt;br /&gt;
 listen_address &amp;lt;IP pub&amp;gt;&lt;br /&gt;
Within a vserver, you&#039;ll probably hav to reduce the cache_size or give capability to the vserver to raise the setrlimit.&lt;br /&gt;
* &#039;&#039;mysql:&#039;&#039; in file /etc/mysql/my.cnf:&lt;br /&gt;
 bind-address = &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;vsFtpd:&#039;&#039; in file /etc/vsftpd.conf:&lt;br /&gt;
 listen_address=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;postgresql:&#039;&#039; in file /etc/postgresql/postgresql.conf:&lt;br /&gt;
 virtual_host = &#039;&amp;lt;IP pub&amp;gt;&#039;&lt;br /&gt;
* &#039;&#039;apache2:&#039;&#039; in file /etc/apache2/ports.conf:&lt;br /&gt;
 Listen &amp;lt;IP pub&amp;gt;:80&lt;br /&gt;
* &#039;&#039;zope2.9:&#039;&#039; in file /etc/zope2.9/&amp;lt;instance&amp;gt;/zope.conf:&lt;br /&gt;
 ip-address &amp;lt;IP pub&amp;gt;&lt;br /&gt;
* &#039;&#039;portmap:&#039;&#039; in file /etc/default/portmap:&lt;br /&gt;
 OPTIONS=&amp;quot;-i &amp;lt;IP pub/loopback&amp;gt;&amp;quot;&lt;br /&gt;
* &#039;&#039;dnsmasq:&#039;&#039; in file /etc/dnsmasq.conf:&lt;br /&gt;
 listen-address=&amp;lt;IP pub&amp;gt;&lt;br /&gt;
 bind-interfaces&lt;br /&gt;
* netstat -lp -&amp;gt; other greedy daemons?&lt;br /&gt;
* Seems that this is possible via another method, here it will bind the daemon to the first IP of the interface:&amp;lt;br&amp;gt;exec /usr/sbin/chbind --ip eth0 /path/to/daemon&lt;br /&gt;
===Add an interface without rebooting the vserver===&lt;br /&gt;
* add the ip to the host (ip addr add ...)&lt;br /&gt;
* add the ip to the guest&#039;s network context&lt;br /&gt;
 # naddress --add --nid &amp;lt;nid&amp;gt; --ip &amp;lt;ip&amp;gt;/&amp;lt;mask&amp;gt;&lt;br /&gt;
* enter the guest (best via ssh)&lt;br /&gt;
* restart the services if required&amp;lt;br&amp;gt;(most services will automatically start using the new addresses)&lt;br /&gt;
* update the config to reflect the changes for the next guest restart (if desired)&lt;br /&gt;
Thanks Herbert!&lt;br /&gt;
==Understanding vservers==&lt;br /&gt;
===Security contextes===&lt;br /&gt;
* Find security context of process N:&lt;br /&gt;
 chcontext --ctx 1 cat /proc/N/status|grep s_context&lt;br /&gt;
* Be in the same context:&lt;br /&gt;
 chcontext --ctx X /bin/sh&lt;br /&gt;
* Master context: 1, example to get all listening ports:&lt;br /&gt;
 chcontext --ctx 1 netstat -lpn&lt;br /&gt;
See also [http://www.solucorp.qc.ca/miscprj/s_context.hc Virtual private servers and security contexts]&lt;br /&gt;
===Ceiling capabilities===&lt;br /&gt;
* As non-root, check capBset: &lt;br /&gt;
 cat /proc/self/status&lt;br /&gt;
* Reduce ceiling caps: &lt;br /&gt;
 reducecap --secure /bin/sh&lt;br /&gt;
* Now capBset is reduced: &lt;br /&gt;
 cat /proc/self/status&lt;br /&gt;
 su&lt;br /&gt;
* capEff raised a bit but not enough to do for example /sbin/ifconfig eth0 down&lt;br /&gt;
* See also [Capabilities in Linux|http://www.lids.org/lids-howto/node34.html]&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Not necessarily related to vserver but always useful to consider :-)&lt;br /&gt;
*ssh&lt;br /&gt;
**Use the AllowUsers option to give ssh rights only to those who need it.&lt;br /&gt;
**Brute-force protection: apt-get install denyhosts&amp;lt;br&amp;gt;Edit /etc/denyhosts.conf to get email reports&amp;lt;br&amp;gt;Un case someone forgot his pwd and got banned, to remove the ban directly: remove it from /var/lib/denyhosts files and /etc/hosts.deny of course&lt;br /&gt;
*iptables (on the host)&lt;br /&gt;
**cf --uid-owner and other --XXX-owner options&amp;lt;br&amp;gt;on OUTPUT table to avoid download of malicious code&amp;lt;br&amp;gt;on INPUT table to avoid bindshells&lt;br /&gt;
*resource limits&lt;br /&gt;
** cpu/mem&lt;br /&gt;
&lt;br /&gt;
===GrSec===&lt;br /&gt;
* http://pax.grsecurity.net/&lt;br /&gt;
* http://people.linux-vserver.org/~harry/_README_&lt;br /&gt;
* http://www.zataz.net/docs/8024/introduction-grsecurity.html&lt;br /&gt;
* http://linux-vserver.org/grsecurityHowto&lt;br /&gt;
* http://ludit.kuleuven.be/software/vserver/_README_&lt;br /&gt;
 apt-get install paxctl gradm2&lt;br /&gt;
&lt;br /&gt;
==Iptables Proxy==&lt;br /&gt;
* http://www.virtuaserver.com.br/forum/viewtopic.php?t=130&lt;br /&gt;
&lt;br /&gt;
==Other tricks==&lt;br /&gt;
* For other tweaks, see http://deb.riseup.net/vserver/usage/ :&lt;br /&gt;
** What if I accidentally removed a vserver while it was running?&lt;br /&gt;
** Howto convert legacy vservers to the new format&lt;br /&gt;
** Howto add an IP to a running vserver, without restarting it?&lt;br /&gt;
** Howto make the host interface and IP available in a vserver&lt;br /&gt;
** Howto impose disk limits in each vserver&lt;br /&gt;
* http://www.paul.sladen.org/vserver/faq&lt;br /&gt;
* [http://linux-vserver.org/ProblematicPrograms Problematic programs]&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
* http://www.nongnu.org/util-vserver/doc/conf/compatibility.html&lt;br /&gt;
* http://linux-vserver.derjohn.de/&lt;br /&gt;
* [VServer wiki|http://vserver.strahlungsfrei.de/tiki-index.php]&lt;br /&gt;
* [Administrator Guide|http://linux-vserver.org/linux-vserver_administrators_gide]&lt;br /&gt;
* [Debian newvserver|http://www.paul.sladen.org/vserver/debian/]&lt;br /&gt;
* [Howto Debian vserver|http://www.howtoforge.com/linux_vserver_debian]&lt;br /&gt;
* ?? apt-get install vlan&lt;br /&gt;
* ?? ipac-ng&lt;br /&gt;
* CPU limit&lt;br /&gt;
** http://linux-vserver.org/Linux-VServer-Paper-06&lt;br /&gt;
** http://list.linux-vserver.org/archive/vserver/msg08134.html&lt;br /&gt;
* BW limit&lt;br /&gt;
** http://lartc.org/howto/&lt;br /&gt;
* http://linux-vserver.org/HowTo+Read+ProcFS&lt;br /&gt;
* http://linux-vserver.org/HistoryList?full=1&lt;br /&gt;
* Publish Munin scripts&lt;br /&gt;
* http://linux-vserver.org/VServer+installation+Fedora+Core+5&lt;br /&gt;
* http://vserver.13thfloor.at/Experimental/&lt;br /&gt;
* http://www.archivesat.com/Linux-VServer/&lt;br /&gt;
* http://www.solucorp.qc.ca/miscprj/s_context.hc?s1=1&amp;amp;s2=0&amp;amp;s3=0&amp;amp;s4=0&amp;amp;full=0&amp;amp;prjstate=1&amp;amp;nodoc=0&lt;br /&gt;
* (fr) http://fr.wikibooks.org/wiki/Vserver&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1960</id>
		<title>Linux Certification</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1960"/>
		<updated>2007-03-08T08:35:35Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Try yourself */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[http://www.lpi.org Linux Professional Institute]===&lt;br /&gt;
&lt;br /&gt;
See also [http://en.wikipedia.org/wiki/Linux_Professional_Institute On Wikipedia]&lt;br /&gt;
&lt;br /&gt;
====Objectives====&lt;br /&gt;
* [http://www.lpi.org/en/lpi/english/certification/the_lpic_program/exam_101_detailed_objectives Detailed objectives for exam 101]&lt;br /&gt;
* [http://www.lpi.org/en/lpi/english/certification/the_lpic_program/exam_102_detailed_objectives Detailed objectives for exam 102]&lt;br /&gt;
====Books====&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789722895/ LPIC Linux Level 1, Test 1 (Cheat Sheet S.) (Paperback) ] 352 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/3937514023 LPIC-1. (Hardcover)] &lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0764547720 LPIC1 Certification Bible (Paperback)] 880 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789731274 LPIC I Exam Cram 2: Exam 101, 102 (Exam Cram 2 S.) (Paperback)] 588 pages, said to be up-to-date, [http://www.examcram2.com/bookstore/product.asp?isbn=0789731274&amp;amp;rl=1 official website]&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/1565927486 LPI Linux Certification in a Nutshell (Paperback)] 576 pages [http://www.amazon.co.uk/gp/product/0596005288 New edition in July 2006] current edition is largely outdated&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/078214425X LPIC-1: Linux Professional Institute Certification: Study Guide (Level 1 Exams 101 and 102) (Paperback)] 656 pages&lt;br /&gt;
&lt;br /&gt;
====Courses====&lt;br /&gt;
* http://www.linuxcertified.com/linux-courseware.html&lt;br /&gt;
* http://www.lynuxtraining.com/formations/index.html#3&lt;br /&gt;
* http://www.ibm.com/Search/?q=lpic-1&amp;amp;v=11&amp;amp;lang=en&amp;amp;cc=us&amp;amp;en=utf&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search&lt;br /&gt;
* http://www.sybex.com/WileyCDA/SybexTitle/productCd-078214425X,navId-291002,pageCd-resources.html&lt;br /&gt;
* http://www.bradfordlearning.com/cgi-bin/Item.cgi?action=ShowCategory&amp;amp;category=certification16&amp;amp;item=34&lt;br /&gt;
====Tutorials====&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/lpi/index.html Seems impossible to register for now...&lt;br /&gt;
** [http://www.google.fr/search?hl=fr&amp;amp;q=ibm.com%2FdeveloperWorks+filetype%3Apdf+intitle%3Alpi&amp;amp;btnG=Rechercher&amp;amp;meta= Search for copies on Google]&lt;br /&gt;
** e.g. here: http://www.eastbayimprov.com/dave/ux/linuxstudy/&lt;br /&gt;
* http://en.wikibooks.org/wiki/LPI_Linux_Certification&lt;br /&gt;
* http://en.wikibooks.org/wiki/Learning_the_vi_editor&lt;br /&gt;
* http://en.wikibooks.org/wiki/Category:Linux&lt;br /&gt;
&lt;br /&gt;
====Centers====&lt;br /&gt;
Among others Telindus Leuven can offer this certification&lt;br /&gt;
* http://www.vue.com/servlet/vue.web2.core.Dispatcher?webContext=CandidateSite&amp;amp;webApp=TestCenterLocator&amp;amp;requestedAction=register&amp;amp;cid=117&lt;br /&gt;
* http://www.jcacademy.be/testingCentre/_fr/index.asp&lt;br /&gt;
First register to LPI:&lt;br /&gt;
* http://www.lpi.org/en/lpi/english/certification/register_now&lt;br /&gt;
Then to PearsonVue with your LPI ID (visible in Candidate Overview after registration to LPI)&lt;br /&gt;
* +32 16 38 28 18 (Telindus)&lt;br /&gt;
* https://wsvprd1b.pearsonvue.com/obtainlogin/&lt;br /&gt;
* Select &amp;quot;IT certification&amp;quot; / &amp;quot;Linux Professional Institute Testing&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Try yourself===&lt;br /&gt;
Simulators:&lt;br /&gt;
* http://www.linux-praxis.de/lpisim/lpi.html&lt;br /&gt;
* http://www.ph-home.de/linux-test/lpi-1/index.php&lt;br /&gt;
&lt;br /&gt;
Here are &amp;quot;clean&amp;quot; test questions copied from the LPI site but without the answers and fuzzed (on LPI the right answer is always the first!) so you can really try them and then check the answers on the LPI website.&lt;br /&gt;
&lt;br /&gt;
====LPIC-1 101 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mc&lt;br /&gt;
If you wanted to turn off mail notification, what command would you use?&lt;br /&gt;
&lt;br /&gt;
   mesg n&lt;br /&gt;
   mesg off&lt;br /&gt;
   biff n&lt;br /&gt;
   notify off&lt;br /&gt;
   set notify=off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mcma&lt;br /&gt;
Which of these commands could you use to show one page of output at a time?&lt;br /&gt;
&lt;br /&gt;
   more&lt;br /&gt;
   sed&lt;br /&gt;
   pause&lt;br /&gt;
   less&lt;br /&gt;
   grep&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.3 TYPE: mcma&lt;br /&gt;
Which commands will give you information about how much disk space each file in the current directory uses?&lt;br /&gt;
&lt;br /&gt;
   ls&lt;br /&gt;
   ls -l&lt;br /&gt;
   ls -a&lt;br /&gt;
   ls -la&lt;br /&gt;
   du .&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.4 TYPE: mc&lt;br /&gt;
What command would send the output of cmd1 to the input of cmd2?&lt;br /&gt;
&lt;br /&gt;
   cmd1 cmd2&lt;br /&gt;
   cmd1 ; cmd2&lt;br /&gt;
   cmd1 | cmd2&lt;br /&gt;
   cmd1 || cmd2&lt;br /&gt;
   cmd1 &amp;amp;&amp;amp; cmd2&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.3.5 TYPE: mc&lt;br /&gt;
Under the bash shell, when a command is running, pressing control-Z will usually&lt;br /&gt;
&lt;br /&gt;
   adds an EOF to the file.&lt;br /&gt;
   suspend the foreground task.&lt;br /&gt;
   kill the command running in the foreground&lt;br /&gt;
   move the foreground task into the background&lt;br /&gt;
   log the user off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.8.1 TYPE: mc&lt;br /&gt;
What is the &#039;man&#039; command used for?&lt;br /&gt;
&lt;br /&gt;
   it is the replacement for the &#039;boy&#039; command&lt;br /&gt;
   it is a standard alias to &#039;ls -la | more&#039;&lt;br /&gt;
   it is used to display formatted html pages&lt;br /&gt;
   to display information about the syntax for a command&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
In which file might you find the following entry: root:x:0:0::/root:/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
As root, what command would you type to initiate a password change for user larry?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.2 TYPE: mc&lt;br /&gt;
Under the bash shell which is the most appropriate place to set environment variables that apply to all users?&lt;br /&gt;
&lt;br /&gt;
   rc.local&lt;br /&gt;
   rc.sysinit&lt;br /&gt;
   /etc/skel&lt;br /&gt;
   /etc/profile&lt;br /&gt;
   /etc/bashrc&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.4 TYPE: mc&lt;br /&gt;
Which statement describes the cron daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.1 TYPE: mcma&lt;br /&gt;
Which of the following are valid block devices on most default linux distributions?&lt;br /&gt;
&lt;br /&gt;
   loopback devices&lt;br /&gt;
   serial ports&lt;br /&gt;
   virtual terminals&lt;br /&gt;
   tape devices&lt;br /&gt;
   hard disks&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.2 TYPE: mc&lt;br /&gt;
How can you best see how much free space you have in your current directory?&lt;br /&gt;
&lt;br /&gt;
   Use df&lt;br /&gt;
   Use df .&lt;br /&gt;
   Use df /&lt;br /&gt;
   Use du .&lt;br /&gt;
   Use du /&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.5 TYPE: fitb&lt;br /&gt;
Which command would you use to alter the permissions of a file (do not give any parameters)&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.8 TYPE: mc&lt;br /&gt;
Which command will update the slocate database as a background process?&lt;br /&gt;
&lt;br /&gt;
   updatedb &amp;amp;&lt;br /&gt;
   slocate --start &amp;amp;&lt;br /&gt;
   slocate --update &amp;amp;&lt;br /&gt;
   slocate --updatedb &amp;amp;&lt;br /&gt;
   slocatedb&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.6.2 TYPE: mc&lt;br /&gt;
Having booted into run level 3, how would you change to run level 5 without rebooting?&lt;br /&gt;
&lt;br /&gt;
   startx&lt;br /&gt;
   run 5&lt;br /&gt;
   ALT-F7-5&lt;br /&gt;
   setinit 5&lt;br /&gt;
   telinit 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/lpi/english/certification/the_lpic_program/exam_101_tasks_and_sample_questions&lt;br /&gt;
&lt;br /&gt;
====LPIC-1 102 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.1.1 TYPE: mc&lt;br /&gt;
which command is used to change settings on IDE hard disk drives?&lt;br /&gt;
&lt;br /&gt;
   diskparm&lt;br /&gt;
   hdparam&lt;br /&gt;
   hdparm&lt;br /&gt;
   hddparm&lt;br /&gt;
   ideconfig&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: mc&lt;br /&gt;
Your logfile shows repeated connections to TCP port 143. Which named service is being accessed?&lt;br /&gt;
&lt;br /&gt;
   imap&lt;br /&gt;
   smbd&lt;br /&gt;
   nmbd&lt;br /&gt;
   pop2&lt;br /&gt;
   smtp&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: fitb&lt;br /&gt;
What type of packet does an IP ping use (provide acronym)?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.2 TYPE: mc&lt;br /&gt;
To learn more about the management of an internet site the best utility to use would be:&lt;br /&gt;
&lt;br /&gt;
   ping&lt;br /&gt;
   rpcdump&lt;br /&gt;
   telnet&lt;br /&gt;
   traceroute&lt;br /&gt;
   whois&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.3 TYPE: mc&lt;br /&gt;
If you had a Linux system routing 3 different Networks through 3 NICs and you were having trouble with your IP-Forwarding. Where would you look to ensure that IP-Forwarding is actually enabled?&lt;br /&gt;
&lt;br /&gt;
   iptraf -d eth0&lt;br /&gt;
   cat /proc/net/tcp&lt;br /&gt;
   cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
   netstat&lt;br /&gt;
   tail -f /var/log/messages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.1 TYPE: mc&lt;br /&gt;
What file is used for associating port numbers to port names.&lt;br /&gt;
&lt;br /&gt;
   /etc/hosts&lt;br /&gt;
   /etc/inetd.conf&lt;br /&gt;
   /etc/ports&lt;br /&gt;
   /etc/securetty&lt;br /&gt;
   /etc/services&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.4 TYPE: mc&lt;br /&gt;
You want to make the directory /local available via NFS. All users on your local network should be allowed to read and write files. Which of the following is correct, assuming that your local network is 192.168.1.0, and your machine is part of the DNS domain foobar.com?&lt;br /&gt;
&lt;br /&gt;
   192.168.1.0 /local&lt;br /&gt;
   /local 192.168.1.0(rw)&lt;br /&gt;
   /local 192.168.1.0/255.255.255.0(rw)&lt;br /&gt;
   /local *.com(rw)&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.14.1 TYPE: fitb&lt;br /&gt;
Which file can you create to prevent non-root users from logging into the system? (specify path and filename)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.2 TYPE: fitb&lt;br /&gt;
What command can be used to display a formatted output of the wtmp file? (no arguments)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.3 TYPE: fitb&lt;br /&gt;
Which command can be executed by a user who is already logged into the system, in order to change to the root user? (type the command without any parameters)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
To cause a particular print job to be printed next, regardless of its current position in the queue, what command would be used?&lt;br /&gt;
&lt;br /&gt;
   lpc topq&lt;br /&gt;
   lpc -t&lt;br /&gt;
   lpq -t&lt;br /&gt;
   lpq --next&lt;br /&gt;
   lpc move&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
Which statement describes the LPD daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.10.4 TYPE: mc&lt;br /&gt;
When configuring a terminal for X what does the -fn switch do?&lt;br /&gt;
&lt;br /&gt;
   It sets the terminal&#039;s default function.&lt;br /&gt;
   It places the terminal in the foreground on your screen.&lt;br /&gt;
   It sets the terminal&#039;s initial value to false.&lt;br /&gt;
   It sets the terminal&#039;s initial display to reverse video.&lt;br /&gt;
   It sets the font size and or type for the terminal.&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.1 TYPE: mc&lt;br /&gt;
What command(s) do you use to create swap space?&lt;br /&gt;
&lt;br /&gt;
   activeswap&lt;br /&gt;
   initswap&lt;br /&gt;
   mkfs -t swap&lt;br /&gt;
   mkswap&lt;br /&gt;
   swapon&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.3 TYPE: fitb&lt;br /&gt;
Type the full command you could use to decompress the file &amp;quot;foo.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   decompress foo.gz&lt;br /&gt;
   gzip -d foo.gz&lt;br /&gt;
   gunzip -d foo.gz&lt;br /&gt;
   gunzip foo.gz&lt;br /&gt;
   unzip foo.gz&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.5 TYPE: mc&lt;br /&gt;
How can you add package information from a file Packages to the database of available Debian packages?&lt;br /&gt;
&lt;br /&gt;
   dpkg --merge-avail Packages&lt;br /&gt;
   dpkg --record-avail Packages&lt;br /&gt;
   dpkg --update-avail Packages&lt;br /&gt;
   dpkg -U Packages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.6 TYPE: mc&lt;br /&gt;
You need to find out which package owns a file called /etc/paper.config. Which command will answer this question?&lt;br /&gt;
&lt;br /&gt;
   rpm --requires /etc/paper.config&lt;br /&gt;
   rpm -Fq /etc/paper.config&lt;br /&gt;
   rpm -q /etc/paper.config&lt;br /&gt;
   rpm -qa|grep /etc/paper.config&lt;br /&gt;
   rpm -qf /etc/paper.config&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/lpi/english/certification/the_lpic_program/exam_102_tasks_and_sample_questions&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Customizing_Knoppix&amp;diff=1791</id>
		<title>Customizing Knoppix</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Customizing_Knoppix&amp;diff=1791"/>
		<updated>2007-02-15T11:11:17Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Versions currently supported===&lt;br /&gt;
Currently this document is written for Knoppix 5.0.1&lt;br /&gt;
&amp;lt;br&amp;gt;It also works with FCCU v11.0 CD&lt;br /&gt;
&lt;br /&gt;
It has to be updated for 5.1.1 as aufs replaces unionfs&lt;br /&gt;
&lt;br /&gt;
===Principle===&lt;br /&gt;
Knoppix is now based on Unionfs (cf [http://www.fsl.cs.sunysb.edu/project-unionfs.html here] or [http://www.filesystems.org/project-unionfs.html there])&lt;br /&gt;
&amp;lt;br&amp;gt;See [http://www.linux-live.org/unionfs/ this page]to discover and understand unionfs.&lt;br /&gt;
&lt;br /&gt;
The goal of the setup is to get control on an environment constituted of an original Knoppix CD and a USB stick of our own.&lt;br /&gt;
&lt;br /&gt;
Knoppix has already such setup foreseen but slightly differently.&lt;br /&gt;
&lt;br /&gt;
Basic Knoppix CD boot ends up into an unionfs constituted of&lt;br /&gt;
* RAM (starts empty)&lt;br /&gt;
* Knoppix CD&lt;br /&gt;
so everything is modifiable on run-time but every reboots start again from fresh CD.&lt;br /&gt;
&lt;br /&gt;
Knoppix has also the possiblity to create a script on a USB stick so that the setup becomes:&lt;br /&gt;
* Image on USB stick&lt;br /&gt;
* Knoppix CD&lt;br /&gt;
so everything is again modifiable but changes are kept across reboots.&lt;br /&gt;
&lt;br /&gt;
The problem with such a solution is that the USB image tends to grow unavoidably with the inherent entropy of a system in use (mainly /tmp).&lt;br /&gt;
&lt;br /&gt;
Here we will start from this setup but with the following layout:&lt;br /&gt;
* RAM (starts empty)&lt;br /&gt;
* Image on USB stick&lt;br /&gt;
* Knoppix CD&lt;br /&gt;
Now we combine advantages of both worlds: a fresh state at boot time but under our control.&lt;br /&gt;
&lt;br /&gt;
===Creation===&lt;br /&gt;
====knoppix.sh====&lt;br /&gt;
USB stick will have to hold a customised version of the script available on the Knoppix under /usr/sbin/knoppix-image&lt;br /&gt;
&amp;lt;br&amp;gt;Customised because this is the whole goal of the operation, customising a Knoppix without remasterising the CD-Rom&lt;br /&gt;
&amp;lt;br&amp;gt;The script goes in the root of the USB stick and has to be named knoppix.sh, this is a must!&lt;br /&gt;
&amp;lt;br&amp;gt;Here is the diff between the original knoppix-image and our knoppix.sh script:&lt;br /&gt;
* Handle my_own.img image&lt;br /&gt;
* Skip the main user menu&lt;br /&gt;
* Call unionctl by ourselves and reroute /home through unionfs&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- knoppix-image	2006-04-23 00:19:38.000000000 +0200&lt;br /&gt;
+++ knoppix.sh	2006-08-16 11:19:04.000000000 +0200&lt;br /&gt;
@@ -49,7 +49,7 @@&lt;br /&gt;
 [ -z &amp;quot;$LANGUAGE&amp;quot; ] &amp;amp;&amp;amp; export LANGUAGE&lt;br /&gt;
 [ -z &amp;quot;$CHARSET&amp;quot; ] &amp;amp;&amp;amp; export CHARSET&lt;br /&gt;
&lt;br /&gt;
-IMAGE=&amp;quot;$1&amp;quot;&lt;br /&gt;
+IMAGE=&amp;quot;$1/my_own.img&amp;quot;&lt;br /&gt;
 [ -n &amp;quot;$IMAGE&amp;quot; -a -f &amp;quot;$IMAGE&amp;quot; ] || { $DIALOG --title ERROR --msgbox &amp;quot;Usage: $0 imagefile&amp;quot; 8 55; bailout; }&lt;br /&gt;
 [ &amp;quot;`id -u`&amp;quot; = &amp;quot;0&amp;quot; ] || { $DIALOG --title ERROR --msgbox &amp;quot;$0 must be run as in admin mode.&amp;quot; 8 55; bailout; }&lt;br /&gt;
&lt;br /&gt;
@@ -213,7 +213,9 @@&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 SELECTION=&amp;quot;&amp;quot;&lt;br /&gt;
-if $DIALOG --title &amp;quot;$TITLE&amp;quot; --timeout 20 --defaultno --checklist &amp;quot;$DESC1&amp;quot; 22 75 4 home &amp;quot;$MENU1&amp;quot; on system &amp;quot;$MENU2&amp;quot; on overwrite &amp;quot;$MENU3&amp;quot; off init &amp;quot;$MENU4&amp;quot; on 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
+&lt;br /&gt;
+#if $DIALOG --title &amp;quot;$TITLE&amp;quot; --timeout 20 --defaultno --checklist &amp;quot;$DESC1&amp;quot; 22 75 4 home &amp;quot;$MENU1&amp;quot; on system &amp;quot;$MENU2&amp;quot; on overwrite &amp;quot;$MENU3&amp;quot; off init &amp;quot;$MENU4&amp;quot; on 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
+if true 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
  # if $DIALOG --title &amp;quot;$TITLE&amp;quot; --timeout 20 --defaultno --checklist &amp;quot;$DESC1&amp;quot; 22 75 4 home &amp;quot;$MENU1&amp;quot; on 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
  SELECTION=&amp;quot;$(&amp;lt;$TMP)&amp;quot;&lt;br /&gt;
  rm -f &amp;quot;$TMP&amp;quot;&lt;br /&gt;
@@ -314,3 +316,15 @@&lt;br /&gt;
 fi&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
+&lt;br /&gt;
+#My own changes: Add /home between CD-ROM and RAM&lt;br /&gt;
+unionctl /UNIONFS --add --after /ramdisk --mode ro /KNOPPIX.IMG&lt;br /&gt;
+&lt;br /&gt;
+#My own changes: Reroute /home via unionfs&lt;br /&gt;
+#Originally /home is a symlink to only the ramdisk as&lt;br /&gt;
+#there is no /home at all on the CD-ROM but we want to&lt;br /&gt;
+#have /home as union of ramdisk and our extra layer&lt;br /&gt;
+rm -f /home&lt;br /&gt;
+ln -s /UNIONFS/home /home&lt;br /&gt;
+&lt;br /&gt;
+#All My own customisation will be done from here:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When later we will boot from the Knoppix CD, by giving the &amp;quot;myconf=scan&amp;quot; argument on the boot line, the CD will look for... a script called knoppix.sh&lt;br /&gt;
&amp;lt;br&amp;gt;From this script we mount a filesystem image with our changes, the image is an ext3 fs and the file is at the root of the USB stick, named my_own.img&lt;br /&gt;
====my_own.img====&lt;br /&gt;
Name can change but must be adapted consequently in the knoppix.sh script.&lt;br /&gt;
&lt;br /&gt;
To create the image my_own.img:&lt;br /&gt;
&amp;lt;br&amp;gt;Create an empty file of the right size (here 10Mb)&lt;br /&gt;
 $ dd if=/dev/zero of=my_own.img bs=1024 count=10240&lt;br /&gt;
Format it as ext3 (say yes when the system points out that you are about formatting a file instead of a partition)&lt;br /&gt;
 $ mkfs -t ext3 my_own.img&lt;br /&gt;
Mount it in loopback mode somewhere (here /media/disk) as root&lt;br /&gt;
 # mount -o loop my_own.img /media/disk&lt;br /&gt;
Place a file so we will be able to check if everything went right at next step:&lt;br /&gt;
 # mkdir /media/disk/etc&lt;br /&gt;
 # echo test &amp;gt; /media/disk/etc/my_own.txt&lt;br /&gt;
Umount the loopback image&lt;br /&gt;
 # umount /media/disk&lt;br /&gt;
Reboot on the Knoppix with the boot command &lt;br /&gt;
 knoppix myconf=scan&lt;br /&gt;
&lt;br /&gt;
Now you can check the existence of a file /etc/my_own.txt, this will be the proof everything went well up to now.&lt;br /&gt;
&lt;br /&gt;
===Customisation===&lt;br /&gt;
You can check the status of the unionfs we got so far by typing&lt;br /&gt;
 # unionctl --list /UNIONFS&lt;br /&gt;
* /UNIONFS is the merged view through unionfs and, by symlinks, most of the view you get from / (try ls -al /)&lt;br /&gt;
* /ramdisk is the RAM layer, everything you do on / or /UNIONFS goes to RAM and will be lost next reboot, be careful!!&lt;br /&gt;
* /KNOPPIX is the read-only content of the CD, mounted through a decompression layer (that&#039;s how you get gigs of files on a CD)&amp;lt;br&amp;gt;If you boot from the DVD there is also a /KNOPPIX2, this is just because the DVD filesystem could not hold files of more than 2G (they are under /cdrom/KNOPPIX/)&lt;br /&gt;
* Between /ramdisk and /KNOPPIX is /KNOPPIX.IMG, this is our customisation layer.&amp;lt;br&amp;gt;Through unionfs, this layer is set as read-only so all modifications will always go to RAM.&amp;lt;br&amp;gt;To modify stuffs in the customisation layer, you have to do it via /KNOPPIX.IMG which is mounted with r/w accesses&lt;br /&gt;
&lt;br /&gt;
So, a priori, every new or changed file has simply to be inserted in the /KNOPPIX.IMG layer&lt;br /&gt;
&lt;br /&gt;
===Exceptions===&lt;br /&gt;
Note that unionfs seems to feature a caching system because sometimes changes done via /KNOPPIX.IMG do not appear through unionfs and a reboot could be required&lt;br /&gt;
&lt;br /&gt;
====/home====&lt;br /&gt;
This directory is not present on the CD and is created on-the-fly.&lt;br /&gt;
&amp;lt;br&amp;gt;Originally it is even not part of unionfs but only in /ramdisk but our knoppix.sh script rerouted it through unionfs.&lt;br /&gt;
&amp;lt;br&amp;gt;So adding new files can be done simply by adding files (! owner and permissions) to /KNOPPIX.IMG/home/knoppix.&lt;br /&gt;
&amp;lt;br&amp;gt;Modifying file to be created later on-the-fly is much more tricky.&lt;br /&gt;
&amp;lt;br&amp;gt;These modifications have to be done via the knoppix.sh script.&lt;br /&gt;
&amp;lt;br&amp;gt;We have first to understand when the knoppix.sh is executed:&lt;br /&gt;
&amp;lt;br&amp;gt;The script is called by /etc/init.d/knoppix-autoconfig but most of the /home will be created later, by /etc/X11/Xsession.d/45xsession from /etc/skelfrom /etc/skel, /etc/sysconfig and /usr/share/knoppix and from the script itself.&lt;br /&gt;
&amp;lt;br&amp;gt;One way could be to simply replace the 45xsession script by ours but this would break probably any tentative to run the next Knoppix version with our setup so it is better to change as few things as possible.&lt;br /&gt;
&lt;br /&gt;
====Drivers====&lt;br /&gt;
Hardware was already discovered and drivers were already loaded when our script is called.&lt;br /&gt;
&amp;lt;br&amp;gt;Depending of the driver some specific actions will have to be taken.&lt;br /&gt;
&amp;lt;br&amp;gt;The driver must be compiled for the kernel used in the Knoppix CD.&lt;br /&gt;
&amp;lt;br&amp;gt;For version 5.0.1 the kernel tree of the CD is broken and if this is not impossible to compile a driver from the CD this is extremely challenging.&lt;br /&gt;
&amp;lt;br&amp;gt;The DVD version contains the full kernel source tree so drivers should be compiled against the DVD (which runs the same kernel), this will save a lot of effort.&lt;br /&gt;
* The driver file should be copied to /KNOPPIX.IMG/lib/modules/...&lt;br /&gt;
* A call to depmod is required to generate new symbol tables and those will have also to be copied to /KNOPPIX.IMG/lib/modules/...&lt;br /&gt;
* If the driver did not exist on the CD, then we can simply load manually the driver with a modprobe from our script.&lt;br /&gt;
* If the system relies on udev to set automatically some rights or whatever and if udev rules were added, then it is wise to restart udev from knoppix.sh script so that next time the hardware is plugged these rules will be effective.&lt;br /&gt;
* If the driver is an updated version of an existing driver on the CD then things are slightly more complex:&amp;lt;br&amp;gt;All drivers loaded during the boot are copied for a mysterious reason to /ramdisk&amp;lt;br&amp;gt;So before calling depmod, better first to overwrite the old driver with the new one in /ramdisk&amp;lt;br&amp;gt;The procedure will then be, from the knoppix.sh script: rmmod the driver, overwrite the old version with the new one in /ramdisk, modprobe the new one.&lt;br /&gt;
&lt;br /&gt;
===Exception examples===&lt;br /&gt;
====New driver====&lt;br /&gt;
Here this is the case of a new driver, not available on the original Knoppix CD&lt;br /&gt;
&amp;lt;br&amp;gt;Install the compiled driver under /KNOPPIX.IMG/lib/modules/2.6.17/kernel/drivers/...&lt;br /&gt;
&amp;lt;br&amp;gt;Execute depmod and copy new /ramdisk/lib/modules/2.6.17/modules.* to /KNOPPIX.IMG&lt;br /&gt;
&amp;lt;br&amp;gt;If there are configuration files, simply copy them to /KNOPPIX.IMG/etc&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. /KNOPPIX.IMG/etc/udev/rules.d/my_driver.rules&lt;br /&gt;
&lt;br /&gt;
Then, we have to append the following to our knoppix.sh script:&lt;br /&gt;
* restarting udev so that it is aware of the new driver (for subsequent hotpluggings of the hardware)&lt;br /&gt;
* loading manually the driver (in case the hardware was already plugged when the Knoppix booted)&lt;br /&gt;
 # My driver&lt;br /&gt;
 /etc/init.d/udev restart&lt;br /&gt;
 modprobe my_module&lt;br /&gt;
&lt;br /&gt;
====New shared library====&lt;br /&gt;
Install the new lib and its symlink under /KNOPPIX.IMG/usr/local/lib&lt;br /&gt;
&amp;lt;br&amp;gt;Regenerate the lib cache with ldconfig and copy it from /etc/ld.so.cache to /KNOPPIX.IMG/etc/&lt;br /&gt;
&lt;br /&gt;
====Fixing a driver====&lt;br /&gt;
Here this is the case of a driver available on the original Knoppix CD but not with the last firmware update (rendering the driver unusable): ipw2200&lt;br /&gt;
&lt;br /&gt;
Install the last firmware under /KNOPPIX.IMG/usr/lib/hotplug/firmware/ipw2200-*.fw&lt;br /&gt;
&lt;br /&gt;
Then we have to append the following to our knoppix.sh script:&lt;br /&gt;
* Simply force reloading of the driver, which will look again for its firmware&lt;br /&gt;
 # ipw2200 driver&lt;br /&gt;
 if lsmod | grep -q ipw2200; then&lt;br /&gt;
    rmmod ipw2200&lt;br /&gt;
    modprobe ipw2200&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
====Upgrading a driver====&lt;br /&gt;
Here this is the case of a driver available on the original Knoppix CD but we want e.g. to upgrade it or use a patched version.&lt;br /&gt;
&amp;lt;br&amp;gt;As said before, all drivers loaded during the boot are copied to /ramdisk so as we want to update them, we better have to update those in /ramdisk as well.&lt;br /&gt;
Install the compiled drivers under /KNOPPIX.IMG/lib/modules/2.6.17/kernel/drivers/... and /ramdisk/lib/modules/2.6.17/kernel/drivers/... and binaries under /KNOPPIX.IMG/usr/local/bin&lt;br /&gt;
&amp;lt;br&amp;gt;Execute depmod and copy new /ramdisk/lib/modules/2.6.17/modules.* to /KNOPPIX.IMG&lt;br /&gt;
&lt;br /&gt;
Then we have to append the following to our knoppix.sh script:&lt;br /&gt;
* Copy the driver to /ramdisk as well&lt;br /&gt;
* Force reloading of the updated driver&lt;br /&gt;
 # my new version of driver&lt;br /&gt;
 # Note that loaded drivers were copied also to /ramdisk so we need to change them there&lt;br /&gt;
 if lsmod | grep -q old_driver; then&lt;br /&gt;
    rmmod old_drivers...&lt;br /&gt;
    /bin/cp /KNOPPIX.IMG/lib/modules/2.6.17/kernel/drivers/net/* /ramdisk/lib/modules/2.6.17/kernel/drivers/net/&lt;br /&gt;
    modprobe new_driver&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
====Background customization====&lt;br /&gt;
&lt;br /&gt;
This is a good example of the said tricky changes to perform in the /home&lt;br /&gt;
&amp;lt;br&amp;gt;Creation of the background has to be tracked in the booting scripts to understand where and what to change.&lt;br /&gt;
&lt;br /&gt;
We put our new background in e.g. /home/knoppix/resources/my_background.png&lt;br /&gt;
&amp;lt;br&amp;gt;Then we have to append the following to our knoppix.sh script:&lt;br /&gt;
 # Customize background&lt;br /&gt;
 # This is tricky, /etc/init.d/knoppix-autoconfig defines $BACKGROUND&lt;br /&gt;
 # in /etc/sysconfig/knoppix&lt;br /&gt;
 # Then knoppix-autconfig is calling us&lt;br /&gt;
 # and later /etc/X11/Xsession.d uses the value&lt;br /&gt;
 # to patch /home/knoppix/.kde/share/config/kdesktoprc&lt;br /&gt;
 # so we modify /etc/sysconfig/knoppix&lt;br /&gt;
 sed -i &#039;s#^BACKGROUND=.*#BACKGROUND=&amp;quot;/UNIONFS/home/knoppix/resources/my_background.png&amp;quot;#&#039; /etc/sysconfig/knoppix&lt;br /&gt;
&lt;br /&gt;
====Software====&lt;br /&gt;
We could install the Debian package but this means having to bring hte new dpkg caches to the stick too.&lt;br /&gt;
&amp;lt;br&amp;gt;For small stuffs this is much easier just to extract the soft from the Debian package and install it in /usr/local&lt;br /&gt;
-&amp;gt; /KNOPPIX.IMG/usr/local/bin/my_soft (and the man page...)&lt;br /&gt;
This is better to take it fron the real Debian package as you benefit from the version control of dpkg and are sure you install a version compatible with the rest of the CD.&lt;br /&gt;
&lt;br /&gt;
====Help====&lt;br /&gt;
Originally Knoppix prompts the user with an html help file open in a browser.&lt;br /&gt;
&amp;lt;br&amp;gt;To hook our own file instead we do the following:&lt;br /&gt;
* We put our own help page under /home/knoppix/resources/help.html&lt;br /&gt;
* We change the icon on the desktop /home/knoppix/Desktop/Help.desktop&lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Name=CERTIFICATION HELP&lt;br /&gt;
 Exec=konqueror --geometry 850x600+85+70 file:/UNIONFS/home/knoppix/resources/help.html&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Icon=html&lt;br /&gt;
 Terminal=0&lt;br /&gt;
* We make sure the help file will be automatically open&lt;br /&gt;
 ln -s /home/knoppix/Desktop/Help.desktop /KNOPPIX.IMG/home/knoppix/.kde/Autostart/showindex.desktop&lt;br /&gt;
&lt;br /&gt;
====Misc icons====&lt;br /&gt;
Icons positions can be defined in /KNOPPIX.IMG/home/knoppix/.kde/share/apps/kdesktop/IconPositions&lt;br /&gt;
&amp;lt;br&amp;gt;Only position of new icons is required.&lt;br /&gt;
&amp;lt;br&amp;gt;Additional icons useful to get on /KNOPPIX.IMG/home/knoppix/Desktop:&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. ethereal shortcut:       &amp;quot;Exec=sudo ifconfig ath2 up; sudo ethereal -i ath2 -k -S -l&amp;quot;&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Customizing_Knoppix&amp;diff=1790</id>
		<title>Customizing Knoppix</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Customizing_Knoppix&amp;diff=1790"/>
		<updated>2007-02-15T11:02:41Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;WARNING this was written for Knoppix 5.0.1, has to be updated for 5.1.1 as aufs replaces unionfs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Principle===&lt;br /&gt;
Knoppix is now based on Unionfs (cf [http://www.fsl.cs.sunysb.edu/project-unionfs.html here] or [http://www.filesystems.org/project-unionfs.html there])&lt;br /&gt;
&amp;lt;br&amp;gt;See [http://www.linux-live.org/unionfs/ this page]to discover and understand unionfs.&lt;br /&gt;
&lt;br /&gt;
The goal of the setup is to get control on an environment constituted of an original Knoppix CD and a USB stick of our own.&lt;br /&gt;
&lt;br /&gt;
Knoppix has already such setup foreseen but slightly differently.&lt;br /&gt;
&lt;br /&gt;
Basic Knoppix CD boot ends up into an unionfs constituted of&lt;br /&gt;
* RAM (starts empty)&lt;br /&gt;
* Knoppix CD&lt;br /&gt;
so everything is modifiable on run-time but every reboots start again from fresh CD.&lt;br /&gt;
&lt;br /&gt;
Knoppix has also the possiblity to create a script on a USB stick so that the setup becomes:&lt;br /&gt;
* Image on USB stick&lt;br /&gt;
* Knoppix CD&lt;br /&gt;
so everything is again modifiable but changes are kept across reboots.&lt;br /&gt;
&lt;br /&gt;
The problem with such a solution is that the USB image tends to grow unavoidably with the inherent entropy of a system in use (mainly /tmp).&lt;br /&gt;
&lt;br /&gt;
Here we will start from this setup but with the following layout:&lt;br /&gt;
* RAM (starts empty)&lt;br /&gt;
* Image on USB stick&lt;br /&gt;
* Knoppix CD&lt;br /&gt;
Now we combine advantages of both worlds: a fresh state at boot time but under our control.&lt;br /&gt;
&lt;br /&gt;
===Creation===&lt;br /&gt;
====knoppix.sh====&lt;br /&gt;
USB stick will have to hold a customised version of the script available on the Knoppix under /usr/sbin/knoppix-image&lt;br /&gt;
&amp;lt;br&amp;gt;Customised because this is the whole goal of the operation, customising a Knoppix without remasterising the CD-Rom&lt;br /&gt;
&amp;lt;br&amp;gt;The script goes in the root of the USB stick and has to be named knoppix.sh, this is a must!&lt;br /&gt;
&amp;lt;br&amp;gt;Here is the diff between the original knoppix-image and our knoppix.sh script:&lt;br /&gt;
* Handle my_own.img image&lt;br /&gt;
* Skip the main user menu&lt;br /&gt;
* Call unionctl by ourselves and reroute /home through unionfs&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- knoppix-image	2006-04-23 00:19:38.000000000 +0200&lt;br /&gt;
+++ knoppix.sh	2006-08-16 11:19:04.000000000 +0200&lt;br /&gt;
@@ -49,7 +49,7 @@&lt;br /&gt;
 [ -z &amp;quot;$LANGUAGE&amp;quot; ] &amp;amp;&amp;amp; export LANGUAGE&lt;br /&gt;
 [ -z &amp;quot;$CHARSET&amp;quot; ] &amp;amp;&amp;amp; export CHARSET&lt;br /&gt;
&lt;br /&gt;
-IMAGE=&amp;quot;$1&amp;quot;&lt;br /&gt;
+IMAGE=&amp;quot;$1/my_own.img&amp;quot;&lt;br /&gt;
 [ -n &amp;quot;$IMAGE&amp;quot; -a -f &amp;quot;$IMAGE&amp;quot; ] || { $DIALOG --title ERROR --msgbox &amp;quot;Usage: $0 imagefile&amp;quot; 8 55; bailout; }&lt;br /&gt;
 [ &amp;quot;`id -u`&amp;quot; = &amp;quot;0&amp;quot; ] || { $DIALOG --title ERROR --msgbox &amp;quot;$0 must be run as in admin mode.&amp;quot; 8 55; bailout; }&lt;br /&gt;
&lt;br /&gt;
@@ -213,7 +213,9 @@&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 SELECTION=&amp;quot;&amp;quot;&lt;br /&gt;
-if $DIALOG --title &amp;quot;$TITLE&amp;quot; --timeout 20 --defaultno --checklist &amp;quot;$DESC1&amp;quot; 22 75 4 home &amp;quot;$MENU1&amp;quot; on system &amp;quot;$MENU2&amp;quot; on overwrite &amp;quot;$MENU3&amp;quot; off init &amp;quot;$MENU4&amp;quot; on 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
+&lt;br /&gt;
+#if $DIALOG --title &amp;quot;$TITLE&amp;quot; --timeout 20 --defaultno --checklist &amp;quot;$DESC1&amp;quot; 22 75 4 home &amp;quot;$MENU1&amp;quot; on system &amp;quot;$MENU2&amp;quot; on overwrite &amp;quot;$MENU3&amp;quot; off init &amp;quot;$MENU4&amp;quot; on 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
+if true 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
  # if $DIALOG --title &amp;quot;$TITLE&amp;quot; --timeout 20 --defaultno --checklist &amp;quot;$DESC1&amp;quot; 22 75 4 home &amp;quot;$MENU1&amp;quot; on 2&amp;gt;&amp;quot;$TMP&amp;quot;; then&lt;br /&gt;
  SELECTION=&amp;quot;$(&amp;lt;$TMP)&amp;quot;&lt;br /&gt;
  rm -f &amp;quot;$TMP&amp;quot;&lt;br /&gt;
@@ -314,3 +316,15 @@&lt;br /&gt;
 fi&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
+&lt;br /&gt;
+#My own changes: Add /home between CD-ROM and RAM&lt;br /&gt;
+unionctl /UNIONFS --add --after /ramdisk --mode ro /KNOPPIX.IMG&lt;br /&gt;
+&lt;br /&gt;
+#My own changes: Reroute /home via unionfs&lt;br /&gt;
+#Originally /home is a symlink to only the ramdisk as&lt;br /&gt;
+#there is no /home at all on the CD-ROM but we want to&lt;br /&gt;
+#have /home as union of ramdisk and our extra layer&lt;br /&gt;
+rm -f /home&lt;br /&gt;
+ln -s /UNIONFS/home /home&lt;br /&gt;
+&lt;br /&gt;
+#All My own customisation will be done from here:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When later we will boot from the Knoppix CD, by giving the &amp;quot;myconf=scan&amp;quot; argument on the boot line, the CD will look for... a script called knoppix.sh&lt;br /&gt;
&amp;lt;br&amp;gt;From this script we mount a filesystem image with our changes, the image is an ext3 fs and the file is at the root of the USB stick, named my_own.img&lt;br /&gt;
====my_own.img====&lt;br /&gt;
Name can change but must be adapted consequently in the knoppix.sh script.&lt;br /&gt;
&lt;br /&gt;
To create the image my_own.img:&lt;br /&gt;
&amp;lt;br&amp;gt;Create an empty file of the right size (here 10Mb)&lt;br /&gt;
 $ dd if=/dev/zero of=my_own.img bs=1024 count=10240&lt;br /&gt;
Format it as ext3 (say yes when the system points out that you are about formatting a file instead of a partition)&lt;br /&gt;
 $ mkfs -t ext3 my_own.img&lt;br /&gt;
Mount it in loopback mode somewhere (here /media/disk) as root&lt;br /&gt;
 # mount -o loop my_own.img /media/disk&lt;br /&gt;
Place a file so we will be able to check if everything went right at next step:&lt;br /&gt;
 # mkdir /media/disk/etc&lt;br /&gt;
 # echo test &amp;gt; /media/disk/etc/my_own.txt&lt;br /&gt;
Umount the loopback image&lt;br /&gt;
 # umount /media/disk&lt;br /&gt;
Reboot on the Knoppix with the boot command &lt;br /&gt;
 knoppix myconf=scan&lt;br /&gt;
&lt;br /&gt;
Now you can check the existence of a file /etc/my_own.txt, this will be the proof everything went well up to now.&lt;br /&gt;
&lt;br /&gt;
===Customisation===&lt;br /&gt;
You can check the status of the unionfs we got so far by typing&lt;br /&gt;
 # unionctl --list /UNIONFS&lt;br /&gt;
* /UNIONFS is the merged view through unionfs and, by symlinks, most of the view you get from / (try ls -al /)&lt;br /&gt;
* /ramdisk is the RAM layer, everything you do on / or /UNIONFS goes to RAM and will be lost next reboot, be careful!!&lt;br /&gt;
* /KNOPPIX is the read-only content of the CD, mounted through a decompression layer (that&#039;s how you get gigs of files on a CD)&amp;lt;br&amp;gt;If you boot from the DVD there is also a /KNOPPIX2, this is just because the DVD filesystem could not hold files of more than 2G (they are under /cdrom/KNOPPIX/)&lt;br /&gt;
* Between /ramdisk and /KNOPPIX is /KNOPPIX.IMG, this is our customisation layer.&amp;lt;br&amp;gt;Through unionfs, this layer is set as read-only so all modifications will always go to RAM.&amp;lt;br&amp;gt;To modify stuffs in the customisation layer, you have to do it via /KNOPPIX.IMG which is mounted with r/w accesses&lt;br /&gt;
&lt;br /&gt;
So, a priori, every new or changed file has simply to be inserted in the /KNOPPIX.IMG layer&lt;br /&gt;
&lt;br /&gt;
===Exceptions===&lt;br /&gt;
Note that unionfs seems to feature a caching system because sometimes changes done via /KNOPPIX.IMG do not appear through unionfs and a reboot could be required&lt;br /&gt;
&lt;br /&gt;
====/home====&lt;br /&gt;
This directory is not present on the CD and is created on-the-fly.&lt;br /&gt;
&amp;lt;br&amp;gt;Originally it is even not part of unionfs but only in /ramdisk but our knoppix.sh script rerouted it through unionfs.&lt;br /&gt;
&amp;lt;br&amp;gt;So adding new files can be done simply by adding files (! owner and permissions) to /KNOPPIX.IMG/home/knoppix.&lt;br /&gt;
&amp;lt;br&amp;gt;Modifying file to be created later on-the-fly is much more tricky.&lt;br /&gt;
&amp;lt;br&amp;gt;These modifications have to be done via the knoppix.sh script.&lt;br /&gt;
&amp;lt;br&amp;gt;We have first to understand when the knoppix.sh is executed:&lt;br /&gt;
&amp;lt;br&amp;gt;The script is called by /etc/init.d/knoppix-autoconfig but most of the /home will be created later, by /etc/X11/Xsession.d/45xsession from /etc/skelfrom /etc/skel, /etc/sysconfig and /usr/share/knoppix and from the script itself.&lt;br /&gt;
&amp;lt;br&amp;gt;One way could be to simply replace the 45xsession script by ours but this would break probably any tentative to run the next Knoppix version with our setup so it is better to change as few things as possible.&lt;br /&gt;
&lt;br /&gt;
====Drivers====&lt;br /&gt;
Hardware was already discovered and drivers were already loaded when our script is called.&lt;br /&gt;
&amp;lt;br&amp;gt;Depending of the driver some specific actions will have to be taken.&lt;br /&gt;
&amp;lt;br&amp;gt;The driver must be compiled for the kernel used in the Knoppix CD.&lt;br /&gt;
&amp;lt;br&amp;gt;For version 5.0.1 the kernel tree of the CD is broken and if this is not impossible to compile a driver from the CD this is extremely challenging.&lt;br /&gt;
&amp;lt;br&amp;gt;The DVD version contains the full kernel source tree so drivers should be compiled against the DVD (which runs the same kernel), this will save a lot of effort.&lt;br /&gt;
* The driver file should be copied to /KNOPPIX.IMG/lib/modules/...&lt;br /&gt;
* A call to depmod is required to generate new symbol tables and those will have also to be copied to /KNOPPIX.IMG/lib/modules/...&lt;br /&gt;
* If the driver did not exist on the CD, then we can simply load manually the driver with a modprobe from our script.&lt;br /&gt;
* If the system relies on udev to set automatically some rights or whatever and if udev rules were added, then it is wise to restart udev from knoppix.sh script so that next time the hardware is plugged these rules will be effective.&lt;br /&gt;
* If the driver is an updated version of an existing driver on the CD then things are slightly more complex:&amp;lt;br&amp;gt;All drivers loaded during the boot are copied for a mysterious reason to /ramdisk&amp;lt;br&amp;gt;So before calling depmod, better first to overwrite the old driver with the new one in /ramdisk&amp;lt;br&amp;gt;The procedure will then be, from the knoppix.sh script: rmmod the driver, overwrite the old version with the new one in /ramdisk, modprobe the new one.&lt;br /&gt;
&lt;br /&gt;
===Exception examples===&lt;br /&gt;
====New driver====&lt;br /&gt;
Here this is the case of a new driver, not available on the original Knoppix CD&lt;br /&gt;
&amp;lt;br&amp;gt;Install the compiled driver under /KNOPPIX.IMG/lib/modules/2.6.17/kernel/drivers/...&lt;br /&gt;
&amp;lt;br&amp;gt;Execute depmod and copy new /ramdisk/lib/modules/2.6.17/modules.* to /KNOPPIX.IMG&lt;br /&gt;
&amp;lt;br&amp;gt;If there are configuration files, simply copy them to /KNOPPIX.IMG/etc&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. /KNOPPIX.IMG/etc/udev/rules.d/my_driver.rules&lt;br /&gt;
&lt;br /&gt;
Then, we have to append the following to our knoppix.sh script:&lt;br /&gt;
* restarting udev so that it is aware of the new driver (for subsequent hotpluggings of the hardware)&lt;br /&gt;
* loading manually the driver (in case the hardware was already plugged when the Knoppix booted)&lt;br /&gt;
 # My driver&lt;br /&gt;
 /etc/init.d/udev restart&lt;br /&gt;
 modprobe my_module&lt;br /&gt;
&lt;br /&gt;
====New shared library====&lt;br /&gt;
Install the new lib and its symlink under /KNOPPIX.IMG/usr/local/lib&lt;br /&gt;
&amp;lt;br&amp;gt;Regenerate the lib cache with ldconfig and copy it from /etc/ld.so.cache to /KNOPPIX.IMG/etc/&lt;br /&gt;
&lt;br /&gt;
====Fixing a driver====&lt;br /&gt;
Here this is the case of a driver available on the original Knoppix CD but not with the last firmware update (rendering the driver unusable): ipw2200&lt;br /&gt;
&lt;br /&gt;
Install the last firmware under /KNOPPIX.IMG/usr/lib/hotplug/firmware/ipw2200-*.fw&lt;br /&gt;
&lt;br /&gt;
Then we have to append the following to our knoppix.sh script:&lt;br /&gt;
* Simply force reloading of the driver, which will look again for its firmware&lt;br /&gt;
 # ipw2200 driver&lt;br /&gt;
 if lsmod | grep -q ipw2200; then&lt;br /&gt;
    rmmod ipw2200&lt;br /&gt;
    modprobe ipw2200&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
====Upgrading a driver====&lt;br /&gt;
Here this is the case of a driver available on the original Knoppix CD but we want e.g. to upgrade it or use a patched version.&lt;br /&gt;
&amp;lt;br&amp;gt;As said before, all drivers loaded during the boot are copied to /ramdisk so as we want to update them, we better have to update those in /ramdisk as well.&lt;br /&gt;
Install the compiled drivers under /KNOPPIX.IMG/lib/modules/2.6.17/kernel/drivers/... and /ramdisk/lib/modules/2.6.17/kernel/drivers/... and binaries under /KNOPPIX.IMG/usr/local/bin&lt;br /&gt;
&amp;lt;br&amp;gt;Execute depmod and copy new /ramdisk/lib/modules/2.6.17/modules.* to /KNOPPIX.IMG&lt;br /&gt;
&lt;br /&gt;
Then we have to append the following to our knoppix.sh script:&lt;br /&gt;
* Copy the driver to /ramdisk as well&lt;br /&gt;
* Force reloading of the updated driver&lt;br /&gt;
 # my new version of driver&lt;br /&gt;
 # Note that loaded drivers were copied also to /ramdisk so we need to change them there&lt;br /&gt;
 if lsmod | grep -q old_driver; then&lt;br /&gt;
    rmmod old_drivers...&lt;br /&gt;
    /bin/cp /KNOPPIX.IMG/lib/modules/2.6.17/kernel/drivers/net/* /ramdisk/lib/modules/2.6.17/kernel/drivers/net/&lt;br /&gt;
    modprobe new_driver&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
====Background customization====&lt;br /&gt;
&lt;br /&gt;
This is a good example of the said tricky changes to perform in the /home&lt;br /&gt;
&amp;lt;br&amp;gt;Creation of the background has to be tracked in the booting scripts to understand where and what to change.&lt;br /&gt;
&lt;br /&gt;
We put our new background in e.g. /home/knoppix/resources/my_background.png&lt;br /&gt;
&amp;lt;br&amp;gt;Then we have to append the following to our knoppix.sh script:&lt;br /&gt;
 # Customize background&lt;br /&gt;
 # This is tricky, /etc/init.d/knoppix-autoconfig defines $BACKGROUND&lt;br /&gt;
 # in /etc/sysconfig/knoppix&lt;br /&gt;
 # Then knoppix-autconfig is calling us&lt;br /&gt;
 # and later /etc/X11/Xsession.d uses the value&lt;br /&gt;
 # to patch /home/knoppix/.kde/share/config/kdesktoprc&lt;br /&gt;
 # so we modify /etc/sysconfig/knoppix&lt;br /&gt;
 sed -i &#039;s#^BACKGROUND=.*#BACKGROUND=&amp;quot;/UNIONFS/home/knoppix/resources/my_background.png&amp;quot;#&#039; /etc/sysconfig/knoppix&lt;br /&gt;
&lt;br /&gt;
====Software====&lt;br /&gt;
We could install the Debian package but this means having to bring hte new dpkg caches to the stick too.&lt;br /&gt;
&amp;lt;br&amp;gt;For small stuffs this is much easier just to extract the soft from the Debian package and install it in /usr/local&lt;br /&gt;
-&amp;gt; /KNOPPIX.IMG/usr/local/bin/my_soft (and the man page...)&lt;br /&gt;
This is better to take it fron the real Debian package as you benefit from the version control of dpkg and are sure you install a version compatible with the rest of the CD.&lt;br /&gt;
&lt;br /&gt;
====Help====&lt;br /&gt;
Originally Knoppix prompts the user with an html help file open in a browser.&lt;br /&gt;
&amp;lt;br&amp;gt;To hook our own file instead we do the following:&lt;br /&gt;
* We put our own help page under /home/knoppix/resources/help.html&lt;br /&gt;
* We change the icon on the desktop /home/knoppix/Desktop/Help.desktop&lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Name=CERTIFICATION HELP&lt;br /&gt;
 Exec=konqueror --geometry 850x600+85+70 file:/UNIONFS/home/knoppix/resources/help.html&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Icon=html&lt;br /&gt;
 Terminal=0&lt;br /&gt;
* We make sure the help file will be automatically open&lt;br /&gt;
 ln -s /home/knoppix/Desktop/Help.desktop /KNOPPIX.IMG/home/knoppix/.kde/Autostart/showindex.desktop&lt;br /&gt;
&lt;br /&gt;
====Misc icons====&lt;br /&gt;
Icons positions can be defined in /KNOPPIX.IMG/home/knoppix/.kde/share/apps/kdesktop/IconPositions&lt;br /&gt;
&amp;lt;br&amp;gt;Only position of new icons is required.&lt;br /&gt;
&amp;lt;br&amp;gt;Additional icons useful to get on /KNOPPIX.IMG/home/knoppix/Desktop:&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. ethereal shortcut:       &amp;quot;Exec=sudo ifconfig ath2 up; sudo ethereal -i ath2 -k -S -l&amp;quot;&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Apache&amp;diff=1752</id>
		<title>Apache</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Apache&amp;diff=1752"/>
		<updated>2007-02-02T11:10:57Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Enable reverse-proxy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Apache2==&lt;br /&gt;
&lt;br /&gt;
===Activate ssl module===&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
* Generate certificates, cf above or in short:&lt;br /&gt;
 openssl req -config /etc/ssl/openssl.cnf -new -out mydomain.csr&lt;br /&gt;
 openssl rsa -in privkey.pem -out mydomain.key&lt;br /&gt;
 openssl x509 -in mydomain.csr -out mydomain.crt -req -signkey mydomain.key -days 3650&lt;br /&gt;
 openssl x509 -in mydomain.crt -out mydomain.der.crt -outform DER&lt;br /&gt;
* Install mydomain.crt and mydomain.key in /etc/apache2/ssl/&lt;br /&gt;
 cp /usr/share/doc/apache2/examples/ssl.conf.gz /etc/apache2/sites-available&lt;br /&gt;
 gunzip ssl.conf.gz&lt;br /&gt;
 mv ssl.conf mydomain_ssl&lt;br /&gt;
 strip it... TODO&lt;br /&gt;
 SSLCertificateFile /etc/apache2/ssl/mydomain.crt&lt;br /&gt;
 SSLCertificateKeyFile /etc/apache2/ssl/mydomain.key&lt;br /&gt;
 &amp;lt;VirtualHost my_ip:443&amp;gt;&lt;br /&gt;
* /etc/apache2/ports.conf: &lt;br /&gt;
 Listen &amp;lt;my_ip&amp;gt;:443&lt;br /&gt;
&lt;br /&gt;
 ln -s /etc/apache2/sites-available/mydomain_ssl /etc/apache2/sites-enabled&lt;br /&gt;
&lt;br /&gt;
===Enable reverse-proxy===&lt;br /&gt;
 a2enmod rewrite                                                                     &lt;br /&gt;
 a2enmod proxy                                                                       &lt;br /&gt;
 a2enmod proxy_http                                                                  &lt;br /&gt;
Personally I created a /etc/apache2/proxy-available and proxy-enabled directories with from the :443 VirtualHost an inclusion rule:&lt;br /&gt;
 Include /etc/apache2/proxy-enabled/&lt;br /&gt;
First file to create is to initialize rewrite and proxy, e.g. /etc/apache2/proxy-enabled/000init -&amp;gt; /etc/apache2/proxy-available/init&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteLog /var/log/apache2/rewrite.log&lt;br /&gt;
 &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
  Order deny,allow&lt;br /&gt;
  Allow from all&lt;br /&gt;
 &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
Example of rules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Rules for https://foo.yobi.be&lt;br /&gt;
&lt;br /&gt;
# Here this was a service that had to be called with the index.htm explicitely so we redirect the browser&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^foo.yobi.be:?[0-9]*$&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/?$&lt;br /&gt;
RewriteRule ^/? /index.htm [R]&lt;br /&gt;
# Then the real rule:&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^foo.yobi.be:?[0-9]*$&lt;br /&gt;
RewriteRule ^/(.*) http://twilight.zone/$1 [P]&lt;br /&gt;
ProxyPassReverse / http://twilight.zone/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Rules for https://www.yobi.be/foo&lt;br /&gt;
&lt;br /&gt;
# Here this was a service that had to be called with the index.htm explicitely so we redirect the browser&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/foo/?$&lt;br /&gt;
RewriteRule ^/foo/? /foo/index.htm [R]&lt;br /&gt;
# Then the real rule:&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/foo.*&lt;br /&gt;
RewriteRule ^/foo/(.*) http://twilight.zone/$1 [P]&lt;br /&gt;
ProxyPassReverse / http://twilight.zone/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Older notes==&lt;br /&gt;
===Activate a module===&lt;br /&gt;
&lt;br /&gt;
* Find the module name, try&lt;br /&gt;
 ls /usr/lib/apache/1.3/*.info|sed &#039;s/^[^_]*_\(.*\)\.info/\1/&#039;&lt;br /&gt;
* apache-modconf apache enable &#039;&#039;module name&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. apache-modconf apache enable libproxy&lt;br /&gt;
&lt;br /&gt;
[http://www.apacheweek.com/features/reverseproxies Setup proxy HTTP1.1 with Apache 2]&lt;br /&gt;
* libapache2-mod-proxy-html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===These are very old notes===&lt;br /&gt;
* [[HtAccess]]&lt;br /&gt;
* [[ModMp3]]&lt;br /&gt;
* [[Webalizer]]&lt;br /&gt;
* [[AWFFull]]&lt;br /&gt;
====HTTPS====&lt;br /&gt;
cf LM53 p68&lt;br /&gt;
 cd /opt/httpd/httpd/conf&lt;br /&gt;
 # clef RSA:&lt;br /&gt;
 mkdir ssl.key&lt;br /&gt;
 cd ssl.key&lt;br /&gt;
 openssl gensra -des3 -out server.key 1024&lt;br /&gt;
 openssl rsa -in server.key -out server.key.unsecure&lt;br /&gt;
 mv server.key server.key.encrypted&lt;br /&gt;
 mv server.key.unsecure server.key&lt;br /&gt;
 cd ..&lt;br /&gt;
 # certificat (CSR):&lt;br /&gt;
 mkdir ssl.csr&lt;br /&gt;
 cd ssl.csr&lt;br /&gt;
 openssl req -new -key ../ssl.key/server.key.encrypted -out server.csr&lt;br /&gt;
 # ! CommonName = the exact name server following https://&lt;br /&gt;
 cd ..&lt;br /&gt;
 # clef RSA de la CA:&lt;br /&gt;
 cd ssl.key&lt;br /&gt;
 openssl gensra -des3 -out ca.key 1024&lt;br /&gt;
 openssl rsa -in ca.key -out ca.key.unsecure&lt;br /&gt;
 mv ca.key ca.key.encrypted&lt;br /&gt;
 mv ca.key.unsecure ca.key&lt;br /&gt;
 cd ..&lt;br /&gt;
 # certificate x.509&lt;br /&gt;
 mkdir ssl.crt&lt;br /&gt;
 cd ssl.crt&lt;br /&gt;
 openssl req -new -x509 -days 2002 -key ../ssl.key/ca.key.encrypted -out ca.crt&lt;br /&gt;
 # ! CommonName = another name than yours&lt;br /&gt;
 cd ..&lt;br /&gt;
 # signature of certificate&lt;br /&gt;
 mkdir tmp&lt;br /&gt;
 cd tmp&lt;br /&gt;
 cp ../ssl.key/*key .&lt;br /&gt;
 cp ../ssl.crt/ca.crt .&lt;br /&gt;
 cp ../ssl.csr/server.csr .&lt;br /&gt;
 sh sign.sh server.csr&lt;br /&gt;
 mv server.crt ../ssl.crt/&lt;br /&gt;
 &lt;br /&gt;
 rm -rf tmp&lt;br /&gt;
 cd ssl.crt&lt;br /&gt;
 chmod 600 *&lt;br /&gt;
&lt;br /&gt;
sign.sh: cf sources de mod_ssl, rep pkg.contrib&lt;br /&gt;
&amp;lt;br&amp;gt;/usr/share/doc/libapache-mod-ssl/examples/sign.sh&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 ##&lt;br /&gt;
 ##  sign.sh -- Sign a SSL Certificate Request (CSR)&lt;br /&gt;
 ##  Copyright (c) Ralf S. Engelschall, All Rights Reserved.&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 #   argument line handling&lt;br /&gt;
 CSR=$1&lt;br /&gt;
 if [ $# -ne 1 ]; then&lt;br /&gt;
     echo &amp;quot;Usage: sign.sign &amp;lt;whatever&amp;gt;.csr&amp;quot;; exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f $CSR ]; then&lt;br /&gt;
     echo &amp;quot;CSR not found: $CSR&amp;quot;; exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 case $CSR in&lt;br /&gt;
    *.csr ) CERT=&amp;quot;`echo $CSR | sed -e &#039;s/\.csr/.crt/&#039;`&amp;quot; ;;&lt;br /&gt;
        * ) CERT=&amp;quot;$CSR.crt&amp;quot; ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 #   make sure environment exists&lt;br /&gt;
 if [ ! -d ca.db.certs ]; then&lt;br /&gt;
     mkdir ca.db.certs&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f ca.db.serial ]; then&lt;br /&gt;
     echo &#039;01&#039; &amp;gt;ca.db.serial&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f ca.db.index ]; then&lt;br /&gt;
     cp /dev/null ca.db.index&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #   create an own SSLeay config&lt;br /&gt;
 cat &amp;gt;ca.config &amp;lt;&amp;lt;EOT&lt;br /&gt;
 [ ca ]&lt;br /&gt;
 default_ca              = CA_own&lt;br /&gt;
 [ CA_own ]&lt;br /&gt;
 dir                     = .&lt;br /&gt;
 certs                   = \$dir&lt;br /&gt;
 new_certs_dir           = \$dir/ca.db.certs&lt;br /&gt;
 database                = \$dir/ca.db.index&lt;br /&gt;
 serial                  = \$dir/ca.db.serial&lt;br /&gt;
 RANDFILE                = \$dir/ca.db.rand&lt;br /&gt;
 certificate             = \$dir/ca.crt&lt;br /&gt;
 private_key             = \$dir/ca.key&lt;br /&gt;
 default_days            = 365&lt;br /&gt;
 default_crl_days        = 30&lt;br /&gt;
 default_md              = md5&lt;br /&gt;
 preserve                = no&lt;br /&gt;
 policy                  = policy_anything&lt;br /&gt;
 [ policy_anything ]&lt;br /&gt;
 countryName             = optional&lt;br /&gt;
 stateOrProvinceName     = optional&lt;br /&gt;
 localityName            = optional&lt;br /&gt;
 organizationName        = optional&lt;br /&gt;
 organizationalUnitName  = optional&lt;br /&gt;
 commonName              = supplied&lt;br /&gt;
 emailAddress            = optional&lt;br /&gt;
 EOT&lt;br /&gt;
 &lt;br /&gt;
 #  sign the certificate&lt;br /&gt;
 echo &amp;quot;CA signing: $CSR -&amp;gt; $CERT:&amp;quot;&lt;br /&gt;
 openssl ca -config ca.config -out $CERT -infiles $CSR&lt;br /&gt;
 echo &amp;quot;CA verifying: $CERT &amp;lt;-&amp;gt; CA cert&amp;quot;&lt;br /&gt;
 openssl verify -CAfile ca.crt $CERT&lt;br /&gt;
 &lt;br /&gt;
 #  cleanup after SSLeay&lt;br /&gt;
 rm -f ca.config&lt;br /&gt;
 rm -f ca.db.serial.old&lt;br /&gt;
 rm -f ca.db.index.old&lt;br /&gt;
 &lt;br /&gt;
 #  die gracefully&lt;br /&gt;
 exit 0&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Apache&amp;diff=1751</id>
		<title>Apache</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Apache&amp;diff=1751"/>
		<updated>2007-02-02T11:08:34Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Apache2==&lt;br /&gt;
&lt;br /&gt;
===Activate ssl module===&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
* Generate certificates, cf above or in short:&lt;br /&gt;
 openssl req -config /etc/ssl/openssl.cnf -new -out mydomain.csr&lt;br /&gt;
 openssl rsa -in privkey.pem -out mydomain.key&lt;br /&gt;
 openssl x509 -in mydomain.csr -out mydomain.crt -req -signkey mydomain.key -days 3650&lt;br /&gt;
 openssl x509 -in mydomain.crt -out mydomain.der.crt -outform DER&lt;br /&gt;
* Install mydomain.crt and mydomain.key in /etc/apache2/ssl/&lt;br /&gt;
 cp /usr/share/doc/apache2/examples/ssl.conf.gz /etc/apache2/sites-available&lt;br /&gt;
 gunzip ssl.conf.gz&lt;br /&gt;
 mv ssl.conf mydomain_ssl&lt;br /&gt;
 strip it... TODO&lt;br /&gt;
 SSLCertificateFile /etc/apache2/ssl/mydomain.crt&lt;br /&gt;
 SSLCertificateKeyFile /etc/apache2/ssl/mydomain.key&lt;br /&gt;
 &amp;lt;VirtualHost my_ip:443&amp;gt;&lt;br /&gt;
* /etc/apache2/ports.conf: &lt;br /&gt;
 Listen &amp;lt;my_ip&amp;gt;:443&lt;br /&gt;
&lt;br /&gt;
 ln -s /etc/apache2/sites-available/mydomain_ssl /etc/apache2/sites-enabled&lt;br /&gt;
&lt;br /&gt;
===Enable reverse-proxy===&lt;br /&gt;
 a2enmod rewrite                                                                     &lt;br /&gt;
 a2enmod proxy                                                                       &lt;br /&gt;
 a2enmod proxy_http                                                                  &lt;br /&gt;
Personally I created a /etc/apache2/proxy-available and proxy-enabled directories with from the :443 vserver an inclusion rule&lt;br /&gt;
 Include /etc/apache2/proxy-enabled/&lt;br /&gt;
First file to create is to initialize rewrite and proxy, e.g. /etc/apache2/proxy-enabled/000init -&amp;gt; /etc/apache2/proxy-available/init&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteLog /var/log/apache2/rewrite.log&lt;br /&gt;
 &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
  Order deny,allow&lt;br /&gt;
  Allow from all&lt;br /&gt;
 &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
Example of rules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Rules for https://foo.yobi.be&lt;br /&gt;
&lt;br /&gt;
# Here this was a service that had to be called with the index.htm explicitely so we redirect the browser&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^foo.yobi.be:?[0-9]*$&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/?$&lt;br /&gt;
RewriteRule ^/? /index.htm [R]&lt;br /&gt;
# Then the real rule:&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^foo.yobi.be:?[0-9]*$&lt;br /&gt;
RewriteRule ^/(.*) http://twilight.zone/$1 [P]&lt;br /&gt;
ProxyPassReverse / http://twilight.zone/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Rules for https://www.yobi.be/foo&lt;br /&gt;
&lt;br /&gt;
# Here this was a service that had to be called with the index.htm explicitely so we redirect the browser&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/foo/?$&lt;br /&gt;
RewriteRule ^/foo/? /foo/index.htm [R]&lt;br /&gt;
# Then the real rule:&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/foo.*&lt;br /&gt;
RewriteRule ^/foo/(.*) http://twilight.zone/$1 [P]&lt;br /&gt;
ProxyPassReverse / http://twilight.zone/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Older notes==&lt;br /&gt;
===Activate a module===&lt;br /&gt;
&lt;br /&gt;
* Find the module name, try&lt;br /&gt;
 ls /usr/lib/apache/1.3/*.info|sed &#039;s/^[^_]*_\(.*\)\.info/\1/&#039;&lt;br /&gt;
* apache-modconf apache enable &#039;&#039;module name&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. apache-modconf apache enable libproxy&lt;br /&gt;
&lt;br /&gt;
[http://www.apacheweek.com/features/reverseproxies Setup proxy HTTP1.1 with Apache 2]&lt;br /&gt;
* libapache2-mod-proxy-html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===These are very old notes===&lt;br /&gt;
* [[HtAccess]]&lt;br /&gt;
* [[ModMp3]]&lt;br /&gt;
* [[Webalizer]]&lt;br /&gt;
* [[AWFFull]]&lt;br /&gt;
====HTTPS====&lt;br /&gt;
cf LM53 p68&lt;br /&gt;
 cd /opt/httpd/httpd/conf&lt;br /&gt;
 # clef RSA:&lt;br /&gt;
 mkdir ssl.key&lt;br /&gt;
 cd ssl.key&lt;br /&gt;
 openssl gensra -des3 -out server.key 1024&lt;br /&gt;
 openssl rsa -in server.key -out server.key.unsecure&lt;br /&gt;
 mv server.key server.key.encrypted&lt;br /&gt;
 mv server.key.unsecure server.key&lt;br /&gt;
 cd ..&lt;br /&gt;
 # certificat (CSR):&lt;br /&gt;
 mkdir ssl.csr&lt;br /&gt;
 cd ssl.csr&lt;br /&gt;
 openssl req -new -key ../ssl.key/server.key.encrypted -out server.csr&lt;br /&gt;
 # ! CommonName = the exact name server following https://&lt;br /&gt;
 cd ..&lt;br /&gt;
 # clef RSA de la CA:&lt;br /&gt;
 cd ssl.key&lt;br /&gt;
 openssl gensra -des3 -out ca.key 1024&lt;br /&gt;
 openssl rsa -in ca.key -out ca.key.unsecure&lt;br /&gt;
 mv ca.key ca.key.encrypted&lt;br /&gt;
 mv ca.key.unsecure ca.key&lt;br /&gt;
 cd ..&lt;br /&gt;
 # certificate x.509&lt;br /&gt;
 mkdir ssl.crt&lt;br /&gt;
 cd ssl.crt&lt;br /&gt;
 openssl req -new -x509 -days 2002 -key ../ssl.key/ca.key.encrypted -out ca.crt&lt;br /&gt;
 # ! CommonName = another name than yours&lt;br /&gt;
 cd ..&lt;br /&gt;
 # signature of certificate&lt;br /&gt;
 mkdir tmp&lt;br /&gt;
 cd tmp&lt;br /&gt;
 cp ../ssl.key/*key .&lt;br /&gt;
 cp ../ssl.crt/ca.crt .&lt;br /&gt;
 cp ../ssl.csr/server.csr .&lt;br /&gt;
 sh sign.sh server.csr&lt;br /&gt;
 mv server.crt ../ssl.crt/&lt;br /&gt;
 &lt;br /&gt;
 rm -rf tmp&lt;br /&gt;
 cd ssl.crt&lt;br /&gt;
 chmod 600 *&lt;br /&gt;
&lt;br /&gt;
sign.sh: cf sources de mod_ssl, rep pkg.contrib&lt;br /&gt;
&amp;lt;br&amp;gt;/usr/share/doc/libapache-mod-ssl/examples/sign.sh&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 ##&lt;br /&gt;
 ##  sign.sh -- Sign a SSL Certificate Request (CSR)&lt;br /&gt;
 ##  Copyright (c) Ralf S. Engelschall, All Rights Reserved.&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 #   argument line handling&lt;br /&gt;
 CSR=$1&lt;br /&gt;
 if [ $# -ne 1 ]; then&lt;br /&gt;
     echo &amp;quot;Usage: sign.sign &amp;lt;whatever&amp;gt;.csr&amp;quot;; exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f $CSR ]; then&lt;br /&gt;
     echo &amp;quot;CSR not found: $CSR&amp;quot;; exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 case $CSR in&lt;br /&gt;
    *.csr ) CERT=&amp;quot;`echo $CSR | sed -e &#039;s/\.csr/.crt/&#039;`&amp;quot; ;;&lt;br /&gt;
        * ) CERT=&amp;quot;$CSR.crt&amp;quot; ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 #   make sure environment exists&lt;br /&gt;
 if [ ! -d ca.db.certs ]; then&lt;br /&gt;
     mkdir ca.db.certs&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f ca.db.serial ]; then&lt;br /&gt;
     echo &#039;01&#039; &amp;gt;ca.db.serial&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f ca.db.index ]; then&lt;br /&gt;
     cp /dev/null ca.db.index&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #   create an own SSLeay config&lt;br /&gt;
 cat &amp;gt;ca.config &amp;lt;&amp;lt;EOT&lt;br /&gt;
 [ ca ]&lt;br /&gt;
 default_ca              = CA_own&lt;br /&gt;
 [ CA_own ]&lt;br /&gt;
 dir                     = .&lt;br /&gt;
 certs                   = \$dir&lt;br /&gt;
 new_certs_dir           = \$dir/ca.db.certs&lt;br /&gt;
 database                = \$dir/ca.db.index&lt;br /&gt;
 serial                  = \$dir/ca.db.serial&lt;br /&gt;
 RANDFILE                = \$dir/ca.db.rand&lt;br /&gt;
 certificate             = \$dir/ca.crt&lt;br /&gt;
 private_key             = \$dir/ca.key&lt;br /&gt;
 default_days            = 365&lt;br /&gt;
 default_crl_days        = 30&lt;br /&gt;
 default_md              = md5&lt;br /&gt;
 preserve                = no&lt;br /&gt;
 policy                  = policy_anything&lt;br /&gt;
 [ policy_anything ]&lt;br /&gt;
 countryName             = optional&lt;br /&gt;
 stateOrProvinceName     = optional&lt;br /&gt;
 localityName            = optional&lt;br /&gt;
 organizationName        = optional&lt;br /&gt;
 organizationalUnitName  = optional&lt;br /&gt;
 commonName              = supplied&lt;br /&gt;
 emailAddress            = optional&lt;br /&gt;
 EOT&lt;br /&gt;
 &lt;br /&gt;
 #  sign the certificate&lt;br /&gt;
 echo &amp;quot;CA signing: $CSR -&amp;gt; $CERT:&amp;quot;&lt;br /&gt;
 openssl ca -config ca.config -out $CERT -infiles $CSR&lt;br /&gt;
 echo &amp;quot;CA verifying: $CERT &amp;lt;-&amp;gt; CA cert&amp;quot;&lt;br /&gt;
 openssl verify -CAfile ca.crt $CERT&lt;br /&gt;
 &lt;br /&gt;
 #  cleanup after SSLeay&lt;br /&gt;
 rm -f ca.config&lt;br /&gt;
 rm -f ca.db.serial.old&lt;br /&gt;
 rm -f ca.db.index.old&lt;br /&gt;
 &lt;br /&gt;
 #  die gracefully&lt;br /&gt;
 exit 0&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Table_of_contents&amp;diff=1689</id>
		<title>Table of contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Table_of_contents&amp;diff=1689"/>
		<updated>2007-01-02T13:32:08Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Security */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Security==&lt;br /&gt;
* [[Forensics]]&lt;br /&gt;
* [[Bypass Proxy]]&lt;br /&gt;
** [[Bypass Proxy reference]]&lt;br /&gt;
* [[MiscCrypto]]&lt;br /&gt;
** [[Encfs]]&lt;br /&gt;
** [[LoopCrypt]]&lt;br /&gt;
* [[Reverse Cross-Site Request (RCSR) vulnerability]]&lt;br /&gt;
* [[Belgian eID]]&lt;br /&gt;
&lt;br /&gt;
==Hobbies==&lt;br /&gt;
* [[Photo]]&lt;br /&gt;
* [[Linux Certification]]&lt;br /&gt;
==Hardware==&lt;br /&gt;
* [[bttv]]&lt;br /&gt;
* [[Canon EOS]]&lt;br /&gt;
* [[Kiss 450]]&lt;br /&gt;
* [[Laptop Asus]]&lt;br /&gt;
* [[Laptop Dell Latitude D600]]&lt;br /&gt;
* [[Laptop Dell Latitude D610]]&lt;br /&gt;
* [[Photo Frame]]&lt;br /&gt;
* [[Philips Webcam]]&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
===Server side===&lt;br /&gt;
* [[Syslog]]&lt;br /&gt;
* [[Munin]]&lt;br /&gt;
* [[Apache]]&lt;br /&gt;
* [[AWFFull]]&lt;br /&gt;
* [[GeoIP]]&lt;br /&gt;
* [[Mysql]]&lt;br /&gt;
* [[CVS and Subversion]]&lt;br /&gt;
* [[MediaWiki]]&lt;br /&gt;
* [[Gallery]]&lt;br /&gt;
* [[PhpMyAdmin]]&lt;br /&gt;
* [[Webcalendar]]&lt;br /&gt;
* [[Avimanager]]&lt;br /&gt;
* [[Zope]]&lt;br /&gt;
* [[Plone]]&lt;br /&gt;
* [[Alert notifications]]&lt;br /&gt;
====Mail services====&lt;br /&gt;
* [[qmail &amp;amp; ezmlm]]&lt;br /&gt;
* [[Exim]]&lt;br /&gt;
* [[Courier]]&lt;br /&gt;
* [[Procmail]]&lt;br /&gt;
* [[Imapproxy]]&lt;br /&gt;
* [[Squirrelmail]]&lt;br /&gt;
* [[Spamassassin]]&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* [[Anti-Virus]]&lt;br /&gt;
====Syslog services====&lt;br /&gt;
* [[Syslog]]&lt;br /&gt;
* [[Logcheck]]&lt;br /&gt;
* [[Php-Syslog-ng]]&lt;br /&gt;
====Jabber====&lt;br /&gt;
* [[Jabberd]]&lt;br /&gt;
* [[Jabberd-Addons]]&lt;br /&gt;
* [[Jabberd-Conference]]&lt;br /&gt;
* [[Jabberd-Jud]]&lt;br /&gt;
* [[Jabberd-AIM]]&lt;br /&gt;
* [[Jabberd-Icq]]&lt;br /&gt;
* [[Jabberd-Irc]]&lt;br /&gt;
* [[Jabberd-MSN]]&lt;br /&gt;
* [[Jabberd-Yahoo]]&lt;br /&gt;
&lt;br /&gt;
===Desktop side===&lt;br /&gt;
* [[Dict Applications]]&lt;br /&gt;
* [[Screen Tips]]&lt;br /&gt;
* [[Firefox Tips]]&lt;br /&gt;
* [[Bash Tips]]&lt;br /&gt;
* [[Mail Tips]]&lt;br /&gt;
* [[Offlineimap]]&lt;br /&gt;
====[[Jabber]]====&lt;br /&gt;
* [[Jabber Clients]]&lt;br /&gt;
* [[Jabber Send Message]]&lt;br /&gt;
* [[Jabber Utils]]&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
* [[Debian Documentation]]&lt;br /&gt;
* [[Debian Commands]]&lt;br /&gt;
* [[DebTags]]&lt;br /&gt;
* [[Debian Alsa]]&lt;br /&gt;
* [[Debian Kernel]]&lt;br /&gt;
* [[Debian Soft Raid]]&lt;br /&gt;
* [[My Debian Bugreports]]&lt;br /&gt;
&lt;br /&gt;
==Lifeware==&lt;br /&gt;
* [[whoami]]&lt;br /&gt;
* [[Généalogie]]&lt;br /&gt;
* [[Bébé]]&lt;br /&gt;
* [[Chassis Couronne]]&lt;br /&gt;
* [[Prêts et emprunts]]&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
* [[External links]]&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=B%C3%A9b%C3%A9&amp;diff=1334</id>
		<title>Bébé</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=B%C3%A9b%C3%A9&amp;diff=1334"/>
		<updated>2006-08-23T08:47:33Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Crèches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Crèches====&lt;br /&gt;
* [http://www.elsene.irisnet.be/site/fr/02vivrexl/grandir/crechescommu.htm Les crèches communales]&lt;br /&gt;
* [http://www.elsene.irisnet.be/site/fr/02vivrexl/grandir/crechespriv.htm Les crèches privées]&lt;br /&gt;
* Mini Cracra&amp;lt;br&amp;gt;Chaussée d&#039;Ixelles, 315 - 1050 Bruxelles&amp;lt;br&amp;gt;Tél. 02.644.64.50&amp;lt;br&amp;gt;Francophone&amp;lt;br&amp;gt;380€ pour 4/5&lt;br /&gt;
&lt;br /&gt;
====Congés====&lt;br /&gt;
* [http://www.meta.fgov.be/pdf/pd/frdc19.pdf Congé de maternité] et [http://www.meta.fgov.be/pdf/pd/frdc19a.pdf addendum]&lt;br /&gt;
* [http://www.meta.fgov.be/pk/pkh/frkh05.htm Congé de paternité]&lt;br /&gt;
* [http://www.meta.fgov.be/pk/pkh/frkh33.htm Congé parental]&lt;br /&gt;
* [http://www.meta.fgov.be/pdf/pd/frdc30.pdf Congé-éducation (pdf)]&lt;br /&gt;
====Primes et allocs====&lt;br /&gt;
* [http://www.securex.be/portal/application?language=FR&amp;amp;contentUrl=/website/be/public/5E7D78B6053283A7C1256FDC00423326_fr.html#topPage Prime de naissance caisse d&#039;allocations]&lt;br /&gt;
* [http://www.fmsb.be/pdf/info/infomut41.pdf Prime de naissance FMSB (pdf)]&lt;br /&gt;
** Pour recevoir l&#039;intervention, vous devez nous présenter un certificat de naissance ou d&#039;adoption délivré par l&#039;administration communale.&lt;br /&gt;
&lt;br /&gt;
====Commune====&lt;br /&gt;
* [http://www.elsene.irisnet.be/site/fr/02vivrexl/habiter/gdsevents.htm Ixelles]: déclaration, parrainnage laïque etc&lt;br /&gt;
====Divers====&lt;br /&gt;
* http://www.terrafutura.com/html/univers/enceinte.asp&lt;br /&gt;
* http://www.famidoo.be/xml/doc__fr-IDC-5-.html&lt;br /&gt;
* http://www.gardes-bb.be&lt;br /&gt;
* Vêtements femme enceinte Liège&lt;br /&gt;
** http://www.nombril.be/&lt;br /&gt;
** http://liegecachecache.site.voila.fr/&lt;br /&gt;
* http://www.kiddybips.com/frans/fr_wie.html&lt;br /&gt;
* http://www.chez.com/accouchement/shopping.htm&lt;br /&gt;
* http://www.peau-a-peau.be/defaultn.htm&lt;br /&gt;
* http://www.bebenageur.be/&lt;br /&gt;
* http://www.ptibou.be/index.asp?ID=911&lt;br /&gt;
* http://www.maman-nature.com/shop/&lt;br /&gt;
* http://www.dreambaby.be/dreambaby/index.jsp&lt;br /&gt;
* http://www.alternatives.be/presse/accouchement_aquatique_article.htm&lt;br /&gt;
* http://www.lasante.be/dossiers/accouchement_aqua.htm&lt;br /&gt;
* http://www.chirec.be/content/default.asp?id=28&amp;amp;key=0305&amp;amp;subitem=03&lt;br /&gt;
* Grand déstockage des marques en octobre 2006&lt;br /&gt;
** http://www.majishop.be&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1331</id>
		<title>Linux Certification</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1331"/>
		<updated>2006-08-17T14:34:13Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Books */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[http://www.lpi.org Linux Professional Institute]===&lt;br /&gt;
&lt;br /&gt;
See also [http://en.wikipedia.org/wiki/Linux_Professional_Institute On Wikipedia]&lt;br /&gt;
&lt;br /&gt;
====Objectives====&lt;br /&gt;
* [http://www.lpi.org/en/lpi/english/certification/the_lpic_program/exam_101_detailed_objectives Detailed objectives for exam 101]&lt;br /&gt;
* [http://www.lpi.org/en/lpi/english/certification/the_lpic_program/exam_102_detailed_objectives Detailed objectives for exam 102]&lt;br /&gt;
====Books====&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789722895/ LPIC Linux Level 1, Test 1 (Cheat Sheet S.) (Paperback) ] 352 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/3937514023 LPIC-1. (Hardcover)] &lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0764547720 LPIC1 Certification Bible (Paperback)] 880 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789731274 LPIC I Exam Cram 2: Exam 101, 102 (Exam Cram 2 S.) (Paperback)] 588 pages, said to be up-to-date, [http://www.examcram2.com/bookstore/product.asp?isbn=0789731274&amp;amp;rl=1 official website]&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/1565927486 LPI Linux Certification in a Nutshell (Paperback)] 576 pages [http://www.amazon.co.uk/gp/product/0596005288 New edition in July 2006] current edition is largely outdated&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/078214425X LPIC-1: Linux Professional Institute Certification: Study Guide (Level 1 Exams 101 and 102) (Paperback)] 656 pages&lt;br /&gt;
&lt;br /&gt;
====Courses====&lt;br /&gt;
* http://www.linuxcertified.com/linux-courseware.html&lt;br /&gt;
* http://www.lynuxtraining.com/formations/index.html#3&lt;br /&gt;
* http://www.ibm.com/Search/?q=lpic-1&amp;amp;v=11&amp;amp;lang=en&amp;amp;cc=us&amp;amp;en=utf&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search&lt;br /&gt;
* http://www.sybex.com/WileyCDA/SybexTitle/productCd-078214425X,navId-291002,pageCd-resources.html&lt;br /&gt;
* http://www.bradfordlearning.com/cgi-bin/Item.cgi?action=ShowCategory&amp;amp;category=certification16&amp;amp;item=34&lt;br /&gt;
====Tutorials====&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/lpi/index.html Seems impossible to register for now...&lt;br /&gt;
** [http://www.google.fr/search?hl=fr&amp;amp;q=ibm.com%2FdeveloperWorks+filetype%3Apdf+intitle%3Alpi&amp;amp;btnG=Rechercher&amp;amp;meta= Search for copies on Google]&lt;br /&gt;
** e.g. here: http://www.eastbayimprov.com/dave/ux/linuxstudy/&lt;br /&gt;
* http://en.wikibooks.org/wiki/LPI_Linux_Certification&lt;br /&gt;
* http://en.wikibooks.org/wiki/Learning_the_vi_editor&lt;br /&gt;
* http://en.wikibooks.org/wiki/Category:Linux&lt;br /&gt;
&lt;br /&gt;
====Centers====&lt;br /&gt;
Among others Telindus Leuven can offer this certification&lt;br /&gt;
* http://www.vue.com/servlet/vue.web2.core.Dispatcher?webContext=CandidateSite&amp;amp;webApp=TestCenterLocator&amp;amp;requestedAction=register&amp;amp;cid=117&lt;br /&gt;
* http://www.jcacademy.be/testingCentre/_fr/index.asp&lt;br /&gt;
First register to LPI:&lt;br /&gt;
* http://www.lpi.org/en/lpi/english/certification/register_now&lt;br /&gt;
Then to Telindus with your LPI ID (visible in Candidate Overview after registration to LPI)&lt;br /&gt;
* +32 16 38 28 18 or http://www.jcacademy.be/testingCentre/_fr/inschrijven.asp&lt;br /&gt;
&lt;br /&gt;
===Try yourself===&lt;br /&gt;
Here are &amp;quot;clean&amp;quot; test questions copied from the LPI site but without the answers and fuzzed (on LPI the right answer is always the first!) so you can really try them and then check the answers on the LPI website.&lt;br /&gt;
&lt;br /&gt;
====LPIC-1 101 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mc&lt;br /&gt;
If you wanted to turn off mail notification, what command would you use?&lt;br /&gt;
&lt;br /&gt;
   mesg n&lt;br /&gt;
   mesg off&lt;br /&gt;
   biff n&lt;br /&gt;
   notify off&lt;br /&gt;
   set notify=off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mcma&lt;br /&gt;
Which of these commands could you use to show one page of output at a time?&lt;br /&gt;
&lt;br /&gt;
   more&lt;br /&gt;
   sed&lt;br /&gt;
   pause&lt;br /&gt;
   less&lt;br /&gt;
   grep&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.3 TYPE: mcma&lt;br /&gt;
Which commands will give you information about how much disk space each file in the current directory uses?&lt;br /&gt;
&lt;br /&gt;
   ls&lt;br /&gt;
   ls -l&lt;br /&gt;
   ls -a&lt;br /&gt;
   ls -la&lt;br /&gt;
   du .&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.4 TYPE: mc&lt;br /&gt;
What command would send the output of cmd1 to the input of cmd2?&lt;br /&gt;
&lt;br /&gt;
   cmd1 cmd2&lt;br /&gt;
   cmd1 ; cmd2&lt;br /&gt;
   cmd1 | cmd2&lt;br /&gt;
   cmd1 || cmd2&lt;br /&gt;
   cmd1 &amp;amp;&amp;amp; cmd2&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.3.5 TYPE: mc&lt;br /&gt;
Under the bash shell, when a command is running, pressing control-Z will usually&lt;br /&gt;
&lt;br /&gt;
   adds an EOF to the file.&lt;br /&gt;
   suspend the foreground task.&lt;br /&gt;
   kill the command running in the foreground&lt;br /&gt;
   move the foreground task into the background&lt;br /&gt;
   log the user off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.8.1 TYPE: mc&lt;br /&gt;
What is the &#039;man&#039; command used for?&lt;br /&gt;
&lt;br /&gt;
   it is the replacement for the &#039;boy&#039; command&lt;br /&gt;
   it is a standard alias to &#039;ls -la | more&#039;&lt;br /&gt;
   it is used to display formatted html pages&lt;br /&gt;
   to display information about the syntax for a command&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
In which file might you find the following entry: root:x:0:0::/root:/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
As root, what command would you type to initiate a password change for user larry?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.2 TYPE: mc&lt;br /&gt;
Under the bash shell which is the most appropriate place to set environment variables that apply to all users?&lt;br /&gt;
&lt;br /&gt;
   rc.local&lt;br /&gt;
   rc.sysinit&lt;br /&gt;
   /etc/skel&lt;br /&gt;
   /etc/profile&lt;br /&gt;
   /etc/bashrc&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.4 TYPE: mc&lt;br /&gt;
Which statement describes the cron daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.1 TYPE: mcma&lt;br /&gt;
Which of the following are valid block devices on most default linux distributions?&lt;br /&gt;
&lt;br /&gt;
   loopback devices&lt;br /&gt;
   serial ports&lt;br /&gt;
   virtual terminals&lt;br /&gt;
   tape devices&lt;br /&gt;
   hard disks&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.2 TYPE: mc&lt;br /&gt;
How can you best see how much free space you have in your current directory?&lt;br /&gt;
&lt;br /&gt;
   Use df&lt;br /&gt;
   Use df .&lt;br /&gt;
   Use df /&lt;br /&gt;
   Use du .&lt;br /&gt;
   Use du /&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.5 TYPE: fitb&lt;br /&gt;
Which command would you use to alter the permissions of a file (do not give any parameters)&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.8 TYPE: mc&lt;br /&gt;
Which command will update the slocate database as a background process?&lt;br /&gt;
&lt;br /&gt;
   updatedb &amp;amp;&lt;br /&gt;
   slocate --start &amp;amp;&lt;br /&gt;
   slocate --update &amp;amp;&lt;br /&gt;
   slocate --updatedb &amp;amp;&lt;br /&gt;
   slocatedb&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.6.2 TYPE: mc&lt;br /&gt;
Having booted into run level 3, how would you change to run level 5 without rebooting?&lt;br /&gt;
&lt;br /&gt;
   startx&lt;br /&gt;
   run 5&lt;br /&gt;
   ALT-F7-5&lt;br /&gt;
   setinit 5&lt;br /&gt;
   telinit 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/tasks_101.html&lt;br /&gt;
====LPIC-1 102 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.1.1 TYPE: mc&lt;br /&gt;
which command is used to change settings on IDE hard disk drives?&lt;br /&gt;
&lt;br /&gt;
   diskparm&lt;br /&gt;
   hdparam&lt;br /&gt;
   hdparm&lt;br /&gt;
   hddparm&lt;br /&gt;
   ideconfig&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: mc&lt;br /&gt;
Your logfile shows repeated connections to TCP port 143. Which named service is being accessed?&lt;br /&gt;
&lt;br /&gt;
   imap&lt;br /&gt;
   smbd&lt;br /&gt;
   nmbd&lt;br /&gt;
   pop2&lt;br /&gt;
   smtp&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: fitb&lt;br /&gt;
What type of packet does an IP ping use (provide acronym)?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.2 TYPE: mc&lt;br /&gt;
To learn more about the management of an internet site the best utility to use would be:&lt;br /&gt;
&lt;br /&gt;
   ping&lt;br /&gt;
   rpcdump&lt;br /&gt;
   telnet&lt;br /&gt;
   traceroute&lt;br /&gt;
   whois&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.3 TYPE: mc&lt;br /&gt;
If you had a Linux system routing 3 different Networks through 3 NICs and you were having trouble with your IP-Forwarding. Where would you look to ensure that IP-Forwarding is actually enabled?&lt;br /&gt;
&lt;br /&gt;
   iptraf -d eth0&lt;br /&gt;
   cat /proc/net/tcp&lt;br /&gt;
   cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
   netstat&lt;br /&gt;
   tail -f /var/log/messages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.1 TYPE: mc&lt;br /&gt;
What file is used for associating port numbers to port names.&lt;br /&gt;
&lt;br /&gt;
   /etc/hosts&lt;br /&gt;
   /etc/inetd.conf&lt;br /&gt;
   /etc/ports&lt;br /&gt;
   /etc/securetty&lt;br /&gt;
   /etc/services&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.4 TYPE: mc&lt;br /&gt;
You want to make the directory /local available via NFS. All users on your local network should be allowed to read and write files. Which of the following is correct, assuming that your local network is 192.168.1.0, and your machine is part of the DNS domain foobar.com?&lt;br /&gt;
&lt;br /&gt;
   192.168.1.0 /local&lt;br /&gt;
   /local 192.168.1.0(rw)&lt;br /&gt;
   /local 192.168.1.0/255.255.255.0(rw)&lt;br /&gt;
   /local *.com(rw)&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.14.1 TYPE: fitb&lt;br /&gt;
Which file can you create to prevent non-root users from logging into the system? (specify path and filename)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.2 TYPE: fitb&lt;br /&gt;
What command can be used to display a formatted output of the wtmp file? (no arguments)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.3 TYPE: fitb&lt;br /&gt;
Which command can be executed by a user who is already logged into the system, in order to change to the root user? (type the command without any parameters)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
To cause a particular print job to be printed next, regardless of its current position in the queue, what command would be used?&lt;br /&gt;
&lt;br /&gt;
   lpc topq&lt;br /&gt;
   lpc -t&lt;br /&gt;
   lpq -t&lt;br /&gt;
   lpq --next&lt;br /&gt;
   lpc move&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
Which statement describes the LPD daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.10.4 TYPE: mc&lt;br /&gt;
When configuring a terminal for X what does the -fn switch do?&lt;br /&gt;
&lt;br /&gt;
   It sets the terminal&#039;s default function.&lt;br /&gt;
   It places the terminal in the foreground on your screen.&lt;br /&gt;
   It sets the terminal&#039;s initial value to false.&lt;br /&gt;
   It sets the terminal&#039;s initial display to reverse video.&lt;br /&gt;
   It sets the font size and or type for the terminal.&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.1 TYPE: mc&lt;br /&gt;
What command(s) do you use to create swap space?&lt;br /&gt;
&lt;br /&gt;
   activeswap&lt;br /&gt;
   initswap&lt;br /&gt;
   mkfs -t swap&lt;br /&gt;
   mkswap&lt;br /&gt;
   swapon&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.3 TYPE: fitb&lt;br /&gt;
Type the full command you could use to decompress the file &amp;quot;foo.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   decompress foo.gz&lt;br /&gt;
   gzip -d foo.gz&lt;br /&gt;
   gunzip -d foo.gz&lt;br /&gt;
   gunzip foo.gz&lt;br /&gt;
   unzip foo.gz&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.5 TYPE: mc&lt;br /&gt;
How can you add package information from a file Packages to the database of available Debian packages?&lt;br /&gt;
&lt;br /&gt;
   dpkg --merge-avail Packages&lt;br /&gt;
   dpkg --record-avail Packages&lt;br /&gt;
   dpkg --update-avail Packages&lt;br /&gt;
   dpkg -U Packages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.6 TYPE: mc&lt;br /&gt;
You need to find out which package owns a file called /etc/paper.config. Which command will answer this question?&lt;br /&gt;
&lt;br /&gt;
   rpm --requires /etc/paper.config&lt;br /&gt;
   rpm -Fq /etc/paper.config&lt;br /&gt;
   rpm -q /etc/paper.config&lt;br /&gt;
   rpm -qa|grep /etc/paper.config&lt;br /&gt;
   rpm -qf /etc/paper.config&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/tasks_102.html&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1322</id>
		<title>Linux Certification</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1322"/>
		<updated>2006-08-16T13:05:15Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Centers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[http://www.lpi.org Linux Professional Institute]===&lt;br /&gt;
&lt;br /&gt;
See also [http://en.wikipedia.org/wiki/Linux_Professional_Institute On Wikipedia]&lt;br /&gt;
&lt;br /&gt;
====Books====&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789722895/ LPIC Linux Level 1, Test 1 (Cheat Sheet S.) (Paperback) ] 352 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/3937514023 LPIC-1. (Hardcover)] &lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0764547720 LPIC1 Certification Bible (Paperback)] 880 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789731274 LPIC I Exam Cram 2: Exam 101, 102 (Exam Cram 2 S.) (Paperback)] 588 pages, said to be up-to-date, [http://www.examcram2.com/bookstore/product.asp?isbn=0789731274&amp;amp;rl=1 official website]&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/1565927486 LPI Linux Certification in a Nutshell (Paperback)] 576 pages [http://www.amazon.co.uk/gp/product/0596005288 New edition in July 2006] current edition is largely outdated&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/078214425X LPIC-1: Linux Professional Institute Certification: Study Guide (Level 1 Exams 101 and 102) (Paperback)] 656 pages&lt;br /&gt;
&lt;br /&gt;
====Courses====&lt;br /&gt;
* http://www.linuxcertified.com/linux-courseware.html&lt;br /&gt;
* http://www.lynuxtraining.com/formations/index.html#3&lt;br /&gt;
* http://www.ibm.com/Search/?q=lpic-1&amp;amp;v=11&amp;amp;lang=en&amp;amp;cc=us&amp;amp;en=utf&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search&lt;br /&gt;
* http://www.sybex.com/WileyCDA/SybexTitle/productCd-078214425X,navId-291002,pageCd-resources.html&lt;br /&gt;
* http://www.bradfordlearning.com/cgi-bin/Item.cgi?action=ShowCategory&amp;amp;category=certification16&amp;amp;item=34&lt;br /&gt;
====Tutorials====&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/lpi/index.html Seems impossible to register for now...&lt;br /&gt;
** [http://www.google.fr/search?hl=fr&amp;amp;q=ibm.com%2FdeveloperWorks+filetype%3Apdf+intitle%3Alpi&amp;amp;btnG=Rechercher&amp;amp;meta= Search for copies on Google]&lt;br /&gt;
** e.g. here: http://www.eastbayimprov.com/dave/ux/linuxstudy/&lt;br /&gt;
* http://en.wikibooks.org/wiki/LPI_Linux_Certification&lt;br /&gt;
* http://en.wikibooks.org/wiki/Learning_the_vi_editor&lt;br /&gt;
* http://en.wikibooks.org/wiki/Category:Linux&lt;br /&gt;
&lt;br /&gt;
====Centers====&lt;br /&gt;
Among others Telindus Leuven can offer this certification&lt;br /&gt;
* http://www.vue.com/servlet/vue.web2.core.Dispatcher?webContext=CandidateSite&amp;amp;webApp=TestCenterLocator&amp;amp;requestedAction=register&amp;amp;cid=117&lt;br /&gt;
* http://www.jcacademy.be/testingCentre/_fr/index.asp&lt;br /&gt;
First register to LPI:&lt;br /&gt;
* http://www.lpi.org/en/lpi/english/certification/register_now&lt;br /&gt;
Then to Telindus with your LPI ID (visible in Candidate Overview after registration to LPI)&lt;br /&gt;
* +32 16 38 28 18 or http://www.jcacademy.be/testingCentre/_fr/inschrijven.asp&lt;br /&gt;
&lt;br /&gt;
===Try yourself===&lt;br /&gt;
Here are &amp;quot;clean&amp;quot; test questions copied from the LPI site but without the answers and fuzzed (on LPI the right answer is always the first!) so you can really try them and then check the answers on the LPI website.&lt;br /&gt;
&lt;br /&gt;
====LPIC-1 101 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mc&lt;br /&gt;
If you wanted to turn off mail notification, what command would you use?&lt;br /&gt;
&lt;br /&gt;
   mesg n&lt;br /&gt;
   mesg off&lt;br /&gt;
   biff n&lt;br /&gt;
   notify off&lt;br /&gt;
   set notify=off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mcma&lt;br /&gt;
Which of these commands could you use to show one page of output at a time?&lt;br /&gt;
&lt;br /&gt;
   more&lt;br /&gt;
   sed&lt;br /&gt;
   pause&lt;br /&gt;
   less&lt;br /&gt;
   grep&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.3 TYPE: mcma&lt;br /&gt;
Which commands will give you information about how much disk space each file in the current directory uses?&lt;br /&gt;
&lt;br /&gt;
   ls&lt;br /&gt;
   ls -l&lt;br /&gt;
   ls -a&lt;br /&gt;
   ls -la&lt;br /&gt;
   du .&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.4 TYPE: mc&lt;br /&gt;
What command would send the output of cmd1 to the input of cmd2?&lt;br /&gt;
&lt;br /&gt;
   cmd1 cmd2&lt;br /&gt;
   cmd1 ; cmd2&lt;br /&gt;
   cmd1 | cmd2&lt;br /&gt;
   cmd1 || cmd2&lt;br /&gt;
   cmd1 &amp;amp;&amp;amp; cmd2&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.3.5 TYPE: mc&lt;br /&gt;
Under the bash shell, when a command is running, pressing control-Z will usually&lt;br /&gt;
&lt;br /&gt;
   adds an EOF to the file.&lt;br /&gt;
   suspend the foreground task.&lt;br /&gt;
   kill the command running in the foreground&lt;br /&gt;
   move the foreground task into the background&lt;br /&gt;
   log the user off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.8.1 TYPE: mc&lt;br /&gt;
What is the &#039;man&#039; command used for?&lt;br /&gt;
&lt;br /&gt;
   it is the replacement for the &#039;boy&#039; command&lt;br /&gt;
   it is a standard alias to &#039;ls -la | more&#039;&lt;br /&gt;
   it is used to display formatted html pages&lt;br /&gt;
   to display information about the syntax for a command&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
In which file might you find the following entry: root:x:0:0::/root:/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
As root, what command would you type to initiate a password change for user larry?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.2 TYPE: mc&lt;br /&gt;
Under the bash shell which is the most appropriate place to set environment variables that apply to all users?&lt;br /&gt;
&lt;br /&gt;
   rc.local&lt;br /&gt;
   rc.sysinit&lt;br /&gt;
   /etc/skel&lt;br /&gt;
   /etc/profile&lt;br /&gt;
   /etc/bashrc&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.4 TYPE: mc&lt;br /&gt;
Which statement describes the cron daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.1 TYPE: mcma&lt;br /&gt;
Which of the following are valid block devices on most default linux distributions?&lt;br /&gt;
&lt;br /&gt;
   loopback devices&lt;br /&gt;
   serial ports&lt;br /&gt;
   virtual terminals&lt;br /&gt;
   tape devices&lt;br /&gt;
   hard disks&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.2 TYPE: mc&lt;br /&gt;
How can you best see how much free space you have in your current directory?&lt;br /&gt;
&lt;br /&gt;
   Use df&lt;br /&gt;
   Use df .&lt;br /&gt;
   Use df /&lt;br /&gt;
   Use du .&lt;br /&gt;
   Use du /&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.5 TYPE: fitb&lt;br /&gt;
Which command would you use to alter the permissions of a file (do not give any parameters)&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.8 TYPE: mc&lt;br /&gt;
Which command will update the slocate database as a background process?&lt;br /&gt;
&lt;br /&gt;
   updatedb &amp;amp;&lt;br /&gt;
   slocate --start &amp;amp;&lt;br /&gt;
   slocate --update &amp;amp;&lt;br /&gt;
   slocate --updatedb &amp;amp;&lt;br /&gt;
   slocatedb&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.6.2 TYPE: mc&lt;br /&gt;
Having booted into run level 3, how would you change to run level 5 without rebooting?&lt;br /&gt;
&lt;br /&gt;
   startx&lt;br /&gt;
   run 5&lt;br /&gt;
   ALT-F7-5&lt;br /&gt;
   setinit 5&lt;br /&gt;
   telinit 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/tasks_101.html&lt;br /&gt;
====LPIC-1 102 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.1.1 TYPE: mc&lt;br /&gt;
which command is used to change settings on IDE hard disk drives?&lt;br /&gt;
&lt;br /&gt;
   diskparm&lt;br /&gt;
   hdparam&lt;br /&gt;
   hdparm&lt;br /&gt;
   hddparm&lt;br /&gt;
   ideconfig&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: mc&lt;br /&gt;
Your logfile shows repeated connections to TCP port 143. Which named service is being accessed?&lt;br /&gt;
&lt;br /&gt;
   imap&lt;br /&gt;
   smbd&lt;br /&gt;
   nmbd&lt;br /&gt;
   pop2&lt;br /&gt;
   smtp&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: fitb&lt;br /&gt;
What type of packet does an IP ping use (provide acronym)?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.2 TYPE: mc&lt;br /&gt;
To learn more about the management of an internet site the best utility to use would be:&lt;br /&gt;
&lt;br /&gt;
   ping&lt;br /&gt;
   rpcdump&lt;br /&gt;
   telnet&lt;br /&gt;
   traceroute&lt;br /&gt;
   whois&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.3 TYPE: mc&lt;br /&gt;
If you had a Linux system routing 3 different Networks through 3 NICs and you were having trouble with your IP-Forwarding. Where would you look to ensure that IP-Forwarding is actually enabled?&lt;br /&gt;
&lt;br /&gt;
   iptraf -d eth0&lt;br /&gt;
   cat /proc/net/tcp&lt;br /&gt;
   cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
   netstat&lt;br /&gt;
   tail -f /var/log/messages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.1 TYPE: mc&lt;br /&gt;
What file is used for associating port numbers to port names.&lt;br /&gt;
&lt;br /&gt;
   /etc/hosts&lt;br /&gt;
   /etc/inetd.conf&lt;br /&gt;
   /etc/ports&lt;br /&gt;
   /etc/securetty&lt;br /&gt;
   /etc/services&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.4 TYPE: mc&lt;br /&gt;
You want to make the directory /local available via NFS. All users on your local network should be allowed to read and write files. Which of the following is correct, assuming that your local network is 192.168.1.0, and your machine is part of the DNS domain foobar.com?&lt;br /&gt;
&lt;br /&gt;
   192.168.1.0 /local&lt;br /&gt;
   /local 192.168.1.0(rw)&lt;br /&gt;
   /local 192.168.1.0/255.255.255.0(rw)&lt;br /&gt;
   /local *.com(rw)&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.14.1 TYPE: fitb&lt;br /&gt;
Which file can you create to prevent non-root users from logging into the system? (specify path and filename)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.2 TYPE: fitb&lt;br /&gt;
What command can be used to display a formatted output of the wtmp file? (no arguments)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.3 TYPE: fitb&lt;br /&gt;
Which command can be executed by a user who is already logged into the system, in order to change to the root user? (type the command without any parameters)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
To cause a particular print job to be printed next, regardless of its current position in the queue, what command would be used?&lt;br /&gt;
&lt;br /&gt;
   lpc topq&lt;br /&gt;
   lpc -t&lt;br /&gt;
   lpq -t&lt;br /&gt;
   lpq --next&lt;br /&gt;
   lpc move&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
Which statement describes the LPD daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.10.4 TYPE: mc&lt;br /&gt;
When configuring a terminal for X what does the -fn switch do?&lt;br /&gt;
&lt;br /&gt;
   It sets the terminal&#039;s default function.&lt;br /&gt;
   It places the terminal in the foreground on your screen.&lt;br /&gt;
   It sets the terminal&#039;s initial value to false.&lt;br /&gt;
   It sets the terminal&#039;s initial display to reverse video.&lt;br /&gt;
   It sets the font size and or type for the terminal.&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.1 TYPE: mc&lt;br /&gt;
What command(s) do you use to create swap space?&lt;br /&gt;
&lt;br /&gt;
   activeswap&lt;br /&gt;
   initswap&lt;br /&gt;
   mkfs -t swap&lt;br /&gt;
   mkswap&lt;br /&gt;
   swapon&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.3 TYPE: fitb&lt;br /&gt;
Type the full command you could use to decompress the file &amp;quot;foo.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   decompress foo.gz&lt;br /&gt;
   gzip -d foo.gz&lt;br /&gt;
   gunzip -d foo.gz&lt;br /&gt;
   gunzip foo.gz&lt;br /&gt;
   unzip foo.gz&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.5 TYPE: mc&lt;br /&gt;
How can you add package information from a file Packages to the database of available Debian packages?&lt;br /&gt;
&lt;br /&gt;
   dpkg --merge-avail Packages&lt;br /&gt;
   dpkg --record-avail Packages&lt;br /&gt;
   dpkg --update-avail Packages&lt;br /&gt;
   dpkg -U Packages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.6 TYPE: mc&lt;br /&gt;
You need to find out which package owns a file called /etc/paper.config. Which command will answer this question?&lt;br /&gt;
&lt;br /&gt;
   rpm --requires /etc/paper.config&lt;br /&gt;
   rpm -Fq /etc/paper.config&lt;br /&gt;
   rpm -q /etc/paper.config&lt;br /&gt;
   rpm -qa|grep /etc/paper.config&lt;br /&gt;
   rpm -qf /etc/paper.config&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/tasks_102.html&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1321</id>
		<title>Linux Certification</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Linux_Certification&amp;diff=1321"/>
		<updated>2006-08-16T13:04:43Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Centers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[http://www.lpi.org Linux Professional Institute]===&lt;br /&gt;
&lt;br /&gt;
See also [http://en.wikipedia.org/wiki/Linux_Professional_Institute On Wikipedia]&lt;br /&gt;
&lt;br /&gt;
====Books====&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789722895/ LPIC Linux Level 1, Test 1 (Cheat Sheet S.) (Paperback) ] 352 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/3937514023 LPIC-1. (Hardcover)] &lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0764547720 LPIC1 Certification Bible (Paperback)] 880 pages&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/0789731274 LPIC I Exam Cram 2: Exam 101, 102 (Exam Cram 2 S.) (Paperback)] 588 pages, said to be up-to-date, [http://www.examcram2.com/bookstore/product.asp?isbn=0789731274&amp;amp;rl=1 official website]&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/1565927486 LPI Linux Certification in a Nutshell (Paperback)] 576 pages [http://www.amazon.co.uk/gp/product/0596005288 New edition in July 2006] current edition is largely outdated&lt;br /&gt;
* [http://www.amazon.co.uk/gp/product/078214425X LPIC-1: Linux Professional Institute Certification: Study Guide (Level 1 Exams 101 and 102) (Paperback)] 656 pages&lt;br /&gt;
&lt;br /&gt;
====Courses====&lt;br /&gt;
* http://www.linuxcertified.com/linux-courseware.html&lt;br /&gt;
* http://www.lynuxtraining.com/formations/index.html#3&lt;br /&gt;
* http://www.ibm.com/Search/?q=lpic-1&amp;amp;v=11&amp;amp;lang=en&amp;amp;cc=us&amp;amp;en=utf&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search&lt;br /&gt;
* http://www.sybex.com/WileyCDA/SybexTitle/productCd-078214425X,navId-291002,pageCd-resources.html&lt;br /&gt;
* http://www.bradfordlearning.com/cgi-bin/Item.cgi?action=ShowCategory&amp;amp;category=certification16&amp;amp;item=34&lt;br /&gt;
====Tutorials====&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/lpi/index.html Seems impossible to register for now...&lt;br /&gt;
** [http://www.google.fr/search?hl=fr&amp;amp;q=ibm.com%2FdeveloperWorks+filetype%3Apdf+intitle%3Alpi&amp;amp;btnG=Rechercher&amp;amp;meta= Search for copies on Google]&lt;br /&gt;
** e.g. here: http://www.eastbayimprov.com/dave/ux/linuxstudy/&lt;br /&gt;
* http://en.wikibooks.org/wiki/LPI_Linux_Certification&lt;br /&gt;
* http://en.wikibooks.org/wiki/Learning_the_vi_editor&lt;br /&gt;
* http://en.wikibooks.org/wiki/Category:Linux&lt;br /&gt;
&lt;br /&gt;
====Centers====&lt;br /&gt;
Among others Telindus Leuven can offer this certification&lt;br /&gt;
* http://www.vue.com/servlet/vue.web2.core.Dispatcher?webContext=CandidateSite&amp;amp;webApp=TestCenterLocator&amp;amp;requestedAction=register&amp;amp;cid=117&lt;br /&gt;
* http://www.jcacademy.be/testingCentre/_fr/index.asp&lt;br /&gt;
First register to LPI:&lt;br /&gt;
* http://www.lpi.org/en/lpi/english/certification/register_now&lt;br /&gt;
Then to Telindus with your LPI ID (visible in Candidate Overview after registration to LPI)&lt;br /&gt;
** +32 16 38 28 18 or http://www.jcacademy.be/testingCentre/_fr/inschrijven.asp&lt;br /&gt;
&lt;br /&gt;
===Try yourself===&lt;br /&gt;
Here are &amp;quot;clean&amp;quot; test questions copied from the LPI site but without the answers and fuzzed (on LPI the right answer is always the first!) so you can really try them and then check the answers on the LPI website.&lt;br /&gt;
&lt;br /&gt;
====LPIC-1 101 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mc&lt;br /&gt;
If you wanted to turn off mail notification, what command would you use?&lt;br /&gt;
&lt;br /&gt;
   mesg n&lt;br /&gt;
   mesg off&lt;br /&gt;
   biff n&lt;br /&gt;
   notify off&lt;br /&gt;
   set notify=off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.1 TYPE: mcma&lt;br /&gt;
Which of these commands could you use to show one page of output at a time?&lt;br /&gt;
&lt;br /&gt;
   more&lt;br /&gt;
   sed&lt;br /&gt;
   pause&lt;br /&gt;
   less&lt;br /&gt;
   grep&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.3 TYPE: mcma&lt;br /&gt;
Which commands will give you information about how much disk space each file in the current directory uses?&lt;br /&gt;
&lt;br /&gt;
   ls&lt;br /&gt;
   ls -l&lt;br /&gt;
   ls -a&lt;br /&gt;
   ls -la&lt;br /&gt;
   du .&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.3.4 TYPE: mc&lt;br /&gt;
What command would send the output of cmd1 to the input of cmd2?&lt;br /&gt;
&lt;br /&gt;
   cmd1 cmd2&lt;br /&gt;
   cmd1 ; cmd2&lt;br /&gt;
   cmd1 | cmd2&lt;br /&gt;
   cmd1 || cmd2&lt;br /&gt;
   cmd1 &amp;amp;&amp;amp; cmd2&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.3.5 TYPE: mc&lt;br /&gt;
Under the bash shell, when a command is running, pressing control-Z will usually&lt;br /&gt;
&lt;br /&gt;
   adds an EOF to the file.&lt;br /&gt;
   suspend the foreground task.&lt;br /&gt;
   kill the command running in the foreground&lt;br /&gt;
   move the foreground task into the background&lt;br /&gt;
   log the user off&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.8.1 TYPE: mc&lt;br /&gt;
What is the &#039;man&#039; command used for?&lt;br /&gt;
&lt;br /&gt;
   it is the replacement for the &#039;boy&#039; command&lt;br /&gt;
   it is a standard alias to &#039;ls -la | more&#039;&lt;br /&gt;
   it is used to display formatted html pages&lt;br /&gt;
   to display information about the syntax for a command&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
In which file might you find the following entry: root:x:0:0::/root:/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.1 TYPE: fitb&lt;br /&gt;
As root, what command would you type to initiate a password change for user larry?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.2 TYPE: mc&lt;br /&gt;
Under the bash shell which is the most appropriate place to set environment variables that apply to all users?&lt;br /&gt;
&lt;br /&gt;
   rc.local&lt;br /&gt;
   rc.sysinit&lt;br /&gt;
   /etc/skel&lt;br /&gt;
   /etc/profile&lt;br /&gt;
   /etc/bashrc&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.11.4 TYPE: mc&lt;br /&gt;
Which statement describes the cron daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.1 TYPE: mcma&lt;br /&gt;
Which of the following are valid block devices on most default linux distributions?&lt;br /&gt;
&lt;br /&gt;
   loopback devices&lt;br /&gt;
   serial ports&lt;br /&gt;
   virtual terminals&lt;br /&gt;
   tape devices&lt;br /&gt;
   hard disks&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.2 TYPE: mc&lt;br /&gt;
How can you best see how much free space you have in your current directory?&lt;br /&gt;
&lt;br /&gt;
   Use df&lt;br /&gt;
   Use df .&lt;br /&gt;
   Use df /&lt;br /&gt;
   Use du .&lt;br /&gt;
   Use du /&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.5 TYPE: fitb&lt;br /&gt;
Which command would you use to alter the permissions of a file (do not give any parameters)&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.4.8 TYPE: mc&lt;br /&gt;
Which command will update the slocate database as a background process?&lt;br /&gt;
&lt;br /&gt;
   updatedb &amp;amp;&lt;br /&gt;
   slocate --start &amp;amp;&lt;br /&gt;
   slocate --update &amp;amp;&lt;br /&gt;
   slocate --updatedb &amp;amp;&lt;br /&gt;
   slocatedb&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.6.2 TYPE: mc&lt;br /&gt;
Having booted into run level 3, how would you change to run level 5 without rebooting?&lt;br /&gt;
&lt;br /&gt;
   startx&lt;br /&gt;
   run 5&lt;br /&gt;
   ALT-F7-5&lt;br /&gt;
   setinit 5&lt;br /&gt;
   telinit 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/tasks_101.html&lt;br /&gt;
====LPIC-1 102 Sample questions====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OBJECTIVE: 1.1.1 TYPE: mc&lt;br /&gt;
which command is used to change settings on IDE hard disk drives?&lt;br /&gt;
&lt;br /&gt;
   diskparm&lt;br /&gt;
   hdparam&lt;br /&gt;
   hdparm&lt;br /&gt;
   hddparm&lt;br /&gt;
   ideconfig&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: mc&lt;br /&gt;
Your logfile shows repeated connections to TCP port 143. Which named service is being accessed?&lt;br /&gt;
&lt;br /&gt;
   imap&lt;br /&gt;
   smbd&lt;br /&gt;
   nmbd&lt;br /&gt;
   pop2&lt;br /&gt;
   smtp&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.1 TYPE: fitb&lt;br /&gt;
What type of packet does an IP ping use (provide acronym)?&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.2 TYPE: mc&lt;br /&gt;
To learn more about the management of an internet site the best utility to use would be:&lt;br /&gt;
&lt;br /&gt;
   ping&lt;br /&gt;
   rpcdump&lt;br /&gt;
   telnet&lt;br /&gt;
   traceroute&lt;br /&gt;
   whois&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.12.3 TYPE: mc&lt;br /&gt;
If you had a Linux system routing 3 different Networks through 3 NICs and you were having trouble with your IP-Forwarding. Where would you look to ensure that IP-Forwarding is actually enabled?&lt;br /&gt;
&lt;br /&gt;
   iptraf -d eth0&lt;br /&gt;
   cat /proc/net/tcp&lt;br /&gt;
   cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
   netstat&lt;br /&gt;
   tail -f /var/log/messages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.1 TYPE: mc&lt;br /&gt;
What file is used for associating port numbers to port names.&lt;br /&gt;
&lt;br /&gt;
   /etc/hosts&lt;br /&gt;
   /etc/inetd.conf&lt;br /&gt;
   /etc/ports&lt;br /&gt;
   /etc/securetty&lt;br /&gt;
   /etc/services&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.13.4 TYPE: mc&lt;br /&gt;
You want to make the directory /local available via NFS. All users on your local network should be allowed to read and write files. Which of the following is correct, assuming that your local network is 192.168.1.0, and your machine is part of the DNS domain foobar.com?&lt;br /&gt;
&lt;br /&gt;
   192.168.1.0 /local&lt;br /&gt;
   /local 192.168.1.0(rw)&lt;br /&gt;
   /local 192.168.1.0/255.255.255.0(rw)&lt;br /&gt;
   /local *.com(rw)&lt;br /&gt;
&lt;br /&gt;
Top OBJECTIVE: 1.14.1 TYPE: fitb&lt;br /&gt;
Which file can you create to prevent non-root users from logging into the system? (specify path and filename)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.2 TYPE: fitb&lt;br /&gt;
What command can be used to display a formatted output of the wtmp file? (no arguments)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.14.3 TYPE: fitb&lt;br /&gt;
Which command can be executed by a user who is already logged into the system, in order to change to the root user? (type the command without any parameters)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
To cause a particular print job to be printed next, regardless of its current position in the queue, what command would be used?&lt;br /&gt;
&lt;br /&gt;
   lpc topq&lt;br /&gt;
   lpc -t&lt;br /&gt;
   lpq -t&lt;br /&gt;
   lpq --next&lt;br /&gt;
   lpc move&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 1.7.2 TYPE: mc&lt;br /&gt;
Which statement describes the LPD daemon?&lt;br /&gt;
&lt;br /&gt;
   Manages all incoming connections and spawns off child processes&lt;br /&gt;
   Is responsible for file sharing across a network&lt;br /&gt;
   Manages scheduling of routine system tasks&lt;br /&gt;
   Manages the printing subsystem&lt;br /&gt;
   Keeps track of system messages and errors&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.10.4 TYPE: mc&lt;br /&gt;
When configuring a terminal for X what does the -fn switch do?&lt;br /&gt;
&lt;br /&gt;
   It sets the terminal&#039;s default function.&lt;br /&gt;
   It places the terminal in the foreground on your screen.&lt;br /&gt;
   It sets the terminal&#039;s initial value to false.&lt;br /&gt;
   It sets the terminal&#039;s initial display to reverse video.&lt;br /&gt;
   It sets the font size and or type for the terminal.&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.1 TYPE: mc&lt;br /&gt;
What command(s) do you use to create swap space?&lt;br /&gt;
&lt;br /&gt;
   activeswap&lt;br /&gt;
   initswap&lt;br /&gt;
   mkfs -t swap&lt;br /&gt;
   mkswap&lt;br /&gt;
   swapon&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.3 TYPE: fitb&lt;br /&gt;
Type the full command you could use to decompress the file &amp;quot;foo.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   decompress foo.gz&lt;br /&gt;
   gzip -d foo.gz&lt;br /&gt;
   gunzip -d foo.gz&lt;br /&gt;
   gunzip foo.gz&lt;br /&gt;
   unzip foo.gz&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.5 TYPE: mc&lt;br /&gt;
How can you add package information from a file Packages to the database of available Debian packages?&lt;br /&gt;
&lt;br /&gt;
   dpkg --merge-avail Packages&lt;br /&gt;
   dpkg --record-avail Packages&lt;br /&gt;
   dpkg --update-avail Packages&lt;br /&gt;
   dpkg -U Packages&lt;br /&gt;
&lt;br /&gt;
OBJECTIVE: 2.2.6 TYPE: mc&lt;br /&gt;
You need to find out which package owns a file called /etc/paper.config. Which command will answer this question?&lt;br /&gt;
&lt;br /&gt;
   rpm --requires /etc/paper.config&lt;br /&gt;
   rpm -Fq /etc/paper.config&lt;br /&gt;
   rpm -q /etc/paper.config&lt;br /&gt;
   rpm -qa|grep /etc/paper.config&lt;br /&gt;
   rpm -qf /etc/paper.config&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the solutions on http://www.lpi.org/en/tasks_102.html&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=B%C3%A9b%C3%A9&amp;diff=1316</id>
		<title>Bébé</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=B%C3%A9b%C3%A9&amp;diff=1316"/>
		<updated>2006-07-24T08:33:10Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: /* Primes et allocs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Crèches====&lt;br /&gt;
* [http://www.elsene.irisnet.be/site/fr/02vivrexl/grandir/crechescommu.htm Les crèches communales]&lt;br /&gt;
* [http://www.elsene.irisnet.be/site/fr/02vivrexl/grandir/crechespriv.htm Les crèches privées]&lt;br /&gt;
* Mini Cracra&amp;lt;br&amp;gt;Chaussée d&#039;Ixelles, 315 - 1050 Bruxelles&amp;lt;br&amp;gt;Tél. 02.644.64.50&amp;lt;br&amp;gt;Francophone&amp;lt;br&amp;gt;380€ pour 4/5&lt;br /&gt;
====Congés====&lt;br /&gt;
* [http://www.meta.fgov.be/pdf/pd/frdc19.pdf Congé de maternité] et [http://www.meta.fgov.be/pdf/pd/frdc19a.pdf addendum]&lt;br /&gt;
* [http://www.meta.fgov.be/pk/pkh/frkh05.htm Congé de paternité]&lt;br /&gt;
* [http://www.meta.fgov.be/pk/pkh/frkh33.htm Congé parental]&lt;br /&gt;
* [http://www.meta.fgov.be/pdf/pd/frdc30.pdf Congé-éducation (pdf)]&lt;br /&gt;
====Primes et allocs====&lt;br /&gt;
* [http://www.securex.be/portal/application?language=FR&amp;amp;contentUrl=/website/be/public/5E7D78B6053283A7C1256FDC00423326_fr.html#topPage Prime de naissance caisse d&#039;allocations]&lt;br /&gt;
* [http://www.fmsb.be/pdf/info/infomut41.pdf Prime de naissance FMSB (pdf)]&lt;br /&gt;
** Pour recevoir l&#039;intervention, vous devez nous présenter un certificat de naissance ou d&#039;adoption délivré par l&#039;administration communale.&lt;br /&gt;
&lt;br /&gt;
====Commune====&lt;br /&gt;
* [http://www.elsene.irisnet.be/site/fr/02vivrexl/habiter/gdsevents.htm Ixelles]: déclaration, parrainnage laïque etc&lt;br /&gt;
====Divers====&lt;br /&gt;
* http://www.terrafutura.com/html/univers/enceinte.asp&lt;br /&gt;
* http://www.famidoo.be/xml/doc__fr-IDC-5-.html&lt;br /&gt;
* http://www.gardes-bb.be&lt;br /&gt;
* Vêtements femme enceinte Liège&lt;br /&gt;
** http://www.nombril.be/&lt;br /&gt;
** http://liegecachecache.site.voila.fr/&lt;br /&gt;
* http://www.kiddybips.com/frans/fr_wie.html&lt;br /&gt;
* http://www.chez.com/accouchement/shopping.htm&lt;br /&gt;
* http://www.peau-a-peau.be/defaultn.htm&lt;br /&gt;
* http://www.bebenageur.be/&lt;br /&gt;
* http://www.ptibou.be/index.asp?ID=911&lt;br /&gt;
* http://www.maman-nature.com/shop/&lt;br /&gt;
* http://www.dreambaby.be/dreambaby/index.jsp&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Pr%C3%AAts_et_emprunts&amp;diff=1282</id>
		<title>Prêts et emprunts</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Pr%C3%AAts_et_emprunts&amp;diff=1282"/>
		<updated>2006-06-21T09:32:57Z</updated>

		<summary type="html">&lt;p&gt;57.67.161.6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Philips===&lt;br /&gt;
====MarcV====&lt;br /&gt;
*Chomsky: La fabrique de l&#039;opinion publique &amp;amp; Chomsky: De la propagande&lt;br /&gt;
*Dancer in the Dark, Lain 1&lt;br /&gt;
====Fabian====&lt;br /&gt;
*Guide Singapour&lt;br /&gt;
===Autres===&lt;br /&gt;
====Henri====&lt;br /&gt;
*Fantasia&lt;br /&gt;
====Jean-Seb====&lt;br /&gt;
*Accordéon&lt;br /&gt;
*Cruche verte&lt;br /&gt;
*1k5&lt;br /&gt;
====Guy====&lt;br /&gt;
*Farde emploi&lt;br /&gt;
====Oli====&lt;br /&gt;
*Hold-up planétaire&lt;br /&gt;
*Knight Tale, Shil Angel, Antitrust&lt;br /&gt;
*Ikonos? (copie ou pret?)&lt;br /&gt;
*290.46 + 114.76(frys) + 141.84 (500-baie un an) = 547.06€&lt;br /&gt;
*Souches Oli=je dois???&lt;br /&gt;
*Brico, Oli doit 85.21&lt;br /&gt;
*Diesel: ??? j&#039;ai payé un plein de 59€&lt;br /&gt;
&lt;br /&gt;
====Val====&lt;br /&gt;
*Lecteur Zip + un zip&lt;br /&gt;
====Nath====&lt;br /&gt;
*Poche Linux&lt;br /&gt;
*OBrother??, Mononoke&lt;br /&gt;
* &amp;lt;- Pour une éthique à l&#039;ingérence&lt;br /&gt;
*Mitac&lt;br /&gt;
====Dorian====&lt;br /&gt;
*pigtail court+pigtail long cassé+rallonge N+WET11&lt;br /&gt;
*2 Linux France mags&lt;br /&gt;
*Camping gaz&lt;br /&gt;
*Dernier empereur, c&#039;est arrivé près de chez vous&lt;br /&gt;
* Zaurus SL5000 + housse + SD128Mb + CF Wifi + chargeur + 2ème batterie + adapt. secteur + station USB&lt;br /&gt;
====Marc Mign====&lt;br /&gt;
*Coder Zen&lt;br /&gt;
====Carl====&lt;br /&gt;
*je dois 5€&lt;br /&gt;
====Dimi====&lt;br /&gt;
*Carte WiFi Avaya&lt;br /&gt;
&lt;br /&gt;
===qui?===&lt;br /&gt;
*Bridge PCI-PCMCIA&lt;/div&gt;</summary>
		<author><name>57.67.161.6</name></author>
	</entry>
</feed>