su 和su -的区别

简介:

最近在培训linux,讲师让探究下su 和su -的区别,于是就有了本文。

本文的内容取材于互联网,经由本人理解,从新整理而成。

su  后面不加用户是默认切到 root
su  是不改变当前变量
su - 是改变为切换到用户的变量 
也就是说su只能获得root的执行权限,不能获得环境变量

而su -是切换到root并获得root的环境变量及执行权限

语法:

$ su [user_name] 
su  命令可以用来交互地更改你的用户ID和组ID。Su是switch user 或set user id的一个缩写。这个命令让你开启一个子进程,成为新的用户ID和赋予你存取与这个用户ID 关联所有文件的存取权限。因此,出于安全的考虑,你在实际转换身份时,会被要求输入这个用户帐号的密码。  
如果没有参数,su 命令将你转换为 root(系统管理员)。root 帐号有时也被称为超级用户,因为这个用户可以存取系统中的任何文件。也正是这个原因,许多人将su命令看成是 supper-user(超级用户)的一个缩写。当然,你必须要提供 root密码。  想要回到你原先的用户身份,不要再使用 su 命令,你只需要使用 exit命令退出你使用su命令而生成的新的对话进程。 
$ su – username 
一些配置文件是为你的对话线索而设立的。当你使用命令 su username时,你的对话特征和你原始的登录身份一样。如果你想要你的对话进程拥有转换后的用户 ID一致的特征,你要使用短斜杠: su – username。


另外,下面还有另一个博客上对su和su -的理解。

注意的是su的另外一个参数“-”,当指定该参数的时候,将会进入一个“login shell” ,即和该用户登录的情况完全一样。而不带参数“-”的时候进入的是一个“non-login shell”。那么问题就归结到“login shell”和“non-login shell“的区别上来了。

它们的差别在于,对于一个登录shell,bash在进入的时候会执行/etc/profile,~/.bash_profile,~/.bash_login, and ~/.profile中的内容,退出的时候会执行~/.bash_logout中的内容。而对于一个非登录shell,bash进入的时候会执行/etc/bash.bashrc,~/.bashrc中的内容。

通过一个例子来看一下,假如用户linuxer的 .bash_profile和.bashrc内容分别如下:

bash-3.2$ cat .bash_profile
# .bash_profile
export TEST=login-shell
bash-3.2$ cat .bashrc
# .bashrc
export TEST2=non-login-shell很简单,我们在文件里分别设置了两个环境变量,然后用su linuxer和su -linuxer分别进入后查看环境变量,结果如下

[leconte@localhost ~]$ su linuxer
口令:
bash-3.2$ env | grep TEST
TEST2=non-login-shell[leconte@localhost ~]$ su - linuxer
口令:
-bash-3.2$ env | grep TEST
TEST=login-shell可以看到,su linuxer进入非登录shell,.bashrc被执行;su – linuxer进入登录shell,.bash_profile被执行。










本文转自 aaao 51CTO博客,原文链接:http://blog.51cto.com/nolinux/1267016,如需转载请自行联系原作者

目录
相关文章
|
Oracle 关系型数据库 Linux
Linux下 su命令与su - 命令有什么区别?
Linux下 su命令与su - 命令有什么区别?
405 0
|
Oracle JavaScript Java
JDK的版本迭代特性(JDK9 - JDK20)
JDK的版本迭代特性(JDK9 - JDK20)
|
存储 关系型数据库 MySQL
|
弹性计算
阿里云3M带宽云服务器并发多大?阿里云3M带宽云服务器测评参考
在探讨云服务器3M带宽能支持多大并发这一问题时,我们首先要明白一个关键点:并发量并非仅由带宽决定,还与网站本身的大小密切相关。一般来说,一个优化良好的普通网站页面大小可能只有几K,为便于计算,我们可以暂且假定每个页面大小为50K。
1633 1
|
6月前
|
存储 运维 Ubuntu
Ubuntu环境下NTP时间同步服务的离线安装方法
以上就是Ubuntu环境下离线安装和配置NTP时间同步服务的全过程。这种有效的操作不仅可为有网络隔离需求的安全重要环境提供参考,同时也能帮助研发、运维人员在同类情况下处理问题。太阳走过万丈高空,而我们通过NTP服务,轻松把握时间,如同手握流沙,控制每一颗时间粒子的行走。
1184 23
|
域名解析 网络协议 网络性能优化
如何提升自建DNS服务下的网络体验
网络质量和网络体验是通信过程中的两个不同层面,质量涉及设备上下行表现,而体验关乎端到端通信效果。衡量质量常用带宽、延迟、丢包率等指标;体验则关注可访问性,DNS解析速度和服务位置等。现代路由器能自动调整网络质量,普通用户无需过多干预。自建DNS服务时,选择权威DNS能解决可访问性,但可能不提供最优体验。AdguardHome和Clash等工具能进一步优化DNS解析,提升网络体验。
529 6
如何提升自建DNS服务下的网络体验
|
机器学习/深度学习 人工智能 算法
【AI 初识】激活函数在神经网络中的作用是什么?
【5月更文挑战第2天】【AI 初识】激活函数在神经网络中的作用是什么?
|
弹性计算 分布式计算 运维
4.互联网、电商离线大数据分析最佳实践(一)|学习笔记
快速学习4.互联网、电商离线大数据分析最佳实践
554 0
|
存储 分布式计算 负载均衡
HDFS服役新数据节点和退役旧节点步骤
HDFS服役新数据节点和退役旧节点步骤
539 1
|
Java 开发工具 Android开发
Android字体Font相关知识
Android字体简介 Android系统默认支持三种字体,分别为:“sans”,“serif”,“monospace”。 android.
4873 0