su: Substitute User

Options & Arguments

$ su [options] [-[l]] [user [argument...]]

  • If the user is not specified, the superuser is assumed. | Option | Long Option | Description | | —- | —- | —- | | -l
    or
    - | —login | Start the shell as a login shell with an environment similar to a real login:
    - clears all the environment variables except TERM and variables specified by —whitelist-envi‐ronment
    - initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH
    - changes to the target user’s home directory
    - sets argv[0] of the shell to ‘-‘ in order to make the shell a login shell
    | | -c | —command=command | Execute a single command rather than starting a new interactive command. |

Examples

$ su -
$ su -c 'command'

sudo: Superuser/Substitute do

Options & Arguments

$sudo [OPTION]... [-g GROUP] [-u USER] [command]

  • If the USER is not specified, the superuser is assumed. | Option | Long Option | Description | | —- | —- | —- | | -l | —list |
    - If no command is specified, list the allowed (and forbidden) commands for the invoking user (or the user specified by the -U option) on the current host. A longer list format is used if this option is specified multiple times and the security policy supports a verbose output format.
    - If a command is specified
    - and is permitted by the security policy, the fully-qualified path to the command is displayed along with any command line arguments.
    - If a command is specified but not allowed by the policy, sudo will exit with a status value of 1.
    | | -i | —login | Run the shell specified by the target user’s password database entry as a login shell. |

sudo troubleshooting(Ubuntu)

  1. 当前用户不在 admin/sudo group

    1. adduser ronnie sudo
    2. # or
    3. adduser ronnie admin
  2. /ect/sudoers 文件权限错误

    1. chmod 440 /etc/sudoers
  3. /ect/sudoers 内容错误 ```bash

    使用 visudo 命令编辑 /etc/sudoers

    visudo /etc/sudoers

👇正确的内容👇

#

This file MUST be edited with the ‘visudo’ command as root.

#

Please consider adding local content in /etc/sudoers.d/ instead of

directly modifying this file.

#

See the man page for details on how to write a sudoers file.

# Defaults env_reset Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”

Host alias specification

User alias specification

Cmnd alias specification

User privilege specification

root ALL=(ALL:ALL) ALL

Members of the admin group may gain root privileges

%admin ALL=(ALL) ALL

Allow members of group sudo to execute any command

%sudo ALL=(ALL:ALL) ALL

See sudoers(5) for more information on “#include” directives:

includedir /etc/sudoers.d

```