首页 > 其他 > 详细

25.文件系统管理-chown+chgrp+chmod+setfacl+getfacl

时间:2020-12-23 12:49:39      阅读:23      评论:0      收藏:0      [点我收藏+]

文件系统基本权限管理

权限的作用

通过对文件设定权限,可以达到三种访问限制权限:

  1. 只允许用户自己访问
  2. 允许一个预先指定的用户组中的用户访问
  3. 允许系统中的任何用户访问

 

查看权限

查看某个文件的权限

[root@localhost Desktop]# ll aaa.txt

-rw-r--r-- 1 root root 4 Dec  3 11:00 aaa.txt

 

权限的解释:

-

rwx

r-x

r-x

user1

user1

time

FILENAME

文件类型

拥有者的权限

所属组的权限

其他人的权限

拥有者

属组

最后修改时间

对象

 

文件类型

p:表示命名管道文件

d:表示目录文件

l:表示普通文件

-:表示普通文件

s:表示socket套接口文件(启用mysql时,产生的mysql.sock文件就是套接口文件)

c:表示字符设备文件(tty0 或 虚拟控制台)

b:表示块设备文件(sda,cdrom)

 

权限说明

对于文件来说:

r:读

w:写

x:执行

 

对于目录来说:

r:读(看到目录里面有什么)   ls

w:在目录里面建文件,删除,移动  touch mkdir  rm  mv cp

x:进入 cd cat

 

文件拥有者

U:所有者,就是创建文件的用户。这个用户拥有对它创建的文件的一切权限,所有者可以允许其所在的用户组可以访问所有者的文件。

G:用户组,用户组是具有相同特征用户的逻辑集合。有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组。

O:其他用户,系统内的其他所有者用户就是other用户类。

 

注意:

以什么用户身份登录,此时创建的目录或文件,自动拥有该文件的属主和属组。

 

修改权限

chown

用来修改文件或目录的属主/属组

 

创建测试环境

[root@localhost home]# useradd wangbin

[root@localhost home]# groupadd changmengka

[root@localhost Desktop]# touch test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 08:57 test.txt

chown 属主:属组 文件/目录名

把文件或目录的属主改为wangbin用户、属组改为changmengka这个组

[root@localhost Desktop]# chown wangbin:changmengka test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 wangbin changmengka 0 Dec  4 09:00 test.txt

 

chowm 属主 文件/目录名

把文件或目录的属主改为wangbin这个用户

[root@localhost Desktop]# chown wangbin test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 wangbin root 0 Dec  4 09:02 test.txt

 

chown :属组 文件/目录名

把文件或目录的属组改为changmengka这个组

[root@localhost Desktop]# chown :changmengka test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root changmengka 0 Dec  4 09:04 test.txt

 

chown 属主: 文件/目录名

自动继承wangbin这个用户的所有组

[root@localhost Desktop]# chown wangbin: test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 wangbin wangbin 0 Dec  4 09:09 test.txt

 

chgrp

用来修改文件或目录的属组

参数:

-R:递归,目录下的所有内容都更改,没有递归参数只修改目录

[root@localhost Desktop]# chgrp changmengka test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 wangbin changmengka 0 Dec  4 09:09 test.txt

 

chmod

用来修改文件/目录的权限

语法:chmod 操作对象 操作符 赋予的权限 文件/目录

 

操作对象

u:表示用户,文件或目录的所有者

g:表示用户组,文件或目录的所属用户组

o:表示其他用户

a:表示所有用户

 

操作符

+:表示添加权限

-:表示减少权限

=:表示给定权限

 

赋予的权限

r:表示读
w:表示写

x:表示执行

 

举例

[root@localhost Desktop]# touch test{1..5}.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 09:34 test1.txt

-rw-r--r-- 1 root root 0 Dec  4 09:34 test2.txt

-rw-r--r-- 1 root root 0 Dec  4 09:34 test3.txt

 

u-w:

[root@localhost Desktop]# chmod u-w test1.txt

[root@localhost Desktop]# ll test1.txt

-r--r--r-- 1 root root 0 Dec  4 09:34 test1.txt

 

g+x:

[root@localhost Desktop]# chmod g+x test2.txt

