[linux基础]linux的权限知识
2014-02-20 17:36
726 查看
一,基本概念:
Linux的权限访问是由进程(访问者)和文件(被访问者)两部分组成的,进程权限(进程权限通过task_struct 结构体中的 struct cred表示),文件权限(文件权限存放在struct inode结构体中,)
二,相关权限举例:
1,进程和文件权限举例:
2,进程权限
setuid()函数详解
–real user ID (uid): 实际用户ID,指的是进程执行者是谁
–effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限
–saved set-user-ID (saved uid): 保存设置用户ID。是进程刚开始执行时,euid的副本。在执行exec调用之后能重新恢复原来的effectiv user ID
–FSUID(File System User ID):Linux新引进的一类用户、组,用于文件访问控制,一般跟euid一样。
真实用户ID(real uid)是login时的用户.而在运行过程中,用于所有的安全检查的是有效用户ID(effective uid).
Linux setuid(uid)函数:
(1)如果由普通用户调用,将当前进程的有效ID设置为uid.
(2)如果由有效用户ID符为0的进程调用,则将真实,有效和已保存用户ID都设置为uid.
例子:使用setuid或是setruid,让非root用户也可以读取只有root用户有读写权限的
三,相关问题:
1,如何设置SetUID权限呢?
答:使用“chmod”命令即可为指定文件设置SetUID权限,例如“chmod 4xxx filename”命令,取消SetUID权限的命令为“chmod xxx filename”。类似的,执行“chmod 2xxx filename”命令可以设置SetGID权限,使用“chmod xxx filename”命令即可取消SetGID权限
2,S权限位的作用
android的init.rc中有如下一句
s在user位置时候称为SUID 只对二进制有效果,执行者对该程序有x的权限,程序只在执行过程有效,执行者有程序所有者权限,s在group位置时称为SGID针对目录时,用户在该目录下有w权限时,创建的文件和该目录有相同的group,mkdir /data/nvram 2770 root nvram,以上这句中2770中的2含义就是s权限位。作用是在/data/nvram目录下创建的文件的user和group和/data/nvram是完全一样的。
3,目录的w和x权限的作用
目录的w权限表示可以在目录下创建和删减文件,x权限代表用户能否进入该目录成为工作目录
4, 特殊权限Sticky标志位:(只对目录有效)
–旧的UNIX系统定义该位为指示操作系统在程序退出后,保留程序的代码段到swap空间。而在linux系统当中,该位表示防删除位,意味着该位被设置之后,只有文件的拥有者和root用户才能删除该文件。
Linux的权限访问是由进程(访问者)和文件(被访问者)两部分组成的,进程权限(进程权限通过task_struct 结构体中的 struct cred表示),文件权限(文件权限存放在struct inode结构体中,)
二,相关权限举例:
1,进程和文件权限举例:
文件(夹)读写权限 init.rc 中建立test1 test2 test3 文件夹 mkdir /data/misc/test1 0770 root root mkdir /data/misc/test2 0770 wifi wifi mkdir /data/misc/test3 0770 system misc 其中 test1 目录的owner是root, group 也是root test2 目录的owner是wifi , group 也是wifi test3 目录的owner是system , group 是misc (任何用户都属于group misc) service xxxx /system/bin/xxxx user root disabled oneshot service yyyy /system/bin/yyyy user system disabled oneshot service zzzz /system/bin/zzzz user wifi disabled oneshot 结果: xxxx 服务可以访问 test1, test2, test3 yyyy 服务可以访问 test3 zzzz 服务可以访问 test2, test3
2,进程权限
setuid()函数详解
–real user ID (uid): 实际用户ID,指的是进程执行者是谁
–effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限
–saved set-user-ID (saved uid): 保存设置用户ID。是进程刚开始执行时,euid的副本。在执行exec调用之后能重新恢复原来的effectiv user ID
–FSUID(File System User ID):Linux新引进的一类用户、组,用于文件访问控制,一般跟euid一样。
真实用户ID(real uid)是login时的用户.而在运行过程中,用于所有的安全检查的是有效用户ID(effective uid).
Linux setuid(uid)函数:
(1)如果由普通用户调用,将当前进程的有效ID设置为uid.
(2)如果由有效用户ID符为0的进程调用,则将真实,有效和已保存用户ID都设置为uid.
例子:使用setuid或是setruid,让非root用户也可以读取只有root用户有读写权限的
三,相关问题:
1,如何设置SetUID权限呢?
答:使用“chmod”命令即可为指定文件设置SetUID权限,例如“chmod 4xxx filename”命令,取消SetUID权限的命令为“chmod xxx filename”。类似的,执行“chmod 2xxx filename”命令可以设置SetGID权限,使用“chmod xxx filename”命令即可取消SetGID权限
2,S权限位的作用
android的init.rc中有如下一句
s在user位置时候称为SUID 只对二进制有效果,执行者对该程序有x的权限,程序只在执行过程有效,执行者有程序所有者权限,s在group位置时称为SGID针对目录时,用户在该目录下有w权限时,创建的文件和该目录有相同的group,mkdir /data/nvram 2770 root nvram,以上这句中2770中的2含义就是s权限位。作用是在/data/nvram目录下创建的文件的user和group和/data/nvram是完全一样的。
3,目录的w和x权限的作用
目录的w权限表示可以在目录下创建和删减文件,x权限代表用户能否进入该目录成为工作目录
4, 特殊权限Sticky标志位:(只对目录有效)
–旧的UNIX系统定义该位为指示操作系统在程序退出后,保留程序的代码段到swap空间。而在linux系统当中,该位表示防删除位,意味着该位被设置之后,只有文件的拥有者和root用户才能删除该文件。
相关文章推荐
- linux文件系统的挂载和自动挂载
- Linux进程实时监控 - htop
- 文本文件字符串的截取(linux下AWK的使用)
- 分析无法进入Linux系统的原因
- linux 基础 复习1
- tiny6410裸机实验第0章--------------开发环境的搭建(WIN7下挂载虚拟机NFS目录)
- linux之fstab
- linux下网站压力测试工具webbench
- Linux高级(二)
- Linux下Nagios的安装与配置
- Linux 内核态 Socket 编程--更正
- Linux操作系统下三种配置环境变量的方法(Linux查看环境变量当前信息和查看命令)
- Linux系统时间设置(转载)
- Linux 上设置共享(学习整理)
- tiny6410裸机实验第0章--------------开发环境的搭建(NFS服务器配置)
- linux里的CPU负载
- 查看linux系统版本是32位的还是64位的
- Linux流量监控工具
- linux下svn用法
- 【转载】应读者强烈要求给出《超容易的Linux系统管理入门书》一书的主要知识点