linux文件权限管理与ACL访问控制列表

一、文件属性

1.文件属性:

文件属性操作

chown : change owner  ,设置文件所有者

chgrp : change group  ,设置文件的属组

文件属主修改: chown

格式:chown [OPTION]… [OWNER][:[GROUP]] FILE…

用法:

OWNER

OWNER:GROUPNAME    (同时修改属主、属组)

:GROUPNAME                (默认属主,修改属组)

( 命令中的冒号可用.替换;)

chown  –reference=RFILE FILE…   参照某文件权限设置权限

文件属组修改: chgrp

格式:chgrp [OPTION]… GROUP FILE…

chgrp [OPTION]

-R  递归 递归设置目录中的文件、子目录权限)

2.文件权限:

1)权限定义对象:

文件的权限主要针对三类对象进行定义:

owner: 属主,文件拥有者, u

group: 属组, 文件拥有组,g

other: 其他, 除以上两类人以外的全部用户,o

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

r: Readable ,读取

w: Writable ,写

x: eXcutable,执行

系统对于权限,是依次将用户权限与文件、文件夹的所有者、组、其他权限,依次匹配

注:只针对部分文件系统,fat格式的文件系统不支持权限修改(元数据分区中无此内容)

2)权限实际意义

文件权限的实际意义:

r: 可使用文件查看类工具获取其内容

w: 可修改其内容,内容也可以被破坏,但是无法删除文件

x: 可以把此文件提请内核启动为一个进程,针对二进制程序、脚本而言

目录权限的实际意义:

r: 无法进入目录(cd)可以使用ls查看此目录中文件列表,但是无法查看文件属性—

w: 可在此目录中创建文件,也可删除此目录中的文件(但需要先有X权限)

+wx : 可以进入目录,创建、修改、删除文件、文件内容,但是无法获取文件列表

x: 可以使用ls -l查看此目录中文件列表,可以cd进入此

3)权限操作

权限赋值的八进制数字法:

— 000 0

–x 001 1

-w- 010 2

-wx 011 3

r– 100 4

r-x 101 5

rw- 110 6

rwx 111 7

例如:

640: rw-r—–

rwxr-xr-x: 755

权限修改:

命令格式:  chmod [OPTION]… OCTAL-MODE FILE…

chmod [OPTION]… MODE[,MODE]… FILE…

-R: 递归修改权限  (此操作有风险)

+ X (大写) 当递归+X时,如果目录内有子目录,则加执行权限, 如果遇到文件,若文件本身

无执行权限,则不加,若有则加x权限

eg : chmod a=rwX \目录

MODE:

修改一类用户的所有权限:

u=     g=     o=     ug=   a= (all,全部用户)  u=,     g=

修改一类用户某位或某些位权限

u+/-    g+/-   o +/-    a+/-

八进制赋值

eg:  chmod  666 file1

chmod [OPTION]… –reference=RFILE FILE…

参考RFILE文件的权限,将FILE的修改为同RFILE;

4)新文件、目录默认权限  umask值

umask作用:用于设置创建文件、目录时的默认权限

默认权限:

新建文件默认权限:  666-umask

(取值为666是处于安全考虑,使新建文件默认下均不含有执行权限)

如果所得结果某位存在执行(奇数)权限,则将其权限+1,得到最终权限

eg: umask=125   –>  666-125 =541  –>+1处理后为: 642  (5+1,1+1)

新建目录默认权限: 777 – umask

eg :  umask=100 –> 777-100=677 (rw-rwx-rwx)

umask 操作:

umask    查看umask 值  (无需加参数)

(注:如论如何设定,新文件默认均无执行权限)

umask N  : 设定umask = N

注: umask 每个位的最大值不超过7

umask -S   以模式方式显示umask

eg:   u=rwx,g=rw,o=x

umask -p  输出umask值以供调用

eg:   umask 0022

3特殊权限:SUID(s), SGID(s), Sticky(t)

linux安全上下文

(前提:进程有属主和属组;文件有属主和属组)

