LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2052|回复: 9

关于《UNIX环境高级编程》一书的问题!

[复制链接]
发表于 2003-3-16 09:36:35 | 显示全部楼层 |阅读模式
我总感觉这本书实在不太好啃,看起来非常吃力。在这儿在向大家请教几个问题:
1. 在书中“实际用户ID”、“有效用户ID”和“保存的设置-用户-ID”三个术语出现的频率非常之高,不过我实在搞不懂这三者之间有什么区别,尤其是最后的“保存的设置-用户-ID”。不错,书上$4.4一节中曾简要说出了三者的含义,不过我理解不了,只有到网上来请教各位了。

2. 在$8.14一节中出现了“登录shell”这个概念。我想请问,这是指什么?与登录的用户ID有什么区别?

3. 最后一个就是书中常说“core文件”。这是一个什么文件?有何作用? 


最后在这儿先感谢各位的回答了!
发表于 2003-3-16 11:20:17 | 显示全部楼层
下面是我的理解:

“实际用户/组ID”指本次登陆的用户/组的ID

“有效用户/组ID”指执行这个进程的用户/组的ID

“保存的设置-用户-ID”指能设置其他用户文件的人的用户/组ID

举个简单的例子:
a.out 属于 user1 拥有,文件权限为 -rwxrwxr--,user1 属于 group1。

现在 group1 里面的 user2 执行 a.out 时,user2 就是该进程的有效用户,因为系统以 user2 登陆,所以实际用户也是 user2。(当然有的情况是 user2 执行了 a.out,但是挂在后台,所以实际用户已经退出了,实际用户ID就无效了)

因为组里面任何人都可以写 a.out,所以,group1 里面的用户都可以对 a.out 改写,那么他们都可以成为 a.out 的保存的设置-用户。
发表于 2003-3-16 14:48:23 | 显示全部楼层
由于linux是多任务,多用户的系统,所以很多概念和dos不一样了。碰到问题多从这些方面考虑,理解就会容易一些。
发表于 2003-3-16 19:40:42 | 显示全部楼层
2的回答 我的理解
是 你可以用不同的shell登陆
bash csh ksh 等等
发表于 2003-3-17 18:27:10 | 显示全部楼层
实际用户ID就是运行程序的用户
有效用户ID决定进程权限
保存的设置-用户-ID保存有效用户ID
比如用户usra运行了一个普通程序,这时候三个ID都是usra
如果运行了一个设置了设置-用户-ID位的程序(chmod u+s)(比如运行的是passwd,此程序的拥有者是root)
实际用户ID就是usra
有效用户ID就是程序的拥有者(root)
保存的设置-用户-ID也是root
一个进程可以用setuid改变有效用户ID,作为普通用户可以把有效用户ID改为实际用户ID或保存的设置-用户-ID.
只有这样象passwd这样的程序才能运行,因为它要更改/etc/passwd文件,此文件拥有者为root,一般用户无法更改.
不过写这种设置-用户-ID程序要特别小心,避免安全问题.
发表于 2003-3-17 18:35:18 | 显示全部楼层
core文件就是内存转储文件,程序运行出现问题(严重问题)的时候,会发生内存转储(和系统设置有关),这时候会在当前目录下生成一个文件名为core的文件,此文件包含了进程出现错误时的内存映象,可以用gdb之类的调试工具打开文件找出错误
发表于 2003-3-17 18:39:28 | 显示全部楼层
关于登录shell,你看一下/etc/passwd文件,每个用户记录的最后一个字段(第7个)就是登录shell,一般是/bin/sh,这个文件一般是一个连接,你可以到/bin下看一下到底是哪个shell
发表于 2003-6-17 14:16:38 | 显示全部楼层

我有一个问题;该书的example如何在redhat linux 9下运行

我下载了stevens.advprog.tar.Z
解开后发现需要libmisc.a
在哪里呢?

多谢了!
发表于 2003-6-17 22:02:05 | 显示全部楼层
最初由 deavilness 发表
下面是我的理解:

“实际用户/组ID”指本次登陆的用户/组的ID

“有效用户/组ID”指执行这个进程的用户/组的ID

“保存的设置-用户-ID”指能设置其他用户文件的人的用户/组ID

举个简单的例子:
a.out 属于 user1 拥有,文件权限为 -rwxrwxr--,user1 属于 group1。

现在 group1 里面的 user2 执行 a.out 时,user2 就是该进程的有效用户,因为系统以 user2 登陆,所以实际用户也是 user2。(当然有的情况是 user2 执行了 a.out,但是挂在后台,所以实际用户已经退出了,实际用户ID就无效了)

因为组里面任何人都可以写 a.out,所以,group1 里面的用户都可以对 a.out 改写,那么他们都可以成为 a.out 的保存的设置-用户。


还有,什么叫精灵进程?
发表于 2003-6-18 00:56:24 | 显示全部楼层
就是守护进程

如inetd等

这类进程没有终端
(可以和后台进程比较一下。后台进程还有控制终端)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表