Lee*_*eem 30 linux command-line ubuntu linux-kernel ubuntu-10.04
我正在使用 ubuntu 10.04。
我注意到在终端运行后:
sudo -s
Run Code Online (Sandbox Code Playgroud)
提示从:
my_user@my_hostname
Run Code Online (Sandbox Code Playgroud)
到:
root@my_hostname
Run Code Online (Sandbox Code Playgroud)
似乎它更改为root权限。
但是当我在这里查看sudocommand的文档时,它解释了另一个故事,谁能向我解释到底在做什么?sudo -ssudo -s
小智 10
这两者并没有真正不一致——该sudo命令总是将用户更改为 root,或者更改为您使用-u开关指定的用户。所有-s所做的就是启动一个shell为用户提供一个快捷方式。它实际上相当于:
sudo $SHELL
Run Code Online (Sandbox Code Playgroud)
除了它可能会回退到/bin/sh或者如果SHELL没有设置。
小智 7
sudo -s$SHELL以超级用户/root 身份运行在您的环境变量中指定的 shell 。您可以使用 指定另一个用户-u。
该$SHELL环境变量包含路径到用户的默认登录shell。默认 shell 程序的实际设置通常在etc/passwd. 根据您在当前会话中所做的工作,该$SHELL变量可能不包含您当前使用的 shell 程序。zsh例如,如果您自动登录,然后调用 bash,$SHELL则不会从/bin/zsh.
显示当前用户和shell程序:
echo $(whoami) is logged in and shell is $0
Run Code Online (Sandbox Code Playgroud)
whoami 打印出用户正在使用的用户名。$0 包含当前正在运行的程序的名称/路径(在本例中为 shell 程序)。| 归档时间: |
|
| 查看次数: |
45710 次 |
| 最近记录: |