关于Linux 文件权限的思考
Linux文件系统每个文件分为inode和block,inode中包含一些基本信息(文件名,类型,长度,修改时间,权限等待),并且指向包含文件真实内容的block,而目录是文件的一种,其block的内容就是该目录下的文件列表,也就是一列文件名,并附有指向该文件inode的指针。
inode中有权限信息,rwx分别为可读可写可执行,;每个目录相当于一个黑墙围成的房间,但正面有一扇玻璃门(类似橱窗),r代表房间中的灯(是否打开),而x权限代表进入房间的玻璃门(是否打开),w容易理解是房间中的东西的位置能否修改。有r则即使未开门也能看见里面有什么东西,但只能远观(只能显示名字和类别),而有x无r则可以进门但里面一片漆黑不知道有些什么,此时黑墙上若有其它门也可以摸着进入下一个房间。
更新:
文件组织的权限都在内核中,每种权限都对应一些内核函数调用。对于文件来说rwx就是block的权限,其中x对应exec,rw对应open|read/write,而对于目录来说,block分两类,文件名和inode,r是block内文件名的读取权限,x是block中的inode读取权限,w是block的修改权限,包括名字和inode,所以目录的rwx就是目录的一套i/o系统调用,opendir等等。这意味着目录有x可以下级索引,r仅仅是查看下级的名称,w可以组织下级。
由于文件系统的inode,block模式,目录只对下一级负责。一个小例子,由于执行程序用到“./xxx”,或者/xx/xx/xx,都会转化为绝对路径,所以对目录的操作都是从根开始扫描的原子操作,没有中间指针,文件系统就是一种数据库。
除了owner-group-others的rwx,还有三组别的权限,实际用户/组ID,有效用户/组,设置用户/组ID,这三组都是指程序运行时的用户名和组。按顺序来,实际用户/组ID说的是用户账户,在登录时用配置初始化,切换用户时可以改变。有效用户/组ID是指程序,每当运行一个新程序时,新程序也需要有用户名/组来获取对应的权限,所以用户执行了一个程序,程序 就有了当前用户的权限(成了一个活人)。但是如果想让该程序去读取一些当前用户不能读的文件,怎么办呢?
这就是设置用户/组ID的意义,如果一个程序有了设置用户/组ID,那么执行时,权限为设置用户/组ID的权限,这样,如果想要读只有该用户能读的文件时,让该用户把设置用户/组ID设置为该用户,就可以了。另一种说法,如果想要让别人读一个你的文件,但又不想给多余的权限时,可以定制一个读取程序,然后设置设置用户/组ID,给他人使用。
说到这,Linux系统最高权限就是内核本身,其次是root,然后是用户以及分配的各种权限。所谓权限,就是调用时的检查,而调用的提供者是内核。内核制定了一系列的规则逻辑,形成秩序。
关于Linux 文件权限的思考的更多相关文章
- 修改linux文件权限
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...
- Linux:文件权限
Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...
- Linux 文件权限总结
在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就 ...
- Linux&shell 之Linux文件权限
写在前面:案例.常用.归类.解释说明.(By Jim) Linux文件权限用户useradd test (添加用户test)userdel test (删除用户test)passwd test(修改用 ...
- linux文件权限整理
网上对linux文件权限的已经很多,不过还是要自己整理一下,不然每次都要查资料. linux下所有东西都是文件,包括设备,所以这里的文件也包括文件夹. 先是查看文件权限:ls -lh xzc@xzc- ...
- 修改linux文件权限命令:chmod 【转载】
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. chmod 命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod ...
- linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)
文件类型 对于文件和目录的访问权力是根据读访问,写访问,和执行访问来定义的. 我们来看一下 ls 命令的输出结果 [root@iZ28dr6w0qvZ test]# ls -l 总用量 72 -rw- ...
- Linux 文件权限于目录配置
用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...
- Linux文件权限与属性详解 之 SUID、SGID & SBIT
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
随机推荐
- SpringCloudConfig配置中心git库以及refresh刷新
基于git库的Spring Cloud Config配置中心代码demo下载地址:https://gitlab.com/mySpringCloud/config-git SpringBoot版本: 1 ...
- Bacnet协议IP采集开发 总结
一.开发准备 a.模拟器 VTS和BACnetDeviceSimulator b.主站 BACnetScan c.参考文档 http://wenku.baidu.com/view/3052 ...
- python生成linux命令行工具
您是否也曾一直想生成类似cd, cat等小巧/迷人/实用的小工具作为系统命令或者将python程序打包为exe进行分发?ok,机会来了.利用python 的argparse 和 pyinstaller ...
- 继承LinearLayout自定义左侧菜单
public class LeftMenuView extends LinearLayout { LinkedHashMap<Integer,String> map=new LinkedH ...
- Go语言 并发编程
Go语言 并发编程 作者:Eric 微信:loveoracle11g 1.创建goroutine // 并行 是两个队列同时使用两台咖啡机 // 并发 是两个队列交替使用一台咖啡机 package m ...
- 刘志梅2017710101152.《面向对象程序设计(java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...
- Problem B: 故障电灯(light)
考虑对电灯进行差分:若第i个电灯和第i + 1个电灯状态不同,则在第i个位置上放一个球 这样我们就放置了不超过2n个球,且必然是偶数个 于是问题转化为:有m个球,每一步可以把一个球平移奇质数个位置,两 ...
- IDE 热部署配置
从eclipse切换到IDE,遇到应用不能热部署问题,解决如下 1.tomcat 中server配置下面三点需要注意 2.tomcat的deployment 中 需要选择war exploded而不是 ...
- T4代码生成脚本从添加注释,添加命名空间开始(一款强大的代码生成工具从看懂脚本,到随心所欲的玩弄代码,本文只是T4的冰山一角,博主将不断深入探索并完善该文章)
精通T4脚本要从读懂脚本的关键代码片段开始 1.1. 给类添加注释-->看懂类对应的代码:<#=codeStringGenerator.EntityClassOpening(entity ...
- (Python基础)列表的认知
以下是列表的一些知识点 name = ['关羽','张飞','刘备','曹操','诸葛亮','吕布',['吕布','吕布',],'吕布','吕布','吕布','吕布']for i in name: p ...