(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否拥有执行权限

(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者

(a) 进程的发起者,同文件的属主:则应用文件属主权限

(b) 进程的发起者,属于文件属组;则应用文件属组权限

SUID

作用:可执行文件上SUID权限(作用于二进制程序)(u+s后)任何用户可启动此进程,且

视为以root用户启动,并且具备root权限

(对于各种命令,+s之后,任何用户使用它都可以获取root使用时的权限)

作用对象:SUID只对二进制可执行程序有效,SUID设置在目录上无意义

权限设定:

chmod u+s FILE…

chmod u-s FILE…

SGID

作用:

目录:当一个目录实行了sgid,在目录中任何新创建的文件,都继承本目录的属组

为自己的属组

文件:作用在文件上, 一旦一个文件被赋予SGID的权限, 无论当前的用户有无执

行权限,用户运行该程序,会自动继承该程序所属组的权限。

作用对象:目录、文件

权限设定:

chmod g+s FILE…

chmod g-s FILE..

Sticky 位 (粘滞位)

作用:具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

作用对象:仅作用于目录,sticky 设置在文件上无意义

权限设定:

chmod o+t DIR…

chmod o-t DIR…

例如:

ls -ld /tmp

drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp

注:当文件夹、文件 SUID\SGID\STKCKET 显示为大写时,为错误状态

小写才是正常状态

chmod 777 /dir 未必可以除掉 s权限

应该改为: chmod 0777 /dir

特殊权限的数字法:

SUID SGID STICKY

000 0

001 1

010 2

011 3

100 4

101 5

110 6

111 7

eg: chmod 4777 /tmp/a.txt

权限位映射:

SUID: user,占据属主的执行权限位

s: 属主拥有x权限

S:属主没有x权限

SGID: group,占据属组的执行权限位

s: group拥有x权限

S: group没有x权限

Sticky: other,占据other的执行权限位

t: other拥有x权限

T: other没有x权限

注意:修改时,应注意是否需要先赋予x权限,后再追加s权限

设定文件的特定属性:

chattr +i 不能删除,改名,更改

chattr +a 只能增加

lsattr 显示特定属性

二、访问控制列表ACL

1.ACL

ACL: Access Control List,实现灵活的权限管理

功能:除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

ACL生效顺序:所有者,自定义用户,自定义组,其他人

2. ACL安装:

CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。

CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。

需手动增加:

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt

3. ACL 使用详解

命令:setfacl 设置ACL规则

getfacl  file|dir  获取文件、目录ACL列表

setfacl    设定文件访问控制列表

用法: setfacl [-bkndRLP] { -m|-M|-x|-X … } file …

-m, –modify=acl 更改文件的访问控制列表

u:username:rwx file/dir  用户

g:groupname:rwx file/dir  组

o:0 file/dir   其他

:0 指无任何权限

-M, –modify-file=file 从文件中读取访问控制列表条目来修改对应文件

-x, –remove=acl 根据文件中访问控制列表移除条目

-X, –remove-file=file 从文件读取访问控制列表条目并删除

-b, –remove-all 删除所有扩展访问控制列表条目

-k, –remove-default 移除默认访问控制列表

–set=acl 设定替换当前的文件访问控制列表

–set-file=file 从文件中读取访问控制列表条目设定

–mask 重新计算有效权限掩码

-n, –no-mask 不重新计算有效权限掩码

-d, –default 应用到默认访问控制列表的操作 (生效以后,目录中的任何新建文件也会赋予acl默认权限)

-R, –recursive 递归操作子目录

-L, –logical 依照系统逻辑,跟随符号链接

-P, –physical 依照自然逻辑,不跟随符号链接

–restore=file 恢复访问控制列表,和“getfacl -R”作用相反

–test 测试模式,并不真正修改访问控制列表属性

-v, –version           显示版本并退出

-h, –help              显示本帮助信息

使用示例:

mount -o acl /directory      挂载ACL,使指定目录的ACL临时生效,重启后失效

getfacl file |directory        查询ACL列表

setfacl -m u:wang:rwx file|directory   设定用户的指定权限

setfacl -Rm g:sales:rwX directory      递归设定组对目录以及其目录内文件的权限

setfacl -M file.acl file|directory 使用file.acl文件中的acl条目对file/dir进行acl修

改文件格式,参照getfacl得到的信息

setfacl -m g:salesgroup:rw file| directory   对指定组设定对某文件、目录的权限

setfacl -m d:u:wang:rx directory   对dir中的新建文件也赋予wang:rx权限

删除用户wang对file/dir的ACL条目

文件内容格式:u:username

g:groupname

o:

setfacl -X file.acl directory     删除dir上 file.acl 文件中对应的条目

4. ACL中的mask值

ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权限) ,除了所有者、

others ,其他人(属组、ACL添加的其他用户)的权限均不会高于此权限,受此权限的影响而非传统的组权限

            • getfacl 可看到特殊权限: flags
            • 默认ACL权限给了x,文件也不会继承x权限。
            • base ACL 不能删除
            • setfacl -k dir 删除默认ACL权限
            • setfacl -b file1清除所有ACL权限
            • getfacl file1 | setfacl –set-file=-  file2 复制file1的acl权限给file2

5.备份和恢复ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息

#getfacl -R /tmp/dir1 > acl.txt

#setfacl -R -b /tmp/dir1

#setfacl -R –set-file=acl.txt /tmp/dir1

#getfacl -R /tmp/dir1

时间: 2024-08-04 00:33:24

linux文件权限管理与ACL访问控制列表的相关文章

linux文件权限管理与ACL作业

一.Stream EDitor简介 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出. Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等. 二.用法详解 sed [option]- 'script' inputfile-

linux学习随笔——linux文件权限管理和网络配置

一.linux文件权限管理 查看某个文件的权限命令:ls -l linux文件权限有4种:读(r).写(w).执行(x)和无权限(-) 一般用10个字符表示其权限,按照(1-3-3-3)来分组划分 1位置 表示文件类型 "-"表示文件,"d"表示目录 2-4位 表示用户权限(u) 5-7位 表示组权限(g) 8-10  表示其他权限(o) 通常用chmod来修改权限:chmod     u+r 目标文件 也可以用数字来表示权限 r=4 w=2 x=1 chown命令

Linux文件权限管理

一.设置文件所属的用户以及所属的组(chown,chgrp) chgrp用来更改文件的组拥有者,其一般格式为: chgrp [option] group file (1)把文件test的组拥有者改为zfs: chgrp zfs test (2)把test及其子目录下的所有文件的组拥有者改为zfs: chgrp -R zfs test chown用来更改文件所有者与组拥有者,其一般格式为: chown [option] owner[:group] file (1)将test及其子目录下的所有文件的

Linux 文件权限管理

1.文件权限的概述 在Linux系统下,使用权限来保护资源的安全将是一种不错的选择.系统中每个文件的权限都有可读(r).可写(w)和可执行(x)这三种权限,它们分别对应权限数值4.2 和1.系统为每个文件和目录都设有默认的权限,每个文件中可分有拥有者(u).同群组的用户(g)和其他组用户(o). 文件的类型不同,权限就有所不同,虽然每个文件的权限都是 777,但在创建一个文件时,并没有看到该文件的权限是777,这是由于掩码的作用使得某些权限被屏蔽. 对于每个文件,其都由不同的信息组成,如图所示,

linux——文件权限管理

文件信息显示: 文件夹权限: w:无写权限,无法创建,删除文件 r:无读权限,无法列出文件列表,如果知道文件名,可以直接访问文件 x:无执行权限,无法切换到文件夹内,无法访问文件夹内文件,无法新增修改文件.如果有读权限,可以列出文件列表. 文件权限管理工具: chown 修改文件拥有者 chgrp 修改文件所属组 chmod 修改文件具体权限 模式法 chmod who opt per file.示例:chmod o-w f1.txt 减去其他用户的写入权限 who:u(所有者权限),g(所属组

《linux文件权限管理大总结》RHEL6

在linux系统下文件的权限通常会以下面的格式显示出来: Chmod文件权限: 权限的管理chmod -a  所有的权限 -u 文件所有者的权限 -g 组权限 -o 其他用户的权限 可以使用运算符来设置权限 + - = r  可读 w 可写 x 可执行 也可以用八进制的数字代表全权限:0 1 2 3 4 5 6 7 0     代表什么权限也没有 1     x 可执行的 2     w 可写的 3     w+x  wx 4     r 可读的 5     r+x 6     r+w 7   

Linux中权限管理之ACL权限

1.简介: a.作用: 是为了防止权限不够用的情况,一般的权限有所有者.所属组.其他人这三种,当这三种满足不了我们的需求的时候就可以使用ACL权限 b.故事背景: 一个老师,给一个班的学员上课,他在linux的根目录下面建立了一个文件夹,只允许本班级的学员对该目录进行读写执行操作,其他人都不行,这时该目录的权限一般是770(一般我们设置权限都是所有者的权限大于所属组的权限,所属组的权限大于其他人的权限,依次往下),此时有个同学想试听我们的课程,他们只有读和执行的权限,没有写的权限,那么此时该怎么

Linux 文件权限管理介绍

文件权限 2.文件权限 文件的权限主要针对三类对象进行定义 owner: 属主, u group: 属组, g other: 其他, o 每个文件针对每类访问者都定义了三种权限 r: Readable w: Writable x: eXcutable 文件: r: 可使用文件查看类工具获取其内容 w: 可修改其内容 x: 可以把此文件提请内核启动为一个进程 目录: r: 可以使用ls查看此目录中文件列表 w: 可在此目录中创建文件,也可删除此目录中的文件 x: 可以使用ls -l查看此目录中文件

Linux学习汇总——Linux用户组管理,文件权限管理,文本处理工具grep及egrep

本章Blog相关Linux相关知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户库:/etc/passwd ,密码库 :/etc/shadow,组库:/etc/group,组密码库:/etc/gshadow 加密方法:对称加密--加密和解密使用同一个密码,如DES,AES :公钥加密--每个密码都成对出现,一个公钥,一个私钥,如DSA,RSA:单向加密--常用于数据完整性校