Giving Administrative Access in Linux

0


There are many Linux commands which deal with sensitive information like passwords, system hardware, or otherwise operate under other exceptional circumstances. Preventing regular users from executing these commands helps to protect the system. Logging in as the root user provides administrative access, allowing for the execution of some of the privileged commands.

The su Command

su OPTIONS USERNAME

The su command allows you to temporarily act as a different user. It does this by creating a new shell. The shell is simply a text input console that lets you type in commands. By default, if a user account is not specified, the su command will open a new shell as the root user, which provides administrative privileges.

Follow Along

Utilizing the login shell option is recommended, as the login shell fully configures the new shell with the settings of the new user. This option can be specified one of three ways:

su -
su -l
su --login 

After executing the su command, a password is required. On our virtual machines, the password for both the root and sysadmin accounts is netlab123. If you ever forget, it is displayed every time a new virtual machine is started. As a security measure, the password will not be visible as it is typed.

sysadmin@localhost:~$ su  -
Password:
root@localhost:~#

Note the command prompt has changed to reflect that you are now logged in as the root user. To logout and return to the sysadmin account, use the exit command. Note the prompt changes back:

root@localhost:~# exit
logout
sysadmin@localhost:~$

To avoid executing any sensitive commands, we’ve configure the Steam Locomotive command, the sl command, to require administrative access. If the command is executed as sysadmin, it fails:

sysadmin@localhost:~$ sl
-bash: /usr/bin/sl: Permission denied

Use the su command to switch to the root account and execute the sl command with administrative access:

sysadmin@localhost:~$ su  -
Password:
root@localhost:~# sl
                             (@@) (  ) (@)  ( )  @@    ()    @     O     @
                         (   )
                     (@@@@)
                  (    )

                (@@@)
            ====        ________                ___________
        _D _|  |_______/        \__I_I_____===__|_________|
         |(_)---  |   H\________/ |   |        =|___ ___|      _________________
         /     |  |   H  |  |     |   |         ||_| |_||     _|
        |      |  |   H  |__--------------------| [___] |   =|
        | ________|___H__/__|_____/[][]~\_______|       |   -|
        |/ |   |-----------I_____I [][] []  D   |=======|____|__________________
      __/ =| o |=-~~\  /~~\  /~~\  /~~\ ____Y___________|__|____________________
       |/-=|___|=    ||    ||    ||    |_____/~\___/          |_D__D__D_|  |_D__
        \_/      \_O=====O=====O=====O/      \_/               \_/   \_/    \_/

Use the exit command again to return to the sysadmin account.

root@localhost:~# exit
logout
sysadmin@localhost:~$

The sudo Command

sudo [OPTIONS] COMMAND

The sudo command allows a user to execute a command as another user without creating a new shell. Instead, to execute a command with administrative privileges, use it as an argument to the sudo command. Like the su command, the sudo command assumes by default the root user account should be used to execute commands.

Consider This

The sudo command can be used to switch to other user accounts as well. To specify a different user account use the -u option.

Execute the sl command as the root user by putting sudo in front of it:

Note

Remember the password is netlab123. The prompt for the password will not appear again as long as the user continues to execute sudo commands less than five minutes apart.

sysadmin@localhost:~$  sudo sl
[sudo] password for sysadmin:
                             (@@) (  ) (@)  ( )  @@    ()    @     O     @
                         (   )
                     (@@@@)
                  (    )

                (@@@)
            ====        ________                ___________
        _D _|  |_______/        \__I_I_____===__|_________|
         |(_)---  |   H\________/ |   |        =|___ ___|      _________________
         /     |  |   H  |  |     |   |         ||_| |_||     _|
        |      |  |   H  |__--------------------| [___] |   =|
        | ________|___H__/__|_____/[][]~\_______|       |   -|
        |/ |   |-----------I_____I [][] []  D   |=======|____|__________________
      __/ =| o |=-~~\  /~~\  /~~\  /~~\ ____Y___________|__|____________________
       |/-=|___|=    ||    ||    ||    |_____/~\___/          |_D__D__D_|  |_D__
        \_/      \_O=====O=====O=====O/      \_/               \_/   \_/    \_/

Once the command has completed, notice the prompt has not changed, you are still logged in as sysadmin. The sudo command only provides administrative access for the execution of the specified command. This is an advantage as it reduces the risk that a user accidentally executes a command as root. The intention to execute a command is clear; the command is executed as root if prefixed with the sudo command. Otherwise, the command is executed as a regular user.

Post a Comment

0Comments
Post a Comment (0)