!-- Begin: http://adsensecamp.com/ -->

For those of you that run blogs, are you ever surprised at the content that ends up being the most popular? I get surprised all the time, particularly that my previous post regarding installation of adobe reader on Ubuntu 8.04 is near the top of the list.

Well, now that 8.10 has been released and Adobe has updated the reader to 8.1.3, it seemed like a good time to update the post.

Install Adobe Reader 8.1.3

If you want the latest version of Adobe Reader you’ll need to download it from the Adobe website directly. They are nice enough to provide us with a package, so the installation is pretty quick and painless. You can head directly to the download page at the link below:

Adobe Reader - All Versions

You’ll want to select “Linux” as the operating system, “Linux - x86 (.deb)” for the installer and your language. This will then provide you with a download link, which you can go ahead and “Open With..” the “GDebi Package Installer (default)”, or save to disk and double-click for auto-installation.

note: for those looking for the English version, I have a direct download link here.

You should now be able to find Adobe Reader 8 listed under Applications > Office. Enjoy.

Just the other day we were having a discussion on using the root shell in Ubuntu. Now, remember, the root user account is disabled with no assigned password on a default Ubuntu system so administrative tasks need to be done using the sudo command. For nearly all of the administration you would need sudo will be adequate. There are occasionally those fringe cases where you might require a root shell. Below I have a few alternatives and then, if you must, the correct way of opening a root shell.

For more information please see the RootSudo page on the Ubuntu Community Wiki.

Alternatives To A Root Shell

One of the most common reasons that a user might need a root shell is due to output redirection not working as expecting while using sudo. This can be bypassed fairly easily. Let me outline an example:

sudo echo “foo” > /root/somefile

The above example will not work because the normal user does not have access to write to the root user home directory, and combining the redirection in the command we’ve lost sudo access.

An alternative that will work would look something like this:

echo "foo" | sudo tee /root/somefile

This will echo the output on the console but the tee command ('man tee‘ for more information) will also take that output and write it to the file as expected. Also note that 'tee -a' will work in the same fashion as >>, appending the data to the current file vs overwriting.

The Proper Way To A Root Shell

If you still need a root shell (perhaps you’ve come across a different scenario? perhaps you’re just lazy? perhaps you’re coming from another distribution?) let me outline the proper way to gain a root shell.

DISCLAIMER: This should be avoided if at all possible. It is not suggested to run a root shell on an Ubuntu system. Use at your own risk. See examples above, etc.

sudo -i

The command sudo -i is the equivalent to the 'su -' command. This will properly change to the root user, switch to the root user’s home directory, use his (her?) environment values, etc.

sudo -s

The command sudo -s is the equivalent to the 'su' command. This will change to the root user but will not properly use his (her?) environment values, etc.

The WRONG Way To A Root Shell

Please DO NOT use the following methods to gain root access:

sudo bash, sudo sh, sudo su -, sudo su, sudo -i -u root

If you currently do use these methods this post was written for you!

UPDATE: Based on the feedback in the comments for this post I’ll try to expand the reasoning on *why* the right way is the preferred way.

First of all we need to understand some background information. When a user creates a session there are a number of environment values that are set. To have a look at some of these try this command:

env

This will output a number of details about the current working environment. These environment values may be different for different users. Some of the values are generated by way of the .bashrc file (assuming a bash shell, of course), the .bash_profile, etc. Take a look at the .bashrc in your users home directory and compare it with the .bashrc in root’s home directory.

diff -u ~/.bashrc /root/.bashrc

You should see some differences, and this is just from one of the multiple files that are read during a proper login.

When creating a root shell by using ‘sudo bash‘ you are not incorporating the root environment properly. You are creating a shell with root privileges but the env output is still that of your user. Each user, whether unprivileged or root, should have unique environment settings to truly be that user. This will be the case for ‘sudo bash‘, ‘sudo su‘ and ‘sudo sh‘.

Basically gconftool-2 is to be done is allow you to set the gnome environmet tweaks (font size, the sound mixer settings, taskbar size / location, etc.) from the shell vs. using graphical tools.

gconftool-2 example

Below is an example of using the gconftool-2 to set the default font size to 8, because I've done in the EeePC.

gconftool-2 - set/apps/nautilus/preferences/desktop_font - type string "Sans 8"
gconftool-2 - set/desktop/gnome/interface/document_font_name - type string "Sans 8"
gconftool-2 - set/desktop/gnome/interface/font_name - type string "Sans 8"
gconftool-2 - set /apps/Metacity/general/titlebar_font - type string "Sans Bold 8"
gconftool-2 - set /desktop/gnome/interface/monospace_font_name - type string "monospace 8"

The above command is the same with the launch gconf-editor (ALT-F2: gconf-editor), navigate to the path listed above and change the values listed. Although I very grateful that we have a graphical tool to edit these things, you tell me which is faster?

gconftool-2 basics

Basic structure using gconftool-2 is as follows:

gconftool-2 - set/path/to/settings - the type of "value"

In/path/to/settings can be found by using the graphical tool (unless someone can tell me an alternative method). This can also be found in the same place. For example, let's say I want to change the value to switch the screen when the screensaver is in use. I can open gconf-editor GUI tool, navigation through the menu tree "apps> gnome-screensaver" to search for "lock_enabled" value. Usually, by checking the box or not we will move this value.

Using gconftool-2, we can achieve the same thing with:

gconftool-2 - set/apps /gnome-screensaver/lock_enabled-type bool 1 "

Now I understand that at this time we do not technically any more quickly because we have to look up in the GUI, but it was found after the first time you must first game of the second time. This is good to install multiple machines, or if you reinstall your computer regularly and want to script your settings back into place.

Available on the basic structure of our value-set, providing a path to the value of what we want to change, and then determine the type. In this case he is dead or on the boolean value. In other cases, such as with the example above, is a string that must be defined. You can find out the type of value (integer, boolean, string, etc.) use your item by double-clicking in the graphics application.

I have been able to find values in the gconf-editor or gconftool-2. Start from the right mixer for toggling volume settings to determine the size of a particular taskbars.

I hope the basic example above can provide.

Happy Testing.

!-- Begin: http://adsensecamp.com/ --> !-- Begin: http://adsensecamp.com/ --> !-- Begin: http://adsensecamp.com/ -->