我看到一些命令,例如sudo su ls
,我只是想知道之间有什么区别sudo ls
?
答案1
事实上,您提到的命令执行两个不同的任务。
su
是一个用于切换到另一个用户的程序。如果执行,su <user>
您将启动一个 shell 会话作为另一个用户。sudo
允许您以 root 用户身份运行单个命令。sudo su
su
允许您以 root 身份运行。如果执行,sudo su <user>
则会启动一个 shell 会话用户。
然后,
sudo su ls
将以用户身份启动 shell(ls
如果存在)。sudo ls
将列出目录的内容,就像该命令是由 root 用户发出的一样。
如果您对两个等效命令感兴趣,您可以考虑...
sudo bash -c "ls" # execute "ls" as the root
sudo ls # execute "ls" as the root