Mac中文件权限查看和设置详解

前言

在 Mac 系统的终端上修改文件权限使用的是 Linux 中的 chmod 命令。本文将给大家介绍Unix、Linux下文件和权限。下面话不多说了,来一起看看详细的介绍吧

举例

  # 我们先创建一个测试目录  $ mkdir test && cd test  # 创建一个main.txt文件并写入一些内容  $ echo hello world >> text.txt  # 再创建一个空目录  $ mkdir js  # 查看信息  $ ls -l  total 8  drwxr-xr-x 2 frank staff 64 7 12 20:03 js # 这行就是js目录的信息  -rw-r--r-- 1 frank staff 13 7 12 19:52 main.txt # 这行是main.txt的信息

如上所示,文件和目录都具有如下信息:

  # 权限信息通用格式:  -rwxr-xr-x number user group filesize updatetime filename

通用格式共分成7部分,分别是:

1、文件属性,表示文件的类型是读/写/可执行等权限,共10个字符;

  • 第一个字符表示类型,后面9个字符分3组,表示该文件相对于当前用户(user)、当前用户所在的组(group)和其他用户(other)的读/写/可执行权限。
  • rwx:代表权限,-代表无权限,r代表read具有可读权限;w代表write具有可写权限;x代表execute具有可执行权限
  • 拿上面的main.txt举例,第一个字符是-,表示是文件类型;而js目录第一个字符是d,表示directory目录
  • 接下来的3个字符是rw-,表示该文件对于当前用户的权限是可读可写,但是不能执行
  • 再接下来的3个字符是r--,表示该文件对于当前用户所在的组的成员来说,只有只读权限,写和可执行都是没有权限的
  • 最后的3个字符也是r--,表示该文件对于其他用户来说也是只能读,不能写和执行

2、number,表示文件inode数量,inode表示存储文件原信息的区域;

3、user, 表示当前用户名

4、group, 表示当前用户所在的用户组的名字

5、filesize,表示文件的大小,单位是byte

6、updatetime,表示文件的最后修改时间

7、filename,表示文件名

修改文件权限

main.txt的权限是-rw-r--r-- 1 frank staff 13 7 12 19:52 main.txt,对其他用户的权限是r--,即只能读不能写,如果有个需求想让其他用户可写怎么办?这时候就需要修改main.txt的权限了,让其他用户也能进行写操作。

  # 修改权限的命令格式  $ [sudo] chmod [<权限范围><权限操作><具体权限>] [文件或目录]

1、权限范围

  • u: user,表示文件或目录的拥有者
  • g: group,表示文件或目录所属的组
  • o: other,除了文件或目录拥有者或者所属组之外的,其他用户都属于这个范围
  • a: all,即全部用户,包含文件或目录的拥有者、所属群组和其他用户

2、权限操作

  • +表示增加权限
  • -表示取消权限
  • =表示唯一设定权限

3、具体权限

  • r表示可读取
  • w表示可写入
  • x表示可执行

解释了这么多,现在我们通过命令操作,让其他用户对main.txt也有写的权限:

  # 让其他用户具有写权限  $ chmod o+w main.txt  # 确认  $ ls -l main.txt  -rw-r--rw- 1 frank staff 13 7 12 19:52 main.txt    # 让所有用户具有可执行权限,但是不可以修改且不可读  $ chmod a+x-r-w main.txt  # 再次确认  ---x--x--x 1 frank staff 13 7 12 19:52 main.txt

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

参与评论