用户id,组id和文件访问权限

  1. 实际用户ID和实际组ID:标示了我们究竟是谁,这两个字段在登录时取自口令文件中的登录项
  2. 有效用户ID和有效组ID以及附属组ID:决定了我们的文件的访问权限(通常有效用户ID等于实际用户ID,有效组ID等于实际组ID)
  3. 保存的设置用户ID和保存的设置组ID:在一个程序执行时包含了有效用户ID和有效组ID的副本

  针对可执行程序文件,进程通常有效用户ID等于实际用户ID,有效组ID等于实际组ID,但可以在文件模式字st_mode中设置一个特殊标志(当执行次文件时,将其进程的有效用户ID设置为文件所有者的用户ID(st_uid),将其进程的有效组ID设置为文件所有者的组ID(st_gid))

文件访问权限

  在st_mode中包含文件的类型(4位);set_uid,set_gid,黏着位(3位);访问权限(9位)

S_IFMT      0170000     文件类型的位遮罩
S_IFSOCK    0140000     socket
S_IFLNK     0120000     符号链接(symbolic link)
S_IFREG     0100000     一般文件
S_IFBLK     0060000     区块装置(block device)
S_IFDIR     0040000     目录
S_IFCHR     0020000     字符装置(character device)
S_IFIFO     0010000     先进先出(fifo)
S_ISUID     0004000     文件的(set user-id on execution)位
S_ISGID     0002000     文件的(set group-id on execution)位
S_ISVTX     0001000     文件的sticky位
S_IRWXU     00700       文件所有者的遮罩值(即所有权限值)
S_IRUSR     00400       文件所有者具可读取权限
S_IWUSR     00200       文件所有者具可写入权限
S_IXUSR     00100       文件所有者具可执行权限
S_IRWXG     00070       用户组的遮罩值(即所有权限值)
S_IRGRP     00040       用户组具可读取权限
S_IWGRP     00020       用户组具可写入权限
S_IXGRP     00010       用户组具可执行权限
S_IRWXO     00007       其他用户的遮罩值(即所有权限值)
S_IROTH     00004       其他用户具可读取权限
S_IWOTH     00002       其他用户具可写入权限
S_IXOTH     00001       其他用户具可执行权限
  1. 当用名字打开任意一类型文件时,对该名字中包含的每一个目录包括他可能隐含的当前工作目录都应该具有执行权限位(即搜索位:搜索该目录,寻找特定的文件名)
  2. open一个文件O_TRUNC标志时,必须对该目录有些权限
  3. 在目录创建新文件时必须有目录的写权限和执行权限
  4. 删除文件时必须有目录的写权限和执行权限,对文件本身不需有读写权限
  5. exec系列函数中任何一个执行某个文件都必须对该文件有执行权限,该文件必须是一个普通文件

unix内核执行权限测试

  1. 如果当前进程的有效用户id为0(超级用户),允许访问
  2. 在当前进程的有效用户id等于文件所有者ID(即进程拥有该文件),如果相应的用户访问权限位(解释:如果当前进程为读访问而打开文件,那么用户读权限位必须设置1;如果当前进程为写访问而打开文件,那么用户写权限位必须设置1)已设置,那就允许访问,否则拒绝访问(即:如果当前进程拥有某个ipc对象,那么访问权的授予与拒绝只依赖用户访问权限——组访问权限不会考虑,类似,如果当前进程不拥有该ipic对象,但它属于某个合适的组,那么访问权限的授予与拒绝只依赖于组访问权限——其他用户访问权限绝不会考虑)
  3. 在当前进程的有效组id或它的某个辅助组id等于该ipc对象的组id的前提下,如果相应的组id访问权限位已设置,那么允许访问,否则拒绝访问
  4. 如果相应的其他用户访问相应的权限位已设置,那么就允许访问,否则拒绝访问

黏着位 

  早期:

  如果一个可执行程序文件的黏着位被设置了,那么当程序第一次被执行时,当期终止时,程序正文部分的一个副本仍被保留在交换分区(程序的正文部分通常是机器指令),这使得下次程序执行时能较快的装入内存。愿意:在unix系统中,文件的各块数据是被随机存放的,相比较而言,交换分区被作为一个连续的文件来处理,在系统自举前,文件的正文部分总是在交换分区中。

  现在:针对目录设置黏着位

  如果对一个目录设置黏着位,只有对该目录写权限的的用户并且满足下列条件之一,能删除或重命名该目录下的文件:

  1. 拥有此文件
  2. 拥有此目录
  3. 是超级用户

 

转载于:https://www.cnblogs.com/tianzeng/p/10731194.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值