Ubuntu切换用户su和su-的区别

本文详细解析了Linux系统中su与su-命令的主要区别。su仅改变用户身份但仍保留原有环境变量,而su-则完全切换用户及Shell环境。文章通过实际案例展示了不同命令执行后工作目录的变化。

      su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。

      su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;

      su -命令切换以后,工作目录变成root的工作目录了;

      要从当前用户切换到其它用户也一样,应该使用su -命令。


### Ubuntu系统中新建用户sudo与su命令的区别Ubuntu系统中,`sudo``su`是两种用于提升权限或切换用户的命令,但它们的功能使用场景存在显著差异。 #### 1. `sudo` 命令 `sudo`(superuser do)允许经过授权的普通用户以超级用户或其他用户的身份执行特定命令。它通过配置文件 `/etc/sudoers` 来管理哪些用户用户组可以使用 `sudo`,并且通常需要输入当前用户的密码[^1]。 - **用途**: - 提升权限执行某些需要管理员权限的操作,例如安装软件、修改系统配置等。 - 避免直接以 `root` 用户身份登录,从而减少因误操作导致系统损坏的风险。 - **特点**: - 不需要知道 `root` 用户的密码,只需要知道当前用户的密码。 - 日志记录:所有通过 `sudo` 执行的命令都会被记录到日志中(默认为 `/var/log/auth.log`),便于审计追踪[^2]。 - **示例**: ```bash # 更新软件包列表 sudo apt update # 查看具有 sudo 权限的用户组 cat /etc/group | grep -E "sudo" ``` #### 2. `su` 命令 `su`(substitute user)用于切换到另一个用户账户,默认情况下切换到 `root` 用户。如果要切换到其他用户,则需要指定用户名。 - **用途**: - 切换到 `root` 用户或其他用户账户。 - 在某些情况下,可能需要直接以 `root` 身份运行命令或维护系统。 - **特点**: - 默认需要知道目标用户的密码(例如 `root` 的密码)。 - 如果目标用户是普通用户,则需要知道该用户的密码。 -Ubuntu 系统中,默认情况下 `root` 用户是没有密码的,因此普通用户无法直接通过 `su` 切换到 `root`[^3]。 - **示例**: ```bash # 切换到 root 用户(需要先设置 root 密码) su # 切换到其他用户 su - otheruser ``` #### 3. 新建用户时的权限管理 在创建新用户时,可以通过以下方式授予其 `sudo` 权限或管理其权限: - 使用 `adduser` 或 `useradd` 创建用户,并将其添加到 `sudo` 组[^4]。 ```bash # 创建新用户并设置密码 sudo adduser newuser # 将新用户添加到 sudo 组 sudo usermod -aG sudo newuser ``` - 如果需要使用 `su` 切换到 `root` 用户,则必须先为 `root` 设置密码[^5]: ```bash sudo passwd root ``` #### 4. 主要区别总结 | 特性 | `sudo` | `su` | |---------------------|-------------------------------------------|-------------------------------------------| | **权限来源** | 当前用户的密码 | 目标用户的密码 | | **是否需要密码** | 是(当前用户的密码) | 是(目标用户的密码) | | **日志记录** | 记录在 `/var/log/auth.log` | 不会自动记录 | | **安全性** | 更安全,避免直接使用 `root` | 较低,容易因密码泄露导致系统风险 | | **默认行为** | 普通用户可以执行管理员权限的命令 | 切换到 `root` 或其他用户 | --- ### 示例代码 以下是创建用户并赋予 `sudo` 权限的完整示例: ```bash # 创建新用户 sudo adduser newuser # 将用户添加到 sudo 组 sudo usermod -aG sudo newuser # 验证用户是否属于 sudo 组 groups newuser # 如果需要使用 su 切换到 root,需先设置 root 密码 sudo passwd root ``` ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值