- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter3-目录与文件属性
void do_ls (char dirname[]) void do_stat(char * filename) void show_file_info( char*filename,struct stat* info_p) void mode_to_letters (int mode,char str[]) char *uid_to_name (uid_t uid ) char *gid_to_name (gid_t gid ) 比较ls2的输出与标准的ls对比 Ls2中,模式字段、用户名和组名的处理已经完成,但是标准的ls会显示记录总数,ls2不会,而且ls2还没将结果按文件名排序,也不支持选项-a,它还假设参数是目录名。 Ls2还有一个致命的问题,不能显示指定目录的信息,例如ls2/tmp。 1、set-user-ID位:用于用户更改自己的密码 $ls –l /usr / etc/ passwd -rw-r--r-- 1 root root 894 Jun 20 19:17 /etc/ passwd 更改密码文件内容会发生变化,但普通用户没有修改文件的权限,只有root用户可以修改, passwd命令怎么修改这个文件? 3.4 三个特殊的位 Answer :给passwd命令一个特殊的权限,使 passwd命令的文件所有者是root,其特殊属性中包含set-user-ID位. $ ls –l/user/bin/passwd -r-sr-xr-x 1 root bin 15725 0ct 31 1997 /usr / bin / passwd 是否可以更改其它用户的密码? set-user-ID的其它用处 检验SUID位的掩码 #define S_ISUID 0004000 几个问题: 2、set-group-ID位:用来设置程序运行时所 属组。可以给程序某一个组的访问权限。 #define S_ISGID 0002000 3、sticky位 对于文件而言,早期的UNIX系统经常要在有限的内存中同时运行很多程序,它使用到交换(swap)技术。现在,取而代之的是虚拟内存技术。 从交换空间装载程序要比从普通的硬盘空间快,交换空间上的文件是不分快的。 对于目录而言,sticky位使得目录里的文件只能被创建者删除。 文件与目录 用户与组 文件属性 文件的所有关系 许可权限 3.5 ls小结 文件类型 (1)文件类型的建立:在创建文件的时候建立 (2)修改文件类型:文件一经创建,类型就无法修改 许可位与特殊属性位:在文件创建时建立,创建以后,可以被chmod系统调用修改。 (1)建立文件模式 fd = creat (“newfile”, 0744 ) 3.6 设置和修改文件的属性 (2)改变文件模式 chmod( “/tmp/myfile”,04764); 函数原型:int result = chmod (char * path , mode_t mode); 返回值:-1 遇到错误 0 成功返回 (3)用来修改文件的许可权限和特殊属性的命令 文件的链接数 链接数就是文件被引用的次数。下一章详细讨论。 文件所有者与组 (1)修改文件所有者与组: chown (“filel” , 200 , 40 ); /*将文件filel的用户ID改为200,组ID改为40*/ (2)用来修改文件所有者和组的命令: shell命令chown和chgrp可以用来修饰文件 所有者和组,详细使用说明参见联机帮助。 文件大小 当向文件添加内容时,文件的大小会自动增加,可以使用系统调用creat把文件大小置为0。不存在能够直接减小文件占有的空间的函数。 时间 (1)修改最后修改时间和最后访问时间 int utime ( char *path , struct utimbuf * newtimes) 参数:path 文件名 newtimes 指向结构变量 utimbuf的指针 (2)用命令修改最后修改时间和最后访问时间 shell命令touch可以完成此功能,详细信息参见联机帮助。 文件名:创建文件时会指定一个文件名。命令mv可以改变一个文件的名字,也可以把文件从一个地方移动到另一个地方。 (1)文件名的建立 系统调用creat指定文件模式的同时会指定文件的名字。 (2)修改文件名 系统调用rename可以修改文件/目录的名字,还可以移动文件的位置,他又俩个参数,原
文档评论(0)