Welcome 微信登录

首页 / 操作系统 / Linux / Linux Shell中切换用户 su与su - 的区别

在Linux Shell中遇到这么一个问题,在Oracle用户下运行一个shell,运行过程中需要切换到另外一个用户(load),删除该用户的一些文件。大致思路如下(shell脚本的一部分):passwd=loadsu - load <<!$passwdcd ~/backuprm *.txtexit!
顺便讲下su 和 su - 的区别?前者只是切换了身份,但SHELL环境仍然是原用户的SHELL;www.linuxidc.com而后者连用户和SHELL环境一起切换成新用户的了。只有切换了SHELL环境才不会出现PATH环境变量错误。
具体案例:有人用root登陆。然后切换到oracle用户下,执行sqlplus 命令 却报错:?command not found!就是因为使用的是su ,而不是su -
另外还有个很明显的区别:比如说 root用户在/root/目录下, su oracle,切换到了oracle 用户,但是目录仍然在/root/下。如果使用su - oracle你可以发现目录也切换到oracle用户的家目录下。Linux下用Eclipse搭建J2me开发环境过程RedHat 配置Java开发环境相关资讯      Linux Shell  Linux命令 
  • 48 字节命令可令 Linux 系统当机!  (今 07:55)
  • Linux shell数组  (07月26日)
  • Linux Shell实现批量关闭局域网中  (03月10日)
  • Linux基础知识:shell基础命令  (09月06日)
  • Linux系统监控shell脚本  (04月09日)
  • 运维工程师必会的109个Linux命令  (03月09日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数