Linux文件权限

 

权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。

基本权限UGO

    首先介绍U、G、O这三个字母所代表的含义。

      U:owne,属主

      G:group,属组

      O:other,其他用户

    Linux系统通过U、G、O将用户分为三类,并对这三类用户分别设置三种基本权限,这种设置权限的方式称作UGO方式。

    每个文件针对每类访问者定义了三种主要权限

       r:Read 读,数字设定为4

      w:Write 写 ,数字设定为2

      x:execute 执行,数字设定为1

Linux表示 说明 Linux表示 说明
r-- 只读 -w- 只写
--x 仅可执行 rw- 可读写
r-x 可读和执行 -wx 可写和执行
rwx 可读可写可执行 --- 没有任何权限

   对于文件和目录来说,r,w,x有着不同的作用和含义:

    针对文件:

       r:读取文件内容
 
      w:修改文件内容
  
      x:执行权限对除二进制程序以外的文件没什么意义

    针对目录:目录本质可看做是存放文件列表、节点号等内容的文件

      r:查看目录下的文件列表
  
     w:删除和创建目录下的文件
 
     x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)

设置文件属性与权限

    为了数据的安全,系统需要给予不同身份的用户、用户组对应的文件权限。下面讲解三个常用的修改权限命令。

      chown:修改文件属主、属组。

      chgrp:修改文件属组。

      chmod:修改文件权限。    

1.更改文件权限(chmod命令)

chmod [可选项] <mode> <file...>

设置所有用户可读取文件 a.conf

chmod ugo+r a.conf 
或 
chmod a+r  a.conf

设置 c.sh 只有 拥有者可以读写及执行

chmod u+rwx c.sh

设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写

chmod a+r,ug+w,o-w a.conf b.xml

设置当前目录下的所有档案与子目录皆设为任何人可读写

chmod -R a+rw *

或使用数字权限改写格式:

设置所有人可以读写及执行

chmod 777 file  (等价于  chmod u=rwx,g=rwx,o=rwx file 或  chmod a=rwx file)

设置拥有者可读写,其他人不可读写执行

chmod 600 file (等价于  chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file )

2.更改文件拥有者(chown命令)

chown [可选项] user[:group] file...

使用权限:root

设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom

chown tom:users file d.key e.scrt

设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 James

chown -R James:users  *

3.修改所属组(chgrp命令)

 chown user1 f1  #f1文件拥有者修改为user1

 基本权限ACL

       UGO权限只针对一个用户、一个组与其他用户,使用上有局限性,ACL主要提供传统的UGO的r、w、x权限之外的具体权限设置,可以对单一用户、单一文件或目录进行权限设置

ACL基本用法

 创建一个文件,使用getfacl命令查看ACL权限

touch /home/test.txt
getfacl /home/test.txt

 setfacl命令可以设置ACL权限,对每一个文件或者目录进行更精确的权限设置,添加"-m"参数可以修改当前文件ACL权限。

setfacl -m u:alice:rw /home/test.txt

这时使用getfacl命令查看,用户alice的权限已修改为"rw-"

mask 权限和 default 权限

 mask权限

 mask权限用于限制用户的权限。当用户的权限超过 mask 权限时,将使用 mask 权限作为用户的实际权限。即mask项就是ACL的最大有效权限。

setfacl [options] [file] [mask]
  • options:可选参数,用于指定修改 mask 权限的方式。
  • file:指定要修改 mask 权限的文件。
  • mask:指定 mask 权限。

mask 权限可以使用 -m 选项来指定。例如,要将文件的 mask 权限修改为 rw-,可以使用以下命令:

setfacl -m m::rw- file

default权限

default 权限在 ACL(Access Control List)中的继承行为是为了方便和简化权限管理。当我们在一个目录上设置了 default 权限时,这些权限会自动应用于该目录下新创建的文件或子目录。

setfacl [options] [directory] [default]
  • options:可选参数,用于指定修改 default 权限的方式。
  • directory:指定要修改 default 权限的目录。
  • default:指定 default 权限。

default 权限可以使用 -d 选项来指定。例如,要将目录的 default 权限修改为 rw-,可以使用以下命令:

setfacl -d d::rw- directory

mask 权限和 default 权限的注意事项

  • mask 权限和 default 权限都使用 :: 来表示所有用户。
  • mask 权限和 default 权限可以使用数字或符号来表示权限。
  • mask 权限和 default 权限的权限范围必须在 - 和 rwx 之间。

文件权限的应用

文件权限可以用于以下应用:

  • 控制用户对文件的访问权限。
  • 防止恶意程序的执行。
  • 保护文件的安全。

 

posted @ 2023-11-27 23:19  张澜  阅读(75)  评论(0编辑  收藏  举报