linux文件权限
时间:2010-04-22 来源:djking1986
linux文件权限
一般用ls -s或者ll命令都可以查看到文件权限,如:drwxrw-rw- 总共有十位,d表示文件类型(有七种文件类型),其后的九位分别代表user\group\other所拥有的权限。
当用chmod对文件权限进行设置的时候可以用数字分别代表权限,如:776。但是如果加为4位呢?如:1776,这时drwxrw-rw-中就会有S\s\T\t等字符出现。
其实在文件权限中有stat结构体中的mode_t st_mode字段来表示的,其被定义为mode_t其实就是被定义为unsigned short类型。
其中的十六位被应用:
1-9bit分别对应user\group\other权限。
10-12bit分别对应suid\sgid\sticky。
13-16bit为文件类型。
现在我们来解释一下:
suid\sgid\sticky
suid,当该位被设置的时候,执行文件的进程的有效用户ID被设置为文件拥有者ID。
sgid,当该为被设置的时候,执行文件的进程的有效用户组ID被设置为文件拥有者组ID。
sticky,当该为被设置的时候,当程序执行借宿以后,依然将它保留在内存。
在权限字符中定义如下:
mode_char = "rwxSTst"
当suid被设置时,如果用户权限为可执行的,则将可执行位更改为s,否则为S。
当guid被设置时,如果用户组权限为可执行的,则将可执行位更改为s,否则为S。
当sticky被设置时,如果other权限为可执行的,则将可执行位更改为t,否则为T。