Unix File Permissions ACLs in OS X(part 2)
这是第一部分的接续,再详述一下permissions的继承关系等问题。
上一篇到这里可以找到: Unix File Permissions and ACLs in OS X
或者: http://blog.csdn.net/afatgoat/archive/2008/12/07/3462131.aspx
下面的一些事实以及版本之间的差异在考虑permissions的继承问题时要牢记:
1. Leopard(10.5)默认的情况下是打开ACLs的, 而Tiger(10.4)不是.
2. 每一个在Leopard里面创建的用户,他们的默认组都是staff, 而在Tiger里面是, 新用户的创建都同时创建该用户同名的一个新组, 这样每个用户的组都不一样,当然可以在Netinfo里面变更用户组.
3. 默认的POSIX权限定义了创建者(拥有者owner),所属组(group)和任何人(everyone)的权限规则. 当ACLs打开时, ACLs和POSIX共同工作。他们相互作用的原则,最后产生有效的访问权限的规则是:
effective access = 所有ACLs中allow规则的叠加,剔除所有ACLs中的Deny的规则的叠加, 最后再合并POSIX的权限.
而只有两种可能: ACLs和POSIX共同作用,或者只有POSIX,不可能有ACLs单独起作用的情况。
4. 当一个新文件创建的时候, OS X对该文件默认的权限设置是这样的:
(1) POSIX owner-创建者就是创建该文件的当前用户account.
(2) POSIX group-组是继承于文件所在父文件夹的组.
(3) 而每一个部分权限bits的设定是: owner有读写(Read & Write)权限,而组和everyone都只有读(Read)权限, 也就是通过这个二进制的umask来设定的:755用于folder, 644用于文件.
(4) 如果在父目录中定义了继承关系的ACLs那么它同样继承这些ACLs.
5. 当拷贝copy一个文件或者目录时, 文件权限的继承遵循这样的规则:
(1) POSIX owner-是当前操作的客户
(2) POSIX group-组是继承于文件所在父文件夹的组. 这两点喝创建文件的相同
(3) 权限bits的设置是保留的,这一点和上面的"创建"不一样了。
(4) 对于ACLs, 如果不是继承的ACLs那么会保留,而原来继承于父目录的ACLs不被保留,而它将继承当前目录设定的子文件要继承的ACLs.
6. 当移动(move, mv或者Command+drug&Drop)一个文件目录的时候,所有的都被保留,owner和group都不变,权限设置也不变。所有的ACLs(包括自己的和继承的)都保留。
下面就用的Drop Box目录举例:
在Tiger 10.4系统里面, POSIX是唯一默认的权限, Ami的Drop Box目录的权限是这样的:
POSIX Owner: Ami
POSIX Group: Ami
POSIX permissions bits: 0733 (owner可以R & W, 所有其他人只写)
当另外一个用户Tim放了一个文件在Ami的Drop Box目录里后,这个文件的权限设定如下:
POSIX Owner: Tim (因为用户是Tim)
POSIX Group: Ami (从父目录继承的)
POSIX permissions bits: 0644 (owner可以R & W, 其它人只读)
这样,当用户Ami访问该文件的时候,他有只读的权限.
如果我们设置Ami和Tim都属于同一个组,比如就象10.5 Leopard中所默认的,都输入staff组,而且Tim在复制文件前把权限bits变更为664, 那么Ami就可以拥有R&W的权限了,或者Ami可以通过强制复制目录所有文件权限的方法重置权限bits。但是无论哪个方法都不是方便的做法。而使用ACLs可以作到无须用户干预就设置好权限的作用。
比如:
sudo chmod +a "everyone deny delete" /Users/sally/Public/Drop/ Box
sudo chmod -R +a "sally allow readattr,readextattr,readsecurity,list,search,read,execute,file_inherit,directory_inherit,delete,writeextattr,writeattr,write,append,delete_child,add_file,add_subdirectory" /Users/sally/Public/Drop/ Box
简单吧。
ref:http://www.macosxhints.com/article.php?story=20081009204908181
原文链接: http://blog.csdn.net/afatgoat/article/details/3494974
转载于:https://my.oschina.net/junwong/blog/46557
Unix File Permissions ACLs in OS X(part 2)相关推荐
- Unix File Permissions and ACLs in OS X
Update: 2008-12-08: POSIX. 2008-12-08: delete "only_inherit" option in the last exam ...
- android异常 More than one file was found with OS independent path ‘META-INF/XXX‘
android异常 More than one file was found with OS independent path 'META-INF/XXX' 参考文章: (1)android异常 Mo ...
- More than one file was found with OS independent path
More than one file was found with OS independent path 解决方法 找到so库存放目录,找出相同的so文件,删掉其中一个,这个方法简单除暴,但是也是最 ...
- LINUX修改权限modify,linux文件权限查看及修改(实用)(View and modify Linux file permissions (practical)).doc...
linux文件权限查看及修改(实用)(View and modify Linux file permissions (practical)) linux文件权限查看及修改(实用)(View and m ...
- linux 修改文件夹权限_Linux文件权限 - Understanding Linux File Permissions
先说点题外话,最开始我总觉得我想做一个不精通编程的程序员,后来发现,对计算机底层的理解是绕不开的.为了更高效的完成工作任务,熟悉基础的编程工具是非常必要的. Linux对每个文件和文件夹有三种权限所属 ...
- more than one file was found with os independent path'com/unionpay/blepayservice/'
项目引用jar冲突或有相同的两份以上存在,系统发现了多个路径,造成系统不知道指向那个 报错:more than one file was found with os independent path ...
- flutter Cannot open file, path = ‘.../test.jpg‘ (OS Error: Permission denied, errno = 13)
开发 flutter 遇到没权限问题,刚学不熟搞了半天,报错信息: Cannot open file, path = '/storage/emulated/0/Download/test.jpg' ( ...
- 【转】操作系统Unix、Windows、Mac OS、Linux的故事
电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...
- 操作系统Unix、Windows、Mac OS、Linux的故事
2019独角兽企业重金招聘Python工程师标准>>> 我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Lin ...
最新文章
- 吴恩达:现在很多所谓的AI公司,其实都不是AI公司
- IBM发表论文:可能已找到处理量子计算退相干的方法
- 现金支付没落?澳大利亚一年内移除数百台ATM机
- 关于python的保留字_Python中的保留字
- Android逆向笔记-通过tracerPid对抗IDA调试
- 3 QM配置-质量计划配置-编辑特性属性的选择集
- Android和iOS智能机去年出货超7亿 同比增长46%
- java getoutputstream_Java Connection.getOutputStream方法代码示例
- mysql 判断质数_质数(素数)判断算法总结
- EasyUI中combogrid设置onSelect后 获取不到getSelecte问题解决
- 计算字符串占用字节数
- 软件工程与计算-11-人机交互设计
- Android知识点 363 —— dumpsys alarm
- OneWay应用广告测试设备添加
- 爬虫实战(一)-新版知乎网页分析获取登录url
- JAVA算法:解救小哈(JAVA版)
- 中国地质大学计算机研究所宿舍,在地大,据说一些寝室闪闪发光
- python利用以下公式求π的值_使用Python计算 π 值
- wayos维盟JMV7500河南维盟一级代理商专供四WAN全千M智能流控路由器
- QCOM audio
热门文章
- 关于 SAP ABAP 报表的多语言显示问题试读版
- 2018国内各大互联网公司前端面试题汇总【转:公众号~~高级前端进阶公众号】
- this.$watch(),this.$set(),this.$nextTick()={})
- 微信小程序开发者工具error:用户绑定的手机需要进行验证,请在客户端完成短信验证
- Failed to load ‘D:\note\笔记\javaweb\webpack\webpack.config.js‘ config
- 苹果电脑如何正确断网?macOS操作系统断网方法来了
- oeasy教您玩转vim - 27 - 文件类型
- 计算机专业专科可以进的国企,专科毕业想要进国企?这四大专业是首选,成功率高达50%...
- java爬虫实战(3):网易云音乐评论,歌曲,歌单,歌词下载
- 性别符号php,树也分男女?给6万棵杨树画上性别符号,原来是因为…