在mac上开发,涉及在系统目录(指操作系统自带的那些目录,比如
/
、/usr
、/usr/local/bin
等)创建文件夹或者文件时,会出现由于权限不足导致创建失败的问题。这是由于,这些目录属于root
用户, 而当前登录mac的一般都是非root用户,而非root用户没有权限修改root用户直接管辖的目录和文件。那么如何让用户拥有这些目录的修改权限呢?
解决办法有两个:
- 方法一:改成使用root登录,这样就具有对操作系统的最大权限,可以为所欲为。但是,不推荐这么做,因为太危险。
- 方法二:将你要操作的目录的权限从root手里夺过来,也即修改目录的拥有者。推荐。
如何修改目录的拥有者
使用linux命令 chown
。
命令格式:
1 | chown [选项] 所有者[:组] 文件 |
chown
将指定文件的拥有者改为指定的用户或者用户组,用户可以是用户名或者用户ID,组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用 chown
命令,在将文件拷贝到另一个用户的目录下后,让用户拥有使用该文件的权限。
实例:
把 /usr/local/bin
和 /usr/local/lib
这两个目录以及其子目录的拥有者从root改成当前用户:1
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib
说明:
chown
change owner 的缩写。$(whoami)
who am i ,获取当前的用户。-R
–recursive 的缩写,递归处理,将指定目录和所有子目录一并处理。
执行完命令,可以用 ls -l
来查看一下是否修改成功。
常用选项列表:
必要参数
-c
:–changes 的缩写,当发生改变时输出调试信息,仅显示更改部分的信息-f
:不显示错误信息,忽略错误信息-h
:修复符号链接-R
:–recursive 的缩写, 递归处理,将指定目录以及其子目录下的所有文件一并处理-v
:–verbose 的缩写, 显示指令执行过程的详细的处理信息
选择参数--help
:显示帮助信息--version
:显示版本信息