首页 > 系统 > Linux > 正文

Linux系统的文件模式和访问权限解说

2024-08-28 00:05:24
字体:
来源:转载
供稿:网友
    1.每个文件都有三种类型用户ID:文件拥有者ID、同组用户ID(组ID)、所有剩下用户ID(其他用户ID)。并且每种类型用户都有三种类型的访问权限:读、写、执行。
    2.每个运行中进程都包含:进程号、父进程号、进程组号、会话号、会话首领号、用户ID、有效用户ID、保存用户ID、组ID、有效组ID、保存组ID。
    3.当一个进程读/写/执行一个文件时,系统首先会根据进程的有效用户ID与文件拥有者ID对比,若相同则根据文件拥有者类型的访问权限确定当前进程是否有权进行读/写/执行。若不同则对比当前进程的有效用户ID与文件同组用户ID,若相同则应用文件的组访问权限,不同则应用所有剩下用户的访问权限确定当前进程是否有权进行读/写/执行。
    4.当一个用户登录后,他便执行一个交互式SHELL程序,当前这个SHELL进程的用户ID、有效用户ID、保存用户ID都是当前登录用户的用户ID,它的组ID、有效组ID、保存组ID是当前用户的组ID。这样,当这个交互式SHELL进程去执行一个程序时,系统会根据这个SHELL进程的有效用户ID、有效组ID按第3步方式确定对被执行文件的访问权限。若可以执行,则被执行文件作为一个进程在系统中运行,它的用户ID、有效用户ID、保存用户ID、组ID、有效组ID、保存组ID与执行它的SHELL进程相同。若这个被执行程序又要访问哪个文件,则它的有效用户ID和有效组ID又要与被访问文件权限进行比对以决定是否有权进行读/写/执行。
    5.每个文件还有三个附加标记:suid、sgid、sticky
    如果一个可执行文件设置了suid标志位,当它被作为一个进程执行时,它的有效用户ID就等于这个可执行文件拥有者的ID。
    如果一个可执行文件设置了sgid标志位,当它被作为一个进程执行时,它的有效组ID就等于这个可执行文件同组用户ID。
    如果一个可执行文件设置了sticky标志位,则它向内核发出一个请求,当它执行结束以后,仍然将该程序保存在内存中。
    说明:当进程创建一个文件时,文件拥有者ID就是该进程用户ID,而其组ID既可以是进程创建者组ID,也可以是父目录的组ID,这取决于父目录sgid标志位的值。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表