免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Shell su
最近访问板块 发新帖
查看: 2994 | 回复: 8
打印 上一主题 下一主题

su [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-21 16:34 |只看该作者 |倒序浏览
哪位高手能明确一下su root和 su - 的区别
例如: user 下使用su root 和 su - 切换到root用户的区别
和     root 下 su - 的作用

谢谢!

论坛徽章:
0
2 [报告]
发表于 2005-04-21 16:41 |只看该作者

su

su root不使用root的环境变量而su -使用

论坛徽章:
0
3 [报告]
发表于 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项
复制代码

论坛徽章:
0
4 [报告]
发表于 2005-04-22 09:20 |只看该作者

su

谢谢! 那可否认为su -要比su权限强些
也就是su root转到root下能做的事情在用su -转过去的环境下都能做
谢谢!

论坛徽章:
0
5 [报告]
发表于 2005-04-22 13:48 |只看该作者

su

up  一下 ivhb  烈火等高手 再解释一下

论坛徽章:
0
6 [报告]
发表于 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更加接近你的登陆环境.本身来比较他们
强弱,感觉没有什么意义.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 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,我的个人理解

论坛徽章:
0
8 [报告]
发表于 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

论坛徽章:
0
9 [报告]
发表于 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 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP