博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
su 和su - 有何区别?sudo和su有何区别?
阅读量:3522 次
发布时间:2019-05-20

本文共 680 字,大约阅读时间需要 2 分钟。

目录


 


概述

在实际工作中,曾经遇到切换用户环境变量无法加载的问题。其原因就是对su 和su -的区别认识有问题。

1、su命令:su不会读取目标用户的环境配置文件

 

2、su - 命令:su - 读取目标用户的环境配置文件

总结: su 命令与 su - 命令之间有什么区别呢?

前者在切换到 root 用户之后仍然保持旧的(或者说原始用户的)环境,也就是说,su gpadmin,虽然切到了gpadmin用户,但是其工作目录、环境变量依旧是root.

而后者则是创建一个新的环境(由 gpamin 用户 ~/.bashrc 文件所设置的环境),工作目录也同样切换到了gpadmin的家目录.

3、sudo和su有何区别呢?(update 2021年3月29日23:03:27)

在切换用户时,时长使用这些命令切来切去,但对其细节掌握不够.

两个命令的最大区别是:

  • sudo 命令需要输入当前用户的密码
  • su 命令需要输入 root 用户的密码。

区别1:

  • sudo 命令只允许使用提升的权限运行单个命令
  •  su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

因此su 命令的默认行为是有风险的,因为用户很有可能会忘记他们正在以 root 用户身份进行工作.  所以sudo相对更加安全.

区别2:

  • sudo 命令是以目标用户(默认情况下是 root 用户)的身份执行命令,但是它们会使用 sudoer 所配置的用户名来记录是谁执行命令
  • su 命令是无法直接跟踪记录用户切换到 root 用户之后执行了什么操作。

 

转载地址:http://jjhqj.baihongyu.com/

你可能感兴趣的文章
实现自己的权限管理系统(十三):redis做缓存
查看>>
实现自己的权限管理系统(十四):工具类
查看>>
JavaWeb面经(一):2019.9.14
查看>>
JavaWeb面经(二):2019.9.16 Synchronized关键字底层原理及作用
查看>>
JavaWeb面试经:redis
查看>>
牛客的AI模拟面试(1)
查看>>
深入浅出MyBatis:MyBatis解析和运行原理
查看>>
Mybatis与Ibatis
查看>>
字节码文件(Class文件)
查看>>
java中的IO流(一)----概述
查看>>
StringBuilder
查看>>
集合,Collection
查看>>
泛型详解
查看>>
泛型实现斗地主
查看>>
List集合
查看>>
ArrayList集合,LinkedList集合,Vector集合
查看>>
HashSet集合
查看>>
并发与并行,线程与进程
查看>>
方法引用,通过对象名引用成员变量
查看>>
常用工具类 Math:数学计算 Random:生成伪随机数 SecureRandom:生成安全的随机数 2020-2-13
查看>>