wiki/ SudoSetup

In order to conveniently run commands as root, without needing to login separately as root, or use "su" and enter a password for every command, you should set up sudo on your system.

Setting up sudo

1. Obtain a root shell by some other means, such as logging in as root or using "su".

2. Install the package "sudo" with your package manager of choice.

3. Add a line for yourself to /etc/sudoers:

echo 'username    ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

Using sudo

With sudo set up as shown above, you can run any command as root by simply prefixing it with "sudo ". Try the following to test that sudo is working correctly:

sudo id

If sudo is set up correctly, you should see the id of root rather than yourself.

There is one exception, however. If you are using redirection to read or write a file for which you need root permissions, just prefixing with "sudo " won't help, since redirections are performed by your current shell. You will need to explicitly run a shell and provide a quoted command. For example:

sudo bash -c 'echo hello > /root/filename'

Alternatively, you can use "tee" and a pipe to write output to a file:

echo hello | sudo tee /root/filename

Just use | sudo tee in place of >, and | sudo tee -a in place of >>.

When you run a command with sudo, $HOME remains the same, allowing you to use your normal settings for programs. If you want to run a command and use root's $HOME, use "sudo -H command".

You can also run a command as any other user, by using "sudo -u otheruser command".