查看: 989|回复: 0

[教程] shell切换用户执行后面语句 su与su -的区别

[复制链接]

6

主题

0

回帖

18

积分

技术1级

金币
12
阅读权限
10
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-1-5
QQ
发表于 2011-2-14 20:50:58 | 显示全部楼层 |阅读模式
shell里如果需要切换用户,然后以指定用户的身份运行一些命令,比如需要用Oracle用户向.bash_profile文件里写入一行“ORACLE_BASE=/oracle/app”的内容
可以用下面的语句


复制代码代码如下:
su - oracle <<!
echo "ORACLE_BASE=/oracle/app" >> .bash_profile
exit
!


关于su和su -的区别

切换用户是可以使用su tom或者su - tom来实现,但是两者有区别
su只是切换身份,但shell环境仍然是原用户的shell
su -是连用户的shell环境一起切换
切换了shell环境,PATH的环境变量才有效

举例子:

比如说 root用户在/root/目录下, su tom,
切换到了tom 用户,但是目录仍然在/root/下。
如果使用su - tom
你可以发现目录也切换到tom用户的家目录下
这也是造成一些命令报错:command not found的原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部