Linux用户权限管理

目录

一 权限定义

二 权限表示法

2.1 数字表示法

2.2 文字表示法

三 更改权限

四 权限ACL配置

五 特殊权限

5.1特殊权限SUID

5.2 特殊权限SGID

5.3 特殊权限Sticky

5.4 linux改变拥有者


一 权限定义

通过ll命令查看,然后摘出来一条分析:

d r-x rwx --x.   5 root root 4096 May  7  2020 boot

d:该文件类型是目录

r-w:该文件所有者的权限是可读可执行但不可写

rwx:与拥有者同一组的权限是可读可写可执行

--x:其它用户的权限是不可读不可写可执行

  • r(read读取):对文件而言,用户具有读取文件内容的权限;对目录而言,该用户具有删除、移动目录内文件的权限
  • w(write写入):对文件而言,该用户具有新建、修改文件内容的权限;对目录而言,该用户具有删除、移动目录内文件的权限
  • x(execute执行):对文件而言,该用户具有执行文件的权限;对目录而言,该用户具有进入目录的权限
  • -:不具有该项权限

二 权限表示法

2.1 数字表示法

r(读)用4表示;w(写)用2表示;x(执行)用1表示;-(空)用0表示

000=0          对应权限 “---”                                 100=4          对应权限”r--“

001=1          对应权限 “--x”                                 101=5          对应权限”r-w“

011=3          对应权限 “-wx”                                110=6          对应权限”rw-“

111=7          对应权限”rwx“                                  010=2         对应权限 “-w-”

755:rwxwxwx

666:rw-rw-rw-

2.2 文字表示法

若一个文件的权限标示为 rwxrwxrwx
文件或目录的拥有者所拥有的权限代号为 u(user);

同组的用户对文件或目录的权限代号为 g(group);其他用户对文件或目录的权限代号为 o(other);
所有用户对该文件或目录的权限代号为 a(all):
属主: u 属组: g其它:o 所有:a

三 更改权限

chmod + [u g o a] [+ - =] [rwx...]n文件名

+ 表示增加权限

- 表示减少权限

= 表示分配权限,同时将原有权限删除

给同组用户分配执行权限 chmod g+x txt

Linux用户权限管理_第1张图片

给其它用户删除读权限 chmod 0-r txt

Linux用户权限管理_第2张图片

 给所属主、组和其它用户分配读、写和执行权限

chmod u+rwx,g+rwx,0+rwx txt

 Linux用户权限管理_第3张图片

给属组用户分配读和执行权限而同组和其它用户无权限

chmod 500 txt 

Linux用户权限管理_第4张图片

 将整个目录mydir与其中的文件和子目录的权限,都改成读、写、执行

chmod -R 777 mydir

 Linux用户权限管理_第5张图片

 将mydir所有文件的写权限都删除掉

chmod -R a-w mydir/   #a就是all

 Linux用户权限管理_第6张图片

四 权限ACL配置

比如,,zqr,zgh都属于vrlab1这个组里面,然后创建一个文件file1,然后chmod 777 file,这样vrlab这个组所有用户的权限就是可读可写可执行,但是,我不想让zgh写,所以这就用到了访问控制列表ACL。

通过getfacl 文件名,查看acl信息

Linux用户权限管理_第7张图片

 我们有三个用户 acluser1,acluser2,acluser3,都属于同一个组aclgroup,然后将aclfile这个文件的组设置为aclgroup组

 Linux用户权限管理_第8张图片

 但是我不想让acluser1有w的权限

setfacl -m u:acluser1:r-- aclfile

 Linux用户权限管理_第9张图片

 这时候登录acluser1就不能访问编辑这个文件 

setfacl -x u:acluser1 aclfile,用-x把刚才添加的acl给删掉

setfacl -b aclfile,清除所有acl

五 特殊权限

5.1特殊权限SUID

只能用于可执行文件上,当用户执行该执行文件时,会临时拥有该执行文件所有者的权限。

查看passwd命令的SUID

[root@lmy lmy]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 33544 Dec 14  2019 /usr/bin/passwd

属主的x位置变成了小写的s的时候,代表具有有效的suid的权限

赋予一个文件suid的权限

chomd u+s suidfile

 Linux用户权限管理_第10张图片

但是这是个大写的S,它虽然具备suid的权限,但是它不是一个有效的suid,所以对一个没有执行权限的文件赋予suid权限没有效,所以应该再加上chmod u+x suidfile

5.2 特殊权限SGID

 SGID与SUID不同,SGID属性可以应用在目录或可执行文件上。当SGID属性应用在目录上时,该目录下创建的所有文件和子目录都会是这个目录的拥有组

设置方式:chmod g+s 目录名称/文件名称

 Linux用户权限管理_第11张图片

5.3 特殊权限Sticky

sticky属性只能应用在目录,当目录用于sticky属性所有在目录中的文件或子目录无论是什么权限只有文件或子目录拥有者和root用户才能删除

chmod o+t 目录名称

总结:

  • 可执行文件 chmod 4777
  • 目录 chmod 2777
  • 目录 chmod 1777 

5.4 linux改变拥有者

  • 将lmy文件属主改为lmy777,属组改为lmy666

chown lmy777.lmy666 lmy

  • 将lmydir目录及所有目录及文件的属主改为123,属组改为206

chown -R 123.206 lmydir

  • 将test的属组改为root

chgrp root test

你可能感兴趣的:(linux,服务器,java)