Unix权限管理

1 Unix权限管理

权限管理实际就是身份认证和访问权限校验,被授权的用户可获得权限,反之,则否。 在 Unix 中用到权限管理的场合包括:

  1. 登录
  2. 进程对文件的存取访问

第1点暂不予讨论。

  • 身份认证的过程实际就是:“系统”校验“主体”是否符合“客体”所期望的身份的过程。在“进程对文件的存取访问”的身份认证过程中,内核担当“系统”角色,进程为“主体”,文件则为“客体”。 那么,认证的依据是什么?主客双方都需要提供某种类型的身份凭证!在“进程对文件的存取访问”的认证过程中,进程提供的身份凭证是有效用户ID和有效组ID;文件提供的凭证则是属主用户ID和属主组ID。
  • 在提供差异化权限管理的系统中完成身份认证只是第一步,“客体”对不同“主体”的开放程度可能是不同的,如果没有访问权限校验的过程,则无法提供这种特性。访问权限校验是指:在指定身份下,“客体”是否可满足特定类型的访问申请。

2 进程权限

任意Unix进程可有如下“身份”:

  • 实际用户ID、有效用户ID、保存的设置用户ID
  • 实际组ID、有效组ID、保存的设置组ID

这些“身份“的访问控制函数总结如下:

#include <unistd.h>

uid_t getuid( ); // 获取实际用户ID
uid_t geteuid( ); // 获取有效用户ID
int setuid( uid_t uid ); // 设置实际用户ID和有效用户ID
int seteuid( uid_t uid ); // 设置有效用户ID gid_t getgid( ); // 获取实际组ID
gid_t getegid( ); // 获取有效组ID
int setgid( gid_t gid ); // 设置实际组ID和有效组ID
int setegid( gid_t gid ); // 设置有效组ID

setuid 和 setgid 可按规则设置调用进程的实际和有效“身份”,这些规则如下:

  • 以 setuid 为例:
    1. 若调用进程具有超级用户特权1,则将调用进程的实际用户ID、有效用户ID、保存的设置用户ID都设为uid
    2. 若调用进程的实际用户ID或保存的设置用户ID等于参数uid,则将调用进程的有效用户ID设置为uid
  • setgid 的规则与 setuid 类似

3 文件权限

文件跟权限管理相关的两条属性分别是:

  1. 属主,它指明了文件的归属,包括:

    • 用户ID
    • 组ID
  2. 访问控制权限,它指明了文件对不同身份的进程所允许的访问操作,共包括三组:
    1. 对所属用户所允许的访问操作: -rwx
    2. 对所属组所允许的访问操作: -—rwx
    3. 对其他用户所允许的访问操作: -——rwx

4 进程对文件的存取访问的权限校验过程

  1. 若进程有效用户ID为0,则允许访问
  2. 若进程有效用户ID等于文件所属者用户ID,则按用户访问权限位进行访问
  3. 若进程有效组ID等于文件所属者组ID,则按组访问权限位进行访问
  4. 若以上都不匹配,则按其他用户访问权限位进行访问

Footnotes:

1 即,调用进程的有效用户ID等于0

Date: 2015-10-17T11:03+0800

Author: ruleless

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0

Unix权限管理的更多相关文章

  1. SpringMVC+Shiro权限管理【转】

    1.权限的简单描述 2.实例表结构及内容及POJO 3.Shiro-pom.xml 4.Shiro-web.xml 5.Shiro-MyShiro-权限认证,登录认证层 6.Shiro-applica ...

  2. MySQL之权限管理

    MySQL之权限管理 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作, 那么你就不能执行update操作.只 ...

  3. SVN权限管理

    转自:http://www.cnblogs.com/xingchen/archive/2010/07/22/1782684.html /******************************** ...

  4. mysql用户和权限管理

    用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...

  5. (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理

    用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...

  6. Linux(3)用户和权限管理

    用户, 权限管理 Linux中root账号通常用于系统的维护和管理, 它对操作系统的所有部分具有不受限制的访问权限 在Unix/Linux安装过程中, 系统会自动创建许多用户账号, 而这些默认的用户就 ...

  7. Unix权限这点事

    Unix/Linux的权限管理还是比较复杂的,别人说看高级环境编程得看2,3遍.我想这应该是在Linux有了一定基础.但是我看的过程中确需要反复推敲,有些地方得翻来覆去看上5,6遍甚至更多,下面是自己 ...

  8. Linux第四节 组管理、用户管理、权限管理 / chmod /chown / umask / vim

    三期第三讲1.组管理/用户管理(重要文件系统会实时备份 file-) vim/etc/group: 组管理文件://组名:密码控位键:组id:成员 vim/etc/gshadow:组密码管理文件:// ...

  9. Linux常用命令(第二版) --权限管理命令

    权限管理命令 1.chmod[change the permissions mode of a file] : /bin/chmod 语法: chmod [{ugo}{+-=}{rwx}] [文件或目 ...

随机推荐

  1. php 判断文件/目录是否存的方法

    涉及函数 is_file(), is_dir() , file_exists() is_file() 判断文件是否存在 is_dir() 判断目录是否存在 file_exists() 既可用于判断文件 ...

  2. 微软第四题 给定cost能遍历的最大城市数

    有向图中N*N矩阵 cost:M, 最多可以遍历的结点个数 例如A可以有0->1->2->0->1 代价:2+2+3+2=9<10 输出4 #include <io ...

  3. private + virtual in Java/C++

    在Java中,private方法是隐式final的,就是说即使在子类中定义一个一模一样的方法,编译器认为这是两个没有联系的方法.private方法不参与运行时多态,这点和 final方法.static ...

  4. MySql无限分类数据结构--预排序遍历树算法

    MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID, ...

  5. 我在使用vs进行C#编程中常用的几个快捷键

    在vs中进行C#编程时: (1)输入svm然后按Tab键会生成Main函数: (2)Ctrl +k+s 三个键一起按,会调出代码段:选中多行后,然后按以上三个快捷键,输入需要使用的代码段,按下Tab, ...

  6. python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  7. delphi中midas是什么

    Delphi中MIDAS到底是什么呢?和他相关组件是什么呢?   MIDAS(Multitiered Distributed Application Services)多层分布式应用服务.   Del ...

  8. Android菜鸟成长记11 -- sqlite数据库的设计和升降级

    Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...

  9. User mode and kernel mode

    [User mode and kernel mode] 参考:https://msdn.microsoft.com/en-us/library/windows/hardware/ff554836(v= ...

  10. WebBrowser打开Word文档的一些注意事项

    WebBrowser打开Word文档的一些注意事项 分类: C#word2010-03-31 21:26 5640人阅读 评论(3) 收藏 举报 webbrowser文档browser工具object ...