如何修改mac中文件夹和文件的拥有者

在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 :显示版本信息