__          __             __
\ \_________\ \____________\ \___
 \  _ \  _\ _  \  _\ __ \ __\   /
  \___/\__/\__/ \_\ \___/\__/\_\_\

Bedrock Linux 1.0alpha2 Momo

Bedrock Linux 1.0alpha2 "Momo" Configuration Instructions

  1. rc.conf
    1. TZ
    2. HWCLOCK
    3. LANG
    4. DEVICE_MANAGER
    5. UDEV_CLIENT
    6. BRPATH
    7. AUTO_BRS
    8. BR_CREATE_MISSING
    9. BRC_MOUNT_WARN
  2. capchroot.allow
  3. brclients.conf
    1. path
    2. update
    3. mount
    4. fstab
  4. .brsh.conf
  5. rcS.clients and rcK.clients

rc.conf

The rc.conf file is located at /opt/bedrock/etc/rc.conf. This is sourced as a bourne shell script, so be careful with your syntax - there should be no spaces around the equals signs used for establishing a setting. Change the text to the right of the equals sign to set the value.

TZ

Sets timezone, using the POSIX TZ environmental variable standard. Should be in the form of

non-daylight-savings-timezone-acronymUTC-offsetdaylight-savings-timezone-acronym

For example:

TZ=EST5EDT

HWCLOCK

Sets whether the hardware clock is set to local time or UTC. Traditionally *nix systems use UTC, but Windows uses local. If you are dual-booting with Windows, local may be preferable. Set to LOCAL or UTC accordingly.

LANG

Sets language.

DEVICE_MANAGER

The device files in /dev can be managed in one of three ways:

UDEV_CLIENT

If DEVICE_MANAGER=udev, one can specify which client's udev will be used by setting UDEV_CLIENT=CLIENT. If this is not available but DEVICE_MANAGER=udev, Bedrock Linux will fall back to using the udev made available in the brpath if any. Otherwise, it will fall back to mdev.

BRPATH

This sets the path in which client commands will be made available in other clients. This should be unique to the client and not shared via bind mounting. The default is /usr/local/brpath.

AUTO_BRS

When first attempting to access a client, Bedrock will have to set up the various items which should be shared. If this is done at the last second, it will cause a slight delay. Setting AUTO_BRS=1 will have Bedrock run brs in the background at boot and after every brc, ensuring that, when one tries to access a client, it will already be set up.

BR_CREATE_MISSING

If BR_CREATE_MISSING=1, and Bedrock finds a client is missing a file or directory which it needs to complete a command, Bedrock Linux will attempt to create it automatically.

BRC_MOUNT_WARN

If AUTO_BRS is not set to 1, brc will occasionaly have to set up clients. If BRC_MOUNT_WARN is set to once, brc will notify the user that a slight delay may be noticed as it sets up the client in these instances. If BRC_MOUNT_WARN is set to all, it will print out a notice for every item it needs to mount.

capchroot.allow

In order to ensure chrooting is not used as a priviledge exploit or otherwise abused yet still accessible to non-root users, capchroot limits the directories which can be accessed by those listed in this file. Simply list the directories each client is in in the file located at /opt/bedrock/etc/capchroot.allow.

Future versions of Bedrock will merge this file into brclients.conf.

brclients.conf

Located at /opt/bedrock/etc/brclients.conf, brclients.conf contains information about the Bedrock clients needed by the various Bedrock utilities.

Each's section should start with the clients name between square brackets. The clients configuration options all start with a keyword, followed by whitespace, followed by the configuration option.

path

This sets the path to the client from a parent client.

update

Sets a command used to update the client. To run multiple commands, put each command on its own update line rather than attempting to combine them with semicolons or double-ampersands. If the client cannot be updated through simple commands (such as the core Bedrock itself) or you would rather it not be updated for some other reason, you can leave out the update lines.

mount

To set an item which should be shared, simply use mount followed by whitespace and the path of the item.

Example:

[squeeze]
path /var/chroot/squeeze
update apt-get update
update apt-get upgrade
mount /proc
mount /sys
mount /home

fstab

In order to ensure non-root users can set up clients, each item which needs to be shared should be set in /etc/fstab with the option user and possbily noauto.

.brsh.conf

To use the Bedrock Linux meta-shell brsh, create a file in your home directory called .brsh.conf which contains the contents that should be in your $SHELL environment. For example, if you would like to use bash, have ~/.brsh.conf include /bin/bash.

rcS.clients and rcK.clients

To have a client daemon start or stop at boot/shutdown, place the relevant command to do this in /etc/init.d/rcS.clients and /etc/init.d/rcK.clients, respectively. For example, to start Debian squeeze's cups daemon at boot, place the following in your /etc/init.d/rcS.clients:

brc squeeze /etc/init.d/cups start