su,sudo,-,这三种的区别解释

su命令用于切换用户身份,特别是从普通用户切换到root以执行需要管理员权限的任务。使用su时,带-选项会切换环境变量,而不带则不会。sudo则是一种权限管理机制,允许特定用户以管理员身份执行特定命令,需要当前用户密码。sudo与su的区别在于sudo通常需要当前用户密码,且仅用于执行单个命令,而su会启动新shell并要求输入目标用户的密码。
摘要由CSDN通过智能技术生成

su

su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户tom登录的,但要添加用户任务,执行useradd ,tom用户没有这个权限,而这个权限恰恰由root所拥有。

解决办法有两个,一是退出tom用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出tom用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。

su为switch user,即切换用户的简写。

格式为两种:su -l USERNAME(-l为login,即登陆的简写)su USERNAME

如果不指定USERNAME(用户名),默认即为root。

使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。环境变量是用来定义操作系统环境的,如果系统环境没有随用户身份切换,很多命令无法正确执行。

现在我们来认识一下 - 的作用su USERNAME,与su - USERNAME的不同之处如下:su - USERNAME切换用户后,同时切换到新用户的工作环境中。                  su USERNAME 切换用户后,不改变原用户的工作目录,及其他环境变量目录。

sudo

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;

格式:sudo -u USERNAME COMMAND

默认情况下,系统只有root用户可以执行sudo命令。

sudo与su不同

sudo 与 su 两个命令的最大区别是:

sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

sudo一般加的是命令

sudo -i root与sudo - root、sudo -i ,sudo - ,sudo root效果相同 ,提示输入密码时该密码为当前账户的密码 ,要求执行该命令的用户必须在sudoers中才可以 。su需要的是切换后账户的密 用法为“su 账户名称”

sudo : 暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。

su :切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。

sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以。

好了,这就是su,sudo, - 之间的联系。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值