博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
su 与 su - 区别
阅读量:4325 次
发布时间:2019-06-06

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

susu -都是用来切换用户的命令,简单说它们之间的区别就是:su -切换的干净彻底,而su

切换用户却拖泥带水。

su

su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

su -

su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~环境变量

即刻切换到指定目录的环境变量。

测试环境

测试环境是CentOS6.9_64位,系统中有两个用户oldboy和root

oldboy的环境变量和家目录如下

[oldboy@as4k ~]$ echo ~/home/oldboy[oldboy@as4k ~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$

root用户的环境变量和家目录如下

[root@as4k ~]# echo ~/root[root@as4k ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@as4k ~]#

测试效果

root -> oldboy (su -)

[root@as4k ~]# pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@as4k ~]# su - oldboy[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

oldboy -> root (su -)

[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$ su - rootPassword: [root@as4k ~]# pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

root -> oldboy (su)

[root@as4k ~]# pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@as4k ~]# su oldboy[oldboy@as4k /root]$ pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

oldboy -> root (su)

[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$ su rootPassword: [root@as4k /home/oldboy]# pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

结论

切换用户尽量使用su -,干净彻底,符合人类认知。

问题: 一不小心使用su切换了用户,傻傻分不清自己到底用的是哪个环境,怎么办?

解决: 使用su - username 再切换一次,即使自己已经是oldboy用户,还是可以su - oldboy

再切换一次,以达到更改操作环境的目的。

[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$ su rootPassword: [root@as4k /home/oldboy]# pwd && echo $PATH/home/oldboy    # what ? 我的环境乱了/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[root@as4k /home/oldboy]# su - root[root@as4k ~]# pwd && echo $PATH/root   # ok 回到了熟悉的环境/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

转载于:https://www.cnblogs.com/asheng2016/p/9350800.html

你可能感兴趣的文章
由DBCursor的“can't switch cursor access methods”异常引发的思考
查看>>
LUOGU P1438 无聊的数列 (差分+线段树)
查看>>
引用和指针的区别
查看>>
stm32 usart 异步传输示例
查看>>
yum 安装过程下载的包存放路径
查看>>
二叉树
查看>>
idea下http响应乱码
查看>>
jquery使用$.each()
查看>>
Sybase 15.7 开发版下载(非注册)
查看>>
P1527 [国家集训队]矩阵乘法
查看>>
java 包(package)
查看>>
android Service介绍
查看>>
[MySQL 5.6] GTID实现、运维变化及存在的bug
查看>>
css钻石旋转实现
查看>>
sencha touch list infinite 属性
查看>>
指令——cat
查看>>
RabbitMQ代码操作之发消息和序列化机制
查看>>
4.Dotnet-Core部署到IIS
查看>>
Guitar and Music Theory
查看>>
用SQL命令查看Mysql数据库大小
查看>>