美国服务器Linux系统su命令与sudo之间的区别
美国服务器Linux系统的su 命令的主要作用是让用户可以在已登录的会话中切换到另外一个用户,也就是不退出当前用户的情况下登录为另外一个用户。本文将详细讨论关于美国服务器 su 命令的使用介绍,以及与 sudo 命令之间的区别。
美国服务器Linux系统su 命令经常被用于切换到超级用户或 root 用户,主要是因为在命令行下工作,经常需要 root 权限,同时su 命令也可以用于切换到任意非 root 用户。
1、su 命令
使用 su 命令切换到 root 用户,命令为不带命令行参数的 su 命令:su。
输入su 命令后,系统会要求输入的密码是 root 用户的密码,在输入正确的密码之后,su 命令会在终端的当前会话中打开一个子会话。
2、su - 命令
还有一种方法可以切换到 root 用户,就是运行 su - 命令。
而su 命令与 su - 命令之间的区别在于,前者在切换到 root 用户之后仍然保持原始用户的环境,而后者则是创建一个新的环境,相当于使用 root 用户正常登录。
注意:如果你想在 su - 命令的 - 后面传递更多的参数,那么必须使用 su -l 而不是 su -。以下是 - 和 -l 命令行选项的说明:
【 - 】,【-l】 ,【--login】提供相当于用户在直接登录时所期望的环境。当使用【 - 】时,必须放在 su 命令的最后一个选项。其他选项【-l】 和 【--login】无此限制。
3、su –c
还有一个值得一提的 su 命令行选项为:-c。该选项允许你提供在切换到目标用户之后要运行的命令。
以上就是关于 美国服务器Linux系统su 命令的基础知识,下面就来分析下sudo 和 su 命令之间的区别。
区别1:关于密码
两个命令的最大区别是:sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。很明显,就安全而言,sudo 命令更好。例如,考虑到需要 root 访问权限的多用户使用的美国服务器主机,使用 su 命令意味着需要与其他用户共享 root 用户密码,这显然会降低安全性。
此外,如果要撤销特定用户的超级用户/root 用户的访问权限,唯一的办法就是更改 root 密码,然后再告知所有其他用户新的 root 密码。
而使用 sudo 命令就可以很好的处理以上的两种情况。鉴于 sudo 命令要求输入的是其他用户自己的密码,所以,不需要共享 root 密码。同时,想要阻止特定用户访问 root 权限,只需要调整 sudoers 文件中的相应配置即可。
区别2:默认行为
两个命令之间的另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。
因此,su 命令的默认行为是有风险的,因为用户有可能会忘记他们正在以 root 用户身份进行工作,于是,无意中做出了一些不可恢复的更改。
区别3:日志记录
尽管 sudo 命令是以目标用户(默认情况下是 root 用户)的身份执行命令,但是它们会使用 sudoer 所配置的用户名来记录是谁执行命令。而 su 命令是无法直接跟踪记录用户切换到 root 用户之后执行了什么操作。
区别4:灵活性
sudo 命令比 su 命令灵活很多,可以限制 sudo 用户可以访问哪些命令,用户通过 sudo 命令只能访问他们工作需要的命令,而 su 命令让用户有权限做任何事情。
区别5:sudo su
大概是因为使用 su 命令或直接以 root 用户身份登录有风险,所以一些 Linux 发行版默认禁用 root 用户帐户。然而还是可以成功执行 su 命令,而不用输入 root 用户的密码,运行以下命令:sudo su.
由于使用 sudo 运行命令,只需要输入当前用户的密码。所以,一旦完成操作,su 命令将会以 root 用户身份运行,这意味着它不会再要求输入任何密码。
如果想在系统中启用 root 用户帐户,必须手动设置 root 用户密码,可以使用以下命令:sudo passwd root。
以上就是美国服务器Linux系统su命令介绍以及与sudo之间的区别,希望帮助到有需要的美国服务器用户。
cloud301跳转
广告位 |