Linux 中的 su 和 sudo 命令这两个有什么不一样(最新整理)
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1、切换用户命令【su】</a></li><li><a href="#_label1">2、以 root 身份执行命令【sudo】</a></li><li><a href="#_label2">3、总结</a></li></ul></div><p><code>Linux</code> 是一个多用户的操作系统。在 <code>Linux</code> 中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面的,有一个用户,名叫 <code>root</code>,是一个很特殊的用户,它是超级用户,拥有最高权限。但是在大多数版本的 Unix/Linux 中,都不推荐直接使用 root 账号登录系统。</p><blockquote><p>自己创建的用户是有限权限的用户,这样大大提高了 <code>Linux</code>系统的安全性,<code>有效防止误操作或是病毒攻击</code>,但是我们执行的某些命令需要更高权限时可以使用 <code>sudo</code> 命令。</p></blockquote>
<p class="maodian"><a name="_label0"></a></p><h2>1、切换用户命令【su】</h2>
<p>su 命令全称为“swith user”,用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。</p>
<ul><li>普通用户切换到 root 用户,可以使用 su – 或su root,但是必须输入 root 密码才能完成切换。</li><li>root 用户切换到普通用户,可以使用 su username,不需要输入任何密码即可完成切换。</li><li>并且切换用户,需要 root 用户权限。</li></ul>
<p><strong>语法格式::</strong></p>
<div class="jb51code"><pre class="brush:bash;">su [选项] [用户名]</pre></div>
<p><strong>常用参数:</strong></p>
<table><thead><tr><th>-c 或 --command</th><th>执行完指定的指令后,即恢复原来的身份</th></tr></thead><tbody><tr><td>-f 或 --fast</td><td>适用于 csh 与 tsch,使 shell 不用去读取启动文件</td></tr><tr><td>-l 或 --login</td><td>改变身份时,也同时变更工作目录,以及 HOME,SHELL,USER,logname。此外,也会变更PATH变量</td></tr><tr><td>-m, -p 或 --preserve-environment</td><td>变更身份时,不要变更环境变量</td></tr><tr><td>等等</td><td>详情请参见:https://www.linuxcool.com/su</td></tr></tbody></table>
<p><strong>使用举例:</strong></p>
<blockquote><p><strong>su 命令后面可以加“-”会将当前的工作目录自动转换到切换后的用户主目录。</strong></p></blockquote>
<table><thead><tr><th>命令</th><th>含义</th></tr></thead><tbody><tr><td>su</td><td>切换到 root 用户</td></tr><tr><td>su root</td><td>切换到 root 用户</td></tr><tr><td>su -</td><td>切换到 root 用户,同时切换目录到 /root</td></tr><tr><td>su - root</td><td>切换到 root 用户,同时切换目录到 /root</td></tr><tr><td>su 普通用户</td><td>切换到普通用户</td></tr><tr><td>su - 普通用户</td><td>切换到普通用户,同时切换普通用户所在的目录</td></tr></tbody></table>
<p><strong>举例说明:</strong></p>
<div class="jb51code"><pre class="brush:bash;">sudo su --> 切换为root用户(exit 命令或 CTRL + D 快捷键都可以使普通用户切换为 root 用户)
su peng --> 切换为普通用户
su - --> 切换为root用户</pre></div>
<p>切换到管理员 root</p>
<div class="jb51code"><pre class="brush:bash;">su
或者
sudo su</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202506/202506100944303.png" /></p>
<p>切换用户</p>
<div class="jb51code"><pre class="brush:bash;">su 用户名</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202506/202506100944304.png" /></p>
<blockquote><p>注意:对于 ubuntu 平台,只能通过 su 或者 sudo su 进入 root 账号。</p></blockquote>
<p class="maodian"><a name="_label1"></a></p><h2>2、以 root 身份执行命令【sudo】</h2>
<p>sudo 命令可以临时获取 root 权限,系统管理员允许普通用户执行 root 命令才能执行的操作。</p>
<p><strong>扩展命令:</strong></p>
<blockquote><p>sudo -l :显示出自己<执行 sudo 的使用者>的权限<br />sudo !! :以 root 权限执行上一条的命令</p></blockquote>
<p><strong>注意:</strong></p>
<blockquote><p>sudo 和 su 命令输入回车完之后还需要输入用户密码的!如果你输入过一次,他将会有几分钟的记忆。</p></blockquote>
<p class="maodian"><a name="_label2"></a></p><h2>3、总结</h2>
<p>有很多命令需要管理员权限才能使用,<strong>可以输入命令前加(sudo),也可以直接切换到管理员账号(su)再执行。</strong></p>
頁:
[1]