本文主要介绍了su和su-in linux命令的区别,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解它。
简单来说,su或者su-是用来切换用户的。格式如下。
su[-]用户名
不带 username 表示切换到 root
两者的区别在于,su只切换了用户的身份,但shell仍然是原用户的,属于原shell的环境变量仍然有效。有时候我们发现用户已经明显切换了,但是有些命令还是无法执行,只是因为虽然用户已经切换了,但是环境变量还是以前用户的。
多说无益,最后一栗。
我有两个用户,用户1和用户2,他们的环境变量不同。
让我们先看看各自的环境变量,
用户1,
$echo$PATH
/usr/local/Java/JDK 1 . 8 . 0 _ 161/bin :/usr/local/Java/JDK 1 . 8 . 0 _ 161/JRE/bin :/usr/local/bin :/usr/bin :/bin :/usr/local/games :/usr/games :/usr/local/MySQL/bin
用户2,
user 2 @ iz2e 82p 1 dogdrx4fu 0i 7z : ~ $ echo $ PATH
/home/user 2/bin :/home/user 2/。local/bin :/usr/local/Java/JDK 1 . 8 . 0 _ 161/bin :/usr/local/Java/JDK 1 . 8 . 0 _ 161/JRE/bin :/usr/local/bin :/usr/bin :/bin :/usr/local/games :/usr/games
让我们首先使用su命令来查看效果,
user 2 @ iz2e 82p 1 dogdrx4fu 0i 7z :/home/user 1 $ suuser 1
密码:
user 1 @ iz2e 82p 1 dogdrx4fu 0i 7z : ~ $ echo $ PATH
/usr/local/sbin :/usr/local/bin :/usr/sbin :/usr/bin :/sbin :/bin :/usr/games :/usr/local/games
user 1 @ iz2e 82p 1 dogdrx4fu 0i 7z : ~ $
如您所见,切换到user1后,打印的环境变量仍然是user2。
然后用反衬来看效果,
user 2 @ iz2e 82p 1 dogdrx4fu 0i 7z : ~ $ su-user 1
密码:
$echo$PATH
/usr/local/Java/JDK 1 . 8 . 0 _ 161/bin :/usr/local/Java/JDK 1 . 8 . 0 _ 161/JRE/bin :/usr/local/bin :/usr/bin :/bin :/usr/local/games :/usr/games :/usr/local/MySQL/bin
$
显然,环境变量也在切换。
感谢您仔细阅读本文。希望边肖分享的文章《su和su-in linux命令有什么区别》对大家有所帮助。同时也希望大家多多支持,关注行业信息渠道,多了解!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/107718.html