[root@localhost Desktop]# ll test2.txt

-rw-r-xr-- 1 root root 0 Dec  4 09:34 test2.txt

 

a=rwx:

[root@localhost Desktop]# chmod a=rwx test3.txt

[root@localhost Desktop]# ll test3.txt

-rwxrwxrwx 1 root root 0 Dec  4 09:34 test3.txt

 

进制表示权限

权限

二进制值

八进制值

描述

---

000

0

没有任何权限

--x

001

1

只有执行权限

-w-

010

2

只有写入权限

-wx

011

3

有写入和执行权限

r--

100

4

只有读取权限

r-x

101

5

有读取和执行权限

rw-

110

6

有读取和写入权限

rwx

111

7

有全部权限

 

 技术分享图片

 

 

 

[root@localhost Desktop]# touch test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 09:43 test.txt

 

举例

如果一个文件权限如(-rwx-wxr-x)那么他的二进制与八进制计算如下:

二进制:

rwx:111;-wx:011;r-x:101;表示结果:111011101

八进制:

rwx:7;-wx:3;r-x:5;表示结果:735

 

赋予权限

[root@localhost Desktop]# touch test.txt

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 09:43 test.txt

 

[root@localhost Desktop]# chmod 735 test.txt

[root@localhost Desktop]# ll

total 0

-rwx-wxr-x 1 root root 0 Dec  4 09:43 test.txt

 

权限的影响

权限有读取、写入、执行三种,这些权限对访问文件或目录的影响如下:

权限

对文件的影响

对目录的影响

r(读取)

可以读取文件的内容

可以列出目录的内容(文件名)

w(写入)

可以更改文件的内容

可以创建或删除目录中的任意文件

x(执行)

可以作为命令执行文件

可以访问目录的内容(取决于目录中文件的权限)

 

文件系统高级权限管理

SUID、SGID、Stickybit

文件的特殊权限有3种:

SUID:设置用户ID。限定:只能设置在二进制可执行程序上面,对目录设置无效;功能:程序运行时的权限从执行者变更成程序所有者的权限。

SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置。功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的所属组

Stickybit:粘滞位权限。它是针对目录的,对文件无效,也叫防删除位。

 

三种特殊权限对应的值

SUID

SGID

Stickybit

u+su=4

g+sg=2

o+to=1

 

设置SUID

chmod u+s 路径/文件

[root@localhost Desktop]# ll

total 0

-rwx-wxr-x 1 root root 0 Dec  4 09:43 test.txt

[root@localhost Desktop]# chmod u+s test.txt

[root@localhost Desktop]# ll

total 0

-rws-wxr-x 1 root root 0 Dec  4 09:43 test.txt

 

chmod 4755 路径/文件

SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID属性。

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 11:57 test2.txt

[root@localhost Desktop]# chmod 4755 test2.txt

[root@localhost Desktop]# ll

total 0

-rwsr-xr-x 1 root root 0 Dec  4 11:57 test2.txt

 

设置SGID

限定:既可以给二进制可执行程序设置,也可以给目录设置。

功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。

 

chmod g+s 路径/文件

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 13:11 test.txt

[root@localhost Desktop]# chmod g+s test.txt

[root@localhost Desktop]# ll

total 0

-rw-r-Sr-- 1 root root 0 Dec  4 13:11 test.txt

[root@localhost Desktop]#

 

chmod 2755 路径/文件

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 13:14 test.txt

[root@localhost Desktop]# chmod 2755 test.txt

[root@localhost Desktop]# ll

total 0

-rwxr-sr-x 1 root root 0 Dec  4 13:14 test.txt

 

设置Stickybit

限定:只作用于目录

功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除。

 

chmod o+t 路径/文件

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 13:17 test

[root@localhost Desktop]# chmod o+t test

[root@localhost Desktop]# ll

total 0

-rw-r--r-T 1 root root 0 Dec  4 13:17 test

 

chmod 1755 路径/文件

[root@localhost Desktop]# ll

total 0

-rw-r--r-- 1 root root 0 Dec  4 13:18 test

[root@localhost Desktop]# chmod 1755 test

