su/sudo/sudo su/sudo -i使用和区别

  • 1、sudo 与 su 两个命令的最大区别是
  • 2、su切换用户
  • 2.1 su
  • 2.2 su -
  • 2.2 su root
  • 3、sudo一般加的是命令
  • 3.1 sudo
  • 3.2 sudo -i
  • 3.3 sudo su
  • 4、sudoers 安全策略插件/visudo


1、sudo 与 su 两个命令的最大区别是

**sudo 命令需要输入当前用户的密码,su 命令需要输入切换的用户(root 用户)的密码。**另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

2、su切换用户

su:( Switch user切换用户),可让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,切换时需输入欲切换用户的密码;也可以让超级用户切换为普通用户,临时以低权限身份处理事务,切换时无需输入欲切换用户的密码。
su :切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。

2.1 su

[wyn11@localhost test]$ pwd
/home/wyn11/test
[wyn11@localhost test]$ su
密码:
[root@localhost test]# pwd
/home/wyn11/test

默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以"-"不能省略,不然有些操作无法执行。

2.2 su -

[wyn11@localhost test]$ su -
密码:
[root@localhost ~]# pwd
/root
[root@localhost ~]#

su - 是创建一个新的环境(由 root 用户 ~/.bashrc 文件所设置的环境),相当于使用 root 用户正常登录(从登录屏幕登录)。目录会切换到/root下。

2.2 su root

su root 输入root密码后切换之root用户但是pwd目录不变。

[wyn11@localhost test]$ pwd
/home/wyn11/test
[wyn11@localhost test]$ su root
密码:
[root@localhost test]# pwd
/home/wyn11/test
[root@localhost test]#

3、sudo一般加的是命令

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

sudo -i root与sudo - root、sudo -i ,sudo - ,sudo root效果相同 提示输入密码时该密码为当前账户的密码 要求执行该命令的用户必须在sudoers中才可以 su需要的是切换后账户的密 用法为“su 账户名称”

3.1 sudo

sudo : 暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。

[wyn11@localhost test]$ sudo 
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u
            user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user]
            file ...

3.2 sudo -i

sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以。

[wyn11@localhost test]$ pwd
/home/wyn11/test
[wyn11@localhost test]$ sudo -i
[sudo] wyn11 的密码:
[root@localhost ~]# pwd
/root

sudo -i 直接运行sudo命令加-i参数,要求执行该命令的用户必须在sudoers中才可以。

3.3 sudo su

[wyn11@localhost test]$ sudo su
[sudo] wyn11 的密码:
[root@localhost test]# pwd
/home/wyn11/test

sudo su 运行sudo命令给su命令提权,运行su命令。要求执行该命令的用户必须在sudoers中才可以。

4、sudoers 安全策略插件/visudo

Sudoers 是 Linux 中的默认 sudo 安全策略插件,但是经验丰富的系统管理员可以自定义安全策略以及输入输出日志记录的插件。它由 /etc/sudoers 这个文件驱动,或者也可在 LDAP 中。

visudo,默认是使用nano编辑器;详细用法见该系列8首次登陆与线上求助第四节文书编辑器:nano

保存
执行“Ctrl+O”

回车
执行完“Ctrl+O”后,会输出”File Name to Write sudoers.tmp”,在tmp后执行回车

退出
执行“Ctrl+X”
[wyn11@localhost test]$ sudo -i
[sudo] wyn11 的密码:
wyn11 不在 sudoers 文件中。此事将被报告。

下面将wyn11 添加在 sudoers 文件中。

[root@localhost ~]# visudo //在第98行的样子,添加两个用户的root
[root@localhost ~]#

sudo命令dream sudo-i命令_linux

[wyn11@localhost test]$ pwd
/home/wyn11/test
[wyn11@localhost test]$ sudo -i
[sudo] wyn11 的密码:
[root@localhost ~]# pwd
/root

注:该内容为读书笔记,部分内容收集来源于网络,如有侵权或错误,请联系我整改,谢谢!