Chinaunix

标题: su [打印本页]

作者: honbj    时间: 2005-04-21 16:34
标题: su
哪位高手能明确一下su root和 su - 的区别
例如: user 下使用su root 和 su - 切换到root用户的区别
和     root 下 su - 的作用

谢谢!
作者: 一梦如是    时间: 2005-04-21 16:41
标题: su
su root不使用root的环境变量而su -使用
作者: ivhb    时间: 2005-04-21 21:22
标题: su

  1. su      不读取profile文件$LOGNAME不变(还是你登陆的那个),id变成你su的那个id,logname也不变     
  2. su -   读取profile文件,环境变量生效,且$LOGNAME也被重新设定为su后的名字.但是logname不变
  3. login  profile文件被读取,设定的环境变量生效 $LOGNAME和logname一致.id和logname保持一致

  4. su -> su - -> login 依次增强(增强什么?呵呵,找不到词语描述,见谅啦)
  5. 其中:logname为命令,$LOGNAME为环境变量.

  6. 他们三个都会执行/etc/passwd文件中的指定的登陆shell项
复制代码

作者: honbj    时间: 2005-04-22 09:20
标题: su
谢谢! 那可否认为su -要比su权限强些
也就是su root转到root下能做的事情在用su -转过去的环境下都能做
谢谢!
作者: honbj    时间: 2005-04-22 13:48
标题: su
up  一下 ivhb  烈火等高手 再解释一下
作者: ivhb    时间: 2005-04-22 14:03
标题: su
是不是都能做,也和程序的具体实现有关
比如
su - 后,$LOGNAME会变,id会变,当然euid也会变
但是
su后,id,euid变了,但是$LOGNAME不变

如果程序实现是
if (strcmp(getenv("LOGNAME", "XXX" == 0) {
   可以执行
} else {
   exit
}
用shell描述可能就是
if [ $LOGNAME = XXX ]; then
   ....
else
   exit
fi
这样,当你本来的LOGNAME为XXX后,如果你su YYY,可能还能执行这个程序
但是,如果你su - YYY后,就一定不能执行.
说是增强,是否可以描述为,su - 比su更加接近你的登陆环境.本身来比较他们
强弱,感觉没有什么意义.
作者: 寂寞烈火    时间: 2005-04-22 14:29
标题: su
请比较加不加减号(-)的区别:

  1. /home/lee#echo $LOGNAME
  2. lee
  3. /home/lee#su root
  4. Password:
  5. /home/lee#echo $LOGNAME
  6. lee
  7. /home/lee#exit
  8. /home/lee#su - root
  9. Password:
  10. /root#echo $LOGNAME
  11. root
  12. /root#logout
复制代码

su - 切换的root是真实的root,也就真实ID,而su切换的root不是真正的root,也就是长说的有效ID,我的个人理解
作者: ivhb    时间: 2005-04-22 14:53
标题: su
[quote]原帖由 "寂寞烈火"]su - 切换的root是真实的root,也就真实ID,而su切换的root不是真正的root,也就是长说的有效ID,我的个人理解 [/quote 发表:


su切换,不是真正的root,按照后面指出的euid为root,隐含了,它的uid实际
不是0,对么?
事实上
su切换后,就是真正的root!
它会在/etc/passwd执行root的登陆shell
而且,你可以运行id,看到的也是root
作者: hnhrwl    时间: 2007-12-12 14:17
原帖由 ivhb 于 2005-4-22 14:53 发表
[quote]原帖由 "寂寞烈火"]su - 切换的root是真实的root,也就真实ID,而su切换的root不是真正的root,也就是长说的有效ID,我的个人理解 [/quote 发表:


su切换,不是真正的root,按照后面指出的euid为root,隐 ...


actually, both whoami and id read the edui while who am i reads the uid.

[ 本帖最后由 hnhrwl 于 2007-12-12 21:10 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2