Unix 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)相关推荐

  1. Unix File Permissions and ACLs in OS X

    Update:    2008-12-08: POSIX.    2008-12-08: delete "only_inherit" option in the last exam ...

  2. 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 ...

  3. More than one file was found with OS independent path

    More than one file was found with OS independent path 解决方法 找到so库存放目录,找出相同的so文件,删掉其中一个,这个方法简单除暴,但是也是最 ...

  4. LINUX修改权限modify,linux文件权限查看及修改(实用)(View and modify Linux file permissions (practical)).doc...

    linux文件权限查看及修改(实用)(View and modify Linux file permissions (practical)) linux文件权限查看及修改(实用)(View and m ...

  5. linux 修改文件夹权限_Linux文件权限 - Understanding Linux File Permissions

    先说点题外话,最开始我总觉得我想做一个不精通编程的程序员,后来发现,对计算机底层的理解是绕不开的.为了更高效的完成工作任务,熟悉基础的编程工具是非常必要的. Linux对每个文件和文件夹有三种权限所属 ...

  6. more than one file was found with os independent path'com/unionpay/blepayservice/'

    项目引用jar冲突或有相同的两份以上存在,系统发现了多个路径,造成系统不知道指向那个 报错:more than one file was found with os independent path ...

  7. flutter Cannot open file, path = ‘.../test.jpg‘ (OS Error: Permission denied, errno = 13)

    开发 flutter 遇到没权限问题,刚学不熟搞了半天,报错信息: Cannot open file, path = '/storage/emulated/0/Download/test.jpg' ( ...

  8. 【转】操作系统Unix、Windows、Mac OS、Linux的故事

    电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...

  9. 操作系统Unix、Windows、Mac OS、Linux的故事

    2019独角兽企业重金招聘Python工程师标准>>> 我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Lin ...

最新文章

  1. 吴恩达:现在很多所谓的AI公司,其实都不是AI公司
  2. IBM发表论文:可能已找到处理量子计算退相干的方法
  3. 现金支付没落?澳大利亚一年内移除数百台ATM机
  4. 关于python的保留字_Python中的保留字
  5. Android逆向笔记-通过tracerPid对抗IDA调试
  6. 3 QM配置-质量计划配置-编辑特性属性的选择集
  7. Android和iOS智能机去年出货超7亿 同比增长46%
  8. java getoutputstream_Java Connection.getOutputStream方法代码示例
  9. mysql 判断质数_质数(素数)判断算法总结
  10. EasyUI中combogrid设置onSelect后 获取不到getSelecte问题解决
  11. 计算字符串占用字节数
  12. 软件工程与计算-11-人机交互设计
  13. Android知识点 363 —— dumpsys alarm
  14. OneWay应用广告测试设备添加
  15. 爬虫实战(一)-新版知乎网页分析获取登录url
  16. JAVA算法:解救小哈(JAVA版)
  17. 中国地质大学计算机研究所宿舍,在地大,据说一些寝室闪闪发光
  18. python利用以下公式求π的值_使用Python计算 π 值
  19. wayos维盟JMV7500河南维盟一级代理商专供四WAN全千M智能流控路由器
  20. QCOM audio

热门文章

  1. 关于 SAP ABAP 报表的多语言显示问题试读版
  2. 2018国内各大互联网公司前端面试题汇总【转:公众号~~高级前端进阶公众号】
  3. this.$watch(),this.$set(),this.$nextTick()={})
  4. 微信小程序开发者工具error:用户绑定的手机需要进行验证,请在客户端完成短信验证
  5. Failed to load ‘D:\note\笔记\javaweb\webpack\webpack.config.js‘ config
  6. 苹果电脑如何正确断网?macOS操作系统断网方法来了
  7. oeasy教您玩转vim - 27 - 文件类型
  8. 计算机专业专科可以进的国企,专科毕业想要进国企?这四大专业是首选,成功率高达50%...
  9. java爬虫实战(3):网易云音乐评论,歌曲,歌单,歌词下载
  10. 性别符号php,树也分男女?给6万棵杨树画上性别符号,原来是因为…