Tip: mark your wireless mouse and USB dongle

We have several identical wireless rodents (Logitech M525, they are nice). This means we also have several identical USB receivers.

To prevent mixups, I’ve color-coded the USB receivers as well as the CE-markings on the mice, using different permanent markers:

SELinux context for website with FTP access

So, you have decided to leave SELinux enabled. Congratulations, you have just taken a major step in securing your Internet-facing system.

Let’s say you are hosting a website that needs to be updated using FTP. By default, webserver content is labeled as:


This context prevents you from updating files using the FTP server. If both HTTP (Apache) and FTP (vsftpd) access is needed, the SELinux context should be:


You can either run “chcon” to temporarily fix this, or make the changes permanent by adding a proper local SELinux rule:

semanage fcontext -a -t public_content_rw_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html

Replace “/var/www/html” by your actual DocumentRoot as defined in Apache. The “semanage” command merely adds the rule to the SELinux database. The “restorecon” command performs the actual relabeling of your files.

Verify your changes using “ls -lZ”:

[root@webserver www]# ls -lZ
drwxr-sr-x. ed www unconfined_u:object_r:httpd_sys_content_t:s0 cgi-bin
drwxr-sr-x. ed www unconfined_u:object_r:httpd_sys_content_t:s0 error
drwxr-sr-x. ed www unconfined_u:object_r:public_content_rw_t:s0 html
drwxr-sr-x. ed www unconfined_u:object_r:httpd_sys_content_t:s0 icons


Getting started with the Raspberry Pi

From their FAQ: “The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard”. The RasPi is an ultra-cheap, energy-efficient Linux computer.

Preparing the SD card on Mac OS X

  • Get a supported SD card for the OS installation (I’m using a Kingston 8GB class 4 SD card)
  • Download the Raspbian ZIP-file from http://www.raspberrypi.org/downloads (I use the most recent Raspbian “wheezy”, 2012-12-16), unzip to get at the .IMG file
  • Open Terminal on OS X
    • Insert the empty SD card and determine it’s disk name (my card was mounted at /dev/disk4s1; use “df” before and after inserting to determine the name)
    • Run “sudo diskutil unmount /dev/disk4s1” to unmount any partitions on the SD card
      (verify that disk name!)
    • Run “sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/rdisk4 bs=1m” to write the image to the raw disk device
      (again, verify that disk name!)
    • Run “sudo diskutil eject /dev/rdisk4” after the image is written to SD card.
  • Remove the SD card from your Mac – done!

The Raspberry Pi lives!

Insert the SD card into your Raspberry Pi. Connect a monitor (I use an HDMI-to-DVI cable), USB mouse and keyboard. Optionally, connect it to the network. Once you power on the Raspberry Pi, you should be greeted with a familiar Linux boot sequence. After answering a couple of questions you should see a graphical desktop environment. It has a web browser, terminal etc. just like any other Linux computer.

Since I’ll be using the Raspberry Pi mostly as a small headless server, I’ve used “raspi-config” to disable the desktop and enable SSH.

Software updates and additional packages

To install any available software updates, run “sudo aptitude update; sudo aptitude upgrade”.

If you want to use the I/O pins (for your electronics projects), you will want the WiringPi and WiringPi-Python libraries installed.

sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
sudo apt-get install python-setuptools
git clone https://github.com/WiringPi/WiringPi-Python.git
cd WiringPi-Python
git submodule update --init
sudo python setup.py install

You can now access the GPIO pins using Python, or using the ‘gpio’ commandline tool.