- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
apue学习日志.doc
---------------------------------------------2011-07-27---------------------------------------------
#include sys/types.h
#include sys/stat.h
#include fcntl.h
int creat(const char* pathname, mode_t mode)
函数功能等效于
open(pathname,O_WRONLY|O_TRUNC|O_CREAT,mode)
所以很少使用creat()。
---------------------------------------------2011-07-30---------------------------------------------
当执行一个程序文件时,进程有效用户ID通常就是实际用户ID,进程有效组ID就是实际组ID,但是可以在文件方式字(st_mode)中设置一个特殊标志,其定义就是“当执行其文件时,把进程的有效用户ID设置为文件的所有者(st_uid)“,与此类似,把进程的有效组ID设置为文件的组所有者(st_gid),在文件方式字中这两位称之为设置-用户-ID(set-user-id)和设置-组-ID(set-group-id)。
文件存储许可权st_mode,共9位:
为了删除一个文件,必须对包含这个文件的目录具有写和执行权限,而对于文件本身则不需要读写权限。
进程每次打开,创建或者删除一个文件时,内核就会进行文件存取许可权测试。而这可能涉及文件的所有者(st_uid,st_gid),进程的有效ID(有效用户ID和有效组ID),以及进程的添加组ID(若支持的话)。
进程的有效用户ID是0,即超级用户,则允许存取。
若进程有效ID等于文件的所有者,即进程拥有此文件,则适当的所有者存取许可权位被设置,则允许存取。
若进程的有效组ID或进程的添加组ID之一等于文件组ID,若适当的组存取许可权位设置,则允许存取。
若适当的其他用户存取许可权位被设置,则允许存取。
---------------------------------------------2011-08-01---------------------------------------------
新文件的用户ID和组ID
新文件设置的用户ID为进程的有效用户ID,组ID设置为进城的有效组ID或者它所在的目录的ID(设置了设置—组—ID位)。
进程ID和文件访问权的问题
与进程相关的ID有六个,如下:
而每个文件都有一个相关的所有者和组所有者。通常进程有效ID=实际用户ID。当使用open打开一个函数的时候内核进程以有效用户ID和有效组ID为基础检查文件的存取许可权。但是也有的时候希望以实际用户ID和实际组ID来测试文件的存取许可权。此时可以使用access
umask()是从权限中“拿走”相应的位,且文件创建时不能赋予执行权限,在设置之后通常在下一次设置或者退出SHELL之后失效。创建文件时,如果umask中设置了某些文件存取权限位,那么create或者open函数指定的mode中的权限位和umask中相同则是不设置此权限的。
---------------------------------------------2011-08-02---------------------------------------------
chmod(fielpathname,mode)
fchmod(files,mode),其中mode常数如下:
Ls命令在显示执行时设置组ID表示为l,如:
文件截短
#includeunistd.h
#includesys/types.h
Int truncate(pathname,length);
Int ftruncate(filedes,length);将文件截短为length长度。
UNIX文件系统
去除自举块和超级块之后的文件系统如下:
目录块由若干的目录项组成,目录项由文件名和i节点编号数组成。由于目录也是文件所以文件名就是目录名。任何一个叶目录其连接数总是2,一个是命名该目录的目录项(testdir)和 . 项。从图中可以看出1267是一个目录。
---------------------------------------------2011-08-04---------------------------------------------
link()、unlink()函数浅析
因此
---------------------------------------------2011-08-05-------
文档评论(0)