su user 和 su - user的区别
linux中,切换用户的命令使su。经常看到别人切换用户使用两种方式:
1.su user
2.su - user
感觉很好奇,两种方式肯定有他的不同。查了一些资料,然后自己又亲自操作一下,终于明白他们之间的不同。
1.su user
仅仅是切换用户user,切换之后,user的默认目录并不是/home/user路径,例如:
[root@redhat ~]# ls
anaconda-ks.cfg Desktop install.log install.log.syslog
[root@redhat ~]# pwd
/root --root用户当前路径
[root@redhat ~]# su oracle
[oracle@redhat root]$ pwd
/root --切换用户oracle之后,还是保持root用户的路径
[oracle@redhat root]$
2.su - user
su - user 实际上就是 su -l user.
此时切换用户之后,就好像重新以该user登录一样,大部分的环境变量都以该user为主,工作的路径也会相应的改变,而且改变PATH变量。
例如
[root@redhat ~]# pwd
/root --root用户当前路径
[root@redhat ~]# su - oracle
[oracle@redhat ~]$ pwd
/home/oracle --切换用户oracle之后,oracle自己的home路径
[oracle@redhat ~]$
再举一个例子,更明显:
[oracle@redhat root]$ su --用su切换到root用户
Password:
[root@redhat ~]# ifconfig --查看网络配置
bash: ifconfig: command not found --结果显示没有找到该命令
[root@redhat ~]# su - root --用su - 切换到root用户
[root@redhat ~]# ifconfig --查看网络配置,命令正常运行
eth0 Link encap:Ethernet HWaddr 00:0C:29:27:2B:7C
inet addr:192.168.1.150 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe27:2b7c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:616718 errors:0 dropped:0 overruns:0 frame:0
TX packets:246493 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:718056814 (684.7 MiB) TX bytes:81682357 (77.8 MiB)
Interrupt:185 Base address:0x1400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:47863 errors:0 dropped:0 overruns:0 frame:0
TX packets:47863 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:13642161 (13.0 MiB) TX bytes:13642161 (13.0 MiB)
阅读(1331) | 评论(0) | 转发(0) |