MAC OS X的ACL扩展权限设置
在WEB开发时,网站是以_www的用户运行的,而我在本地是以liuwencan的用户编辑的。这就带来一个问题:如果所有文件属于liuwencan,那么网站运行需要写文件时就因无权限而失败;如果所有文件属于_www,那么liuwencan则需要sudo获取权限才能写进去。最郁闷的是使用git合并的时候,如果忘了加sudo,就会因权限不足提示大量的合并失败,需要先回滚,再重合并下,甚是不爽。
这个问题,在标准LINUX下,是可以用setfacl/getfacl做ACL控制解决此问题,但是MAC OS X上并没有这两个命令。百度了OS X ACL半天得到的不是打不开就是跟问题不搭边,最后去查看这些打不开的页面的快照(快照啊,找得是多蛋疼),找到了答案。
MAC OS X上使用chmod +a增加ACL权限, chmod -a删除ACL权限,ls -le查看ACL权限。
要解决上面提到的问题,执行以下两条命令修改网站根目录的扩展权限即可(www是我网站根目录名称,注意-R参数必须有,将www下面的所有文件也一并设置):
$sudo chmod -R +a 'liuwencan allow write,delete,file_inherit,directory_inherit,add_subdirectory' www
$sudo chmod -R +a '_www allow write,delete,file_inherit,directory_inherit,add_subdirectory' www
执行以下命令确认权限设置有成功:
$ls -le #以下为命令输出,对比可确认权限设置符合预期
total 0
drwxr-xr-x+ 37 liuwencan staff 1258 8 5 10:04 www
0: user:liuwencan allow add_file,delete,file_inherit,directory_inherit,add_subdirectory
1: user:_www allow add_file,delete,file_inherit,directory_inherit,add_subdirectory
该命令的其他用法,请参考原文:OS X ACL usage。
MAC OS X的ACL扩展权限设置的更多相关文章
- Mac OS下Boot2Docker的网络映射设置
Mac系统下安装Boot2Docker造成了三层网络:Mac->VirtualBox->Docker,通过docker run 参数-p/-P,能手动或自动设置VirtualBox与Doc ...
- Mac OS X 安装后的简单设置
让Mac拥有类似apt-get的功能--安装Homebrew Homebrew是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具(比如著名的wget). 国内下载地址:http://ww ...
- Mac OS X 10.9.3 UI 设置界面无法设置时区解决
10.9.3 在选项设置里无法设置时区,表现为选择时区的点的位置后无法保存,导致系统时间错乱,解决方法是用终端设置: sudo systemsetup -gettimezone sudo system ...
- VMware虚拟机Mac OS X无法调整扩展硬盘大小,更新xcode时出现磁盘空间不足
使用VMware虚拟机搭建的MacOSX,安装xcode时出现磁盘空间不足的错误. 因为很多朋友在初次安装MacOSX的时候都默认选择40G的磁盘大小,结果用了没两天之后就发现磁盘不够用了. 这时,百 ...
- VMware虚拟机Mac OS X无法调整扩展硬盘大小的解决方案(转)
使用VMware虚拟机搭建的MacOSX,在10.10以上可能会出现无法扩充磁盘大小的问题. 因为很多朋友在初次安装MacOSX的时候都默认选择40G的磁盘大小,结果用了没两天之后就发现磁盘不够用了. ...
- VMware虚拟机Mac OS X无法调整扩展硬盘大小的解决方案
使用VMware虚拟机搭建的MacOSX,在10.10以上可能会出现无法扩充磁盘大小的问题. 因为很多朋友在初次安装MacOSX的时候都默认选择40G的磁盘大小,结果用了没两天之后就发现磁盘不够用了. ...
- Mac 配置java版本 ---- MySql数据库权限设置 --- openfire
java -version 显示java 版本 sudo su - root 切换身份 cd /usr/local/openfire 进入openfire目录 cd bin/ 进入 bin vim o ...
- mac OS npm 安装/卸载失败 权限问题解决方案
在终端输入 sudo chown -R $USER /usr/local 输入开机密码
- Mac OS X 上安装 ASP.NET 5
在Mac OS X Yosemite 10.10.3 中搭建第一个 ASP.NET 5 Web 项目 终于有时间在 Mac 上安装一下 ASP.NET 5,网上有许多教程,但是多数的时间比较早了,版本 ...
随机推荐
- java删除文件夹
想删除本地一个项目目录,结果windows说路径太长,不能删除.于是试了试java删除.一切ok.以后一定要抓紧时间学python. /** * Created by rmiao on 4/21/20 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件委托
jQuery的事件绑定有几个比较优秀的特点: 1. 可以绑定不限数量的处理函数 2. 事件可以委托到祖先节点,不必一定要绑到对应的节点,这样后添加的节点也照样能被处理. 3. 链式操作 下面主要分析事 ...
- Nancy之Pipelines三兄弟(Before After OnError)
一.简单描述 Before:如果返回null,拦截器将主动权转给路由:如果返回Response对象,则路由不起作用. After : 没有返回值,可以在这里修改或替换当前的Response. OnEr ...
- TableLayoutPanel导致的闪屏问题
界面Load的时候添加对tableLayoutPanel的处理即可,还可设置窗体的DoubleBuffered属性为True tableLayoutPanel1.GetType().GetProper ...
- svn提交时出现很多乱文件怎么解决
在我们开发项目中的时候经常使用到svn,有时候我们commit的时候回出现很多无用的文件,这些文件就是未版本化的文件,怎么解决这些乱文件的问题呢? svn commit提交的时候有个"sho ...
- php实现设计模式之 简单工厂模式
作为对象的创建模式,用工厂方法代替new操作. 简单工厂模式是属于创建型模式,又叫做静态工厂方法模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 工厂 ...
- JS时间戳格式化日期时间
由于mysql数据库里面存储时间存的是时间戳,取出来之后,JS要格式化一下显示.(李昌辉) 用的次数比较多,所以写了一个简单方法来转换: //时间戳转时间 function RiQi(sj) { va ...
- php开发公众号 token验证失败 其中一个原因
断断续续,弄了好几天,索性一狠心花了三个小时,总算找出问题了. "token验证失败" 可能原因有很多种,其他网友已经几乎穷尽了,但是我所遇到的在网络上没有看到,所以这里记录下. ...
- 点(x3,y3)到经过点(x1,y1)和点(x2,y2)的直线的最短距离
/// <summary> /// 点(x3,y3)到经过点(x1,y1)和点(x2,y2)的直线的最短距离 /// </summary> /// <param name ...
- MyEclipse使用心得:SVN插件安装方法
1.在线安装,打开myeclipse,help--->MyEclipse Configuration Center 2.点击Add Site 打开对话框,在对话框Name输入Svn,URL中输入 ...