[root@localhost Desktop]# ll

total 0

-rwxr-xr-t 1 root root 0 Dec  4 13:18 test

 

文件扩展权限ACL

getfacl 目录/文件

查看文件或目录的ACL权限

[root@localhost Desktop]# getfacl test.sh

# file: test.sh

# owner: root

# group: root

user::rw-

group::r--

other::r—

 

setfacl -m u:用户名:赋予权限 目录/文件

设置某个用户对此文件拥有什么权限

[root@localhost Desktop]# setfacl -m u:wangbin:rwx test.sh 

[root@localhost Desktop]# getfacl test.sh

# file: test.sh

# owner: root

# group: root

user::rw-

user:wangbin:rwx

group::r--

mask::rwx

other::r—

 

setfacl -m g:用户名:赋予权限 目录/文件

设置某个用户组对此文件拥有什么权限

[root@localhost Desktop]# setfacl -m g:changmengka:rw- test.sh 

[root@localhost Desktop]# getfacl test.sh

# file: test.sh

# owner: root

# group: root

user::rw-

user:wangbin:rwx

group::r--

group:changmengka:rw-

mask::rwx

other::r—

 

setfacl -o:其他用户:赋予权限 目录/文件

设置某个其他用户对此文件拥有什么权限

[root@localhost Desktop]# setfacl -m o::rwx test.sh    

[root@localhost Desktop]# getfacl test.sh

# file: test.sh

# owner: root

# group: root

user::rw-

user:wangbin:rwx

group::r--

group:changmengka:rw-

mask::rwx

other::rwx

 

setfacl -m:mask用户:赋予权限 目录/文件

设置某个mask用户对此文件拥有什么权限

[root@localhost Desktop]# setfacl -m m::rwx test.sh 

[root@localhost Desktop]# getfacl test.sh

# file: test.sh

# owner: root

# group: root

user::rw-

user:wangbin:rwx

group::r--

group:changmengka:rw-

mask::rwx

other::rwx

 

setfacl –m d:u/g/o/m:用户名:赋予权限 目录

此目录下新建的目录或文件都继承此ACL的权限

[root@localhost Desktop]# setfacl -m d:u:wang:rwx dir_file/

[root@localhost Desktop]# getfacl dir_file/               

# file: dir_file/

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:user:wang:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

 

展示:

[root@localhost Desktop]# cd dir_file/

[root@localhost dir_file]# touch test_inner.txt

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

user:wang:rwx                   #effective:rw-

group::r-x                      #effective:r--

mask::rw-

other::r—

 

setfacl –R –m u/g/o/m:用户名:赋予权限 路径/文件

-R一定要在-m之前,这样表示目录下所有文件都拥有这用ACL权限

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

user:wang:rwx                   #effective:rw-

group::r-x                      #effective:r--

mask::rw-

other::r--

 

[root@localhost dir_file]# setfacl -R -m u:wang:r-x test_inner.txt

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

user:wang:r-x

group::r-x

mask::r-x

other::r—

 

setfacl -b路径/文件

去文件中掉所有的ACL权限

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

user:wang:r-x

group::r-x

mask::r-x

other::r--

 

[root@localhost dir_file]# setfacl -b test_inner.txt

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

group::r-x

other::r—

 

setfacl –x u/g/o/m:用户名 路径/文件

去掉文件中某个用户的ACL权限

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

user:wang:rwx

group::r-x

mask::rwx

other::r--

 

[root@localhost dir_file]# setfacl -x u:wang test_inner.txt

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

group::r-x

mask::r-x

other::r—

 

附例:

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

group::r-x

group:changmengka:rwx

mask::rwx

other::r--

 

[root@localhost dir_file]# setfacl -x g:changmengka test_inner.txt

[root@localhost dir_file]# getfacl test_inner.txt

# file: test_inner.txt

# owner: root

# group: root

user::rw-

group::r-x

mask::r-x

other::r—

 

注意:在写命令时,u对应用户名;g对应用户组;o对应其他用户;m对应mask用户

 

25.文件系统管理-chown+chgrp+chmod+setfacl+getfacl

原文:https://www.cnblogs.com/ai-fei-ai/p/14177423.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!