设置用户ID位和设置组ID位

来源:互联网 发布:淘宝商城手机壳 编辑:程序博客网 时间:2024/06/06 02:05

首先需要说明的是这两个位标识都在st_mode中,而文件的模式却在文件的inode中

inode包含了描述一个文件的所有信息,它包括了以下几个内容:

1 文件大小

2文件mode,

                       文件mode包含了:1/文件对各个用户的访问权限(分别对应所属用户/所属组/其它)

                                                         2/文件设置用户ID位

                                                         3/文件设置组ID位

3文件数据块的实际磁盘块位置

4文件的atime

5文件的mtime

6文件的ctime

7文件的用户ID

8文件的组ID


一般来说,进程中所创建的新文件的用户ID与运行进程的用户ID相同,文件或文件夹的权限取决于文件创建屏蔽位和open函数的mode参数


但是,新文件的组ID取决于它所在的目录的设置 -组-ID位是否设置。如果该目录的这一位已经设置,则新文件的组 ID设置为目录的组 ID;否则新文件的组ID设置为进程的有效组ID。

如果文件设置了其 设置-用户-ID位,那么当执行此文件时,进程具有文件所有者的权限
例如 passwd 命令,在unix中,只有root用户才能修改/etc/passwd文件,但是由于passwd程序设置了 设置-用户-ID位,所以不管以什么用户运行它,进程都具有root权限。


关于 设置-用户-ID位和 设置-组-ID位,也包含在st_mode中,可以通过 S_ISUID和 S_ISGID来测试。
0 0