两个命令之间的另外一个区别是其默认行为。sudo命令只允许使用提升的权限运行单个命令。而su命令会启动一个新的shell,同时允许使用root权限运行尽可能多的命令,直到明确退出登录。因此,su命令的默认行为是有风险的。
文章目录:
su命令与sudo命令是Linux中比较常用的命令,sudo是以root用户方式执行命令,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命令是以目标用户的身份执行命令,但是它们会使用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。
首先 sudo 表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升帆瞎的权限来运行命令。
在linux中通过su可以在用户之间切换,而超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。
1.su为switch user,即切换用户的简写。
格式为两种:
su -l USERNAME(-l为login,即登陆的侍脊简写)
su USERNAME
2.如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或su -,su root 或su。
3.su USERNAME,与su - USERNAME的不同之处如下:
su - USERNAME切换用户后,同时切换到新用户的工作环境中。
su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录。
扩展资料
apt是个很完整和先进的软件包管理程式,使用他能够让您,又简单,又准确的找到您要的的软件包, 并且安装或卸载都很简洁。 他还能够让您的任何软件都更新到最新状态,而且也能够用来对ubuntu进行升级。
"apt是需要用命令来操作的软件,但是现在也出现了很多有老轿渗图像的软件,比如Synaptic, Kynaptic 和 Adept。"
查看、修改或者执行某些命令需要root用户的权限,如果不想直接切换到root用户,就可以使用sudo命令。sudo命令用于针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。
使用方法是在原有命令之前加上sudo+空格。
用法示例:以root用户的身份修改主机名为zhidao
$ sudo hostname zhidao
参考资料:
su do,速度,一声念更拽的样子.不过之前网友回复的
详细单词是superuserdo,意为超级管理员可以做的动作。
实际上,也可以用sudo命令以其他的用户的身慎颂份执行一条命令
sudo - 以其他用户身份执行一条命令
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
[command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
prompt] [-T timeout] [-u user] file ...
选项:
-A, --askpass 使用助手程序进行密码提示
-b, --background 在后台运行命令
-B, --bell ring bell when prompting
-C, --close-from=num 关闭所有 >= num 的文件宽败郑描述符
-E, --preserve-env 在执行命令时保留用户环境
--preserve-env=list preserve specific environment variables
-e, --edit 编辑文件而非执行命令
-g, --group=group 以指定的用户组或 ID 执行命令
-H, --set-home 将 HOME 变量设为目标用户的主目录。
-h, --help 显示帮助消息并退出
-h, --host=host 在主机上运行命令(如果插件支持)
-i, --login 以目标用户身份运枯银行一个登录
shell;可同时指定一条命令
-K, --remove-timestamp 完全移除时间戳文件
-k, --reset-timestamp 无效的时间戳文件
-l, --list
列出用户权限或检查某个特定命令;对于长格式,使用两次
-n, --non-interactive 非交互模式,不提示
-P, --preserve-groups
保留组向量,而非设置为目标的组向量
-p, --prompt=prompt 使用指定的密码提示
-r, --role=role 以指定的角色创建 SELinux 安全环境
-S, --stdin 从标准输入读取密码
-s, --shell 以目标用户运行
shell;可同时指定一条命令
-t, --type=type 以指定的类型创建 SELinux 安全环境
-T, --command-timeout=timeout terminate command after the specified time limit
-U, --other-user=user 在列表模式中显示用户的权限
-u, --user=user 以指定用户或 ID
运行命令(或编辑文件)
-V, --version 显示版本信息并退出
-v, --validate 更新用户的时间戳而不执行命令
-- 停止处理命令行参数
以上是问答百科为你整理的3条关于sudo的问题,希望对你有帮助!更多相关sudo的内容请站内查找。