| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1786 人关注过本帖, 1 人收藏
标题:id问题
只看楼主 加入收藏
幸福终点站
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2010-5-19
结帖率:50%
收藏(1)
已结贴  问题点数:5 回复次数:11 
id问题
id -a root 是什么意思啊?
2012-10-28 12:48
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
登录linux 系统,你需要一个用户名和密码

他们分别存储在/etc/passwd 和 /etc/shadow文件中

登录程序比较你输入的密码和/etc/shadow 中被加密过的密码

如果相同,则登录成功,这是对linux 内核来说,

你就变成了一个数字而已,而你要获得你的用户信息的话

就可以用 id 命令, root 的id 都是0 , root 的权限是最高的

任何事情都可以做

这里还有一个effective user id 问题, 实效用户id

这是说明当前进程真正是用怎样的访问权限运行这个进程的

比如

$ id  -u
1000

显示你的id 为1000

但如果

$ sudo id -u  (在你输入root 密码之后,会显示 0)
0

这时候的0 说明了, 你是用root权限运行当前程序的

The quieter you become, the more you can hear
2012-10-28 13:41
幸福终点站
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2010-5-19
收藏
得分:0 
我想知道:id root 和id -a root 两条语句的区别是什么
2012-10-28 13:48
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
回复 3楼 幸福终点站
-a     ignore, for compatibility with other versions

貌似输出没有不同

不理解,愿楼主不懈努力, 查明真相,拿来分享

这个问题值得深入探讨

The quieter you become, the more you can hear
2012-10-28 14:01
幸福终点站
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2010-5-19
收藏
得分:0 
嗯,我也查了好多资料,也没有查到有什么不同。
不过很谢谢你!
2012-10-28 14:10
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
不清楚id命令在哪个包里,把包下载看代码里对a选项怎么处理的就不用翻各种资料了,佩服楼主这种geek精神

The quieter you become, the more you can hear
2012-10-28 14:16
幸福终点站
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2010-5-19
收藏
得分:0 
就是在包里查过了,才去查别的资料的。我查到的是Unix和linux里给的id中-a的功能不相同,
2012-10-28 14:31
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:3 
在linux中看info id中的解释根本没有-a选项,

所以man id中-a 写的是ignore,忽略,

因为linux中id命令本身就是打印所有信息all,

这和unix中的id -a 选项的解释all 是一个效果,

所以linux中的id -a选项是无意义的,

只是保持和unix的id命令的一致性,compatibility而已。

你觉得我说的对不对

[ 本帖最后由 madfrogme 于 2012-10-28 16:04 编辑 ]
收到的鲜花

The quieter you become, the more you can hear
2012-10-28 14:43
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:2 
回复 8楼 madfrogme
是这个意思。

有些在其它系统下写的脚本可能会用 id -a 这种写法,如果这个版本的 id 没有这个选项在执行的时候就会报错。为了让老版本的脚本或者其它类 unix 系统下写的脚本在 linux 下也能执行,常用的方法就是看见这个选项假装没看见,但不报错。源码一般就是在分析参数的循环里加个 continue 就行了吧。这种 ignore 的东西,一般不是让人用的。
2012-10-29 10:39
madfrogme
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
以下是引用pangding在2012-10-29 11:39:37的发言:

是这个意思。

有些在其它系统下写的脚本可能会用 id -a 这种写法,如果这个版本的 id 没有这个选项在执行的时候就会报错。为了让老版本的脚本或者其它类 unix 系统下写的脚本在 linux 下也能执行,常用的方法就是看见这个选项假装没看见,但不报错。源码一般就是在分析参数的循环里加个 continue 就行了吧。这种 ignore 的东西,一般不是让人用的。

哈哈,我也是突然间想到的,不过觉得把力气花在这个选项上有点不值得,虽然看id还有其他比如像-z一样选项很难理解,看源码估计会明白一些吧,虽然我不会去钻研这个问题了。

The quieter you become, the more you can hear
2012-10-29 11:05
快速回复:id问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023998 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved