How*_*ard 19 linux ubuntu debian bash command-line-interface
commandsudo -i和 和有sudo su -什么不一样?
他们是一样的吗?
Joe*_*l K 32
它们在功能上可能提供接近相同的东西,但似乎 'sudo -i' 重量更轻,并在您的环境中保留了一些方便的反向引用。
您可以通过查看 'ps auxf' 来查看额外的进程(f 为您提供森林视图)
sudo -i 产生这个进程树
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4675 0.6 0.0 19512 2260 pts/0 S+ 23:42 0:00 | \_ -bash
Run Code Online (Sandbox Code Playgroud)
sudo su -产生这个进程树
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4687 0.5 0.0 43256 1488 pts/0 S 23:42 0:00 | \_ su -
root 4688 0.5 0.0 19508 2252 pts/0 S+ 23:42 0:00 | \_ -su
Run Code Online (Sandbox Code Playgroud)
请注意,它们从相同的 bash 进程 pid 4482 开始,但是 su - 似乎产生了另一个步骤。)
您的第一个“sudo”已经将您的访问级别提升到 root。在 sudo 中不指定用户名的情况下运行 su 会将当前用户更改为 root 两次。
调查此问题的另一种方法是使用 strace -f 运行这两个命令。
strace -f -o sudoi sudo -i
Run Code Online (Sandbox Code Playgroud)
对比
strace -f -o sudosu sudo su -
Run Code Online (Sandbox Code Playgroud)
如果您区分这两个 strace,您会看到更多 exeve 正在为 sudo su - 运行。
还有一件事。
sudo -i维护由 SUDO 设置的额外环境变量。
SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
Run Code Online (Sandbox Code Playgroud)
sudo su - 破坏这些变量。
| 归档时间: |
|
| 查看次数: |
61383 次 |
| 最近记录: |