Skip to main content

17.用户权限作用和权限

#用户权限作用和权限 linux是多用户的操作系统。而用户和用户之间对文件的归属权是有区分的。一个文件操作无非就是读、写和执行,跟其它的系统一样,linux也是 把用户划分为3类---用户,用户组和其它用户,可以理解为在这个系统上,不仅有我,还有我们以及其它人。而这个3类用户对文件的操作权限可能不太一样. 如:

dev@macdeiMac-Pro$ ls -ahl
total 952
drwxr-xr-x 24 dev staff 816B Jun 10 00:44 .
drwxr-xr-x 4 dev staff 136B Jun 6 22:13 ..
drwxr-xr-x 15 dev staff 510B Jun 10 00:42 .docusaurus
drwxr-xr-x 14 dev staff 476B Jun 10 19:43 .git
-rw-r--r-- 1 dev staff 239B Jun 6 22:13 .gitignore
drwxr-xr-x 7 dev staff 238B Jun 10 19:43 .idea
-rw-r--r-- 1 dev staff 743B Jun 6 22:13 README.md
...

drwxr-xr-x从第2个字符起,用户是rwx对应read write exec(可读可写可执行), 中间是用户组,最后是其它用户。

用户组的操作

$ groupadd docker # 添加一个名为docker的用户组
$ gpasswd -a $USER docker # 把自己加入一个名为docker的用户组
$ newgrp docker #更新docker用户组

修改文件或目录的权限

$ touch permissionTest # 创建一个测试文件 
$ ls -ahl
total 0
drwxr-xr-x 2 root root 28 Jun 10 20:13 .
dr-xr-x---. 3 root root 146 Jun 10 20:11 ..
-rw-r--r-- 1 root root 0 Jun 10 20:13 permissionTest

permissionTest的用户、用户组和其它用户对应rw-(可读写)、r--(可读)和r--(可读)

$ chmod u=wrx permissionTest #修改用户在文件中可读可写可执行
$ chmod ugo=wrx permissionTest #修改用户、用户和用户组在文件中可读可写可执行
$ chmod u+x permissionTest #为用户添加一个可执行权限
$ chmod u-x permissionTest #为用户去一个可执行权限

权限对应数字为: Permission numbers are:

  • 0 = ---
  • 1 = --x
  • 2 = -w-
  • 3 = -wx
  • 4 = r-
  • 5 = r-x
  • 6 = rw-
  • 7 = rwx 所以以上修改文件(或目录),也可以用数字来实现,如:
    $ chmod 157 permissionTest #用户只能读 用户组只能执行和写,其它用户可读可写可执行
    $ ls -ahl
    total 4.0K
    drwxr-xr-x 2 root root 28 Jun 10 20:29 .
    dr-xr-x---. 3 root root 146 Jun 10 20:11 ..
    ---xr-xrwx 1 root root 8 Jun 10 20:29 permissionTest