Bootstrap

5.2 shell处理文件权限

1.使用文件权限符

1.1 权限符号含义:

1

2

3

4

5

6

7

8

9

10

 

-

r

w

x

r

w

x

r

-

x

对象类型

1

对象的

属主

2

对象的

属组

3

系统其他

用户

八进制码

7

7

5

二进制码

1

1

1

1

1

1

1

0

1

 

第1个符号的种类:代表了对象的类型

符号

含义

1

-

代表文件

2

d

代表目录

3

l

代表链接

4

c

代表字符型设备

5

b

代表块设备

6

n

代表网络设备

之后跟了3组字符的编码,每一组定义了3种访问权限:

符号

含义

1

r

代表对象是可读的

2

w

代表对象是可写的

3

x

代表对象是可执行的

4

-

代表没有该位置上的权限

1.2 默认文件权限:

umask命令用来设置所创建文件和目录的默认权限。

Linux文件权限码:

权限

二进制码

八进制码

描述

1

---

000

0

没有任何权限

2

--x

001

1

只有执行权限

3

-w-

010

2

只有写入权限

4

-wx

011

3

有写入和执行的权限

5

r--

100

4

只有读取权限

6

r-x

101

5

有读取和执行的权限

7

rw-

110

6

有读取和写入的权限

8

rwx

111

7

有全部权限

2.改变安全性设置

2.1改变权限

命令:chmod

格式:chomd  options mode file

mode参数一般用八进制码进行安全性设置:

如:chmod  760 newfile

options参数为chmod命令提供了另外一些功能:

如:‘-R’选项可以让权限的改变递归的作用到文件和子目录。

2.2 改变所属关系

 即改变文件的属主。

命令:

  • chown:改变文件的属主;
  • chgrp:改变文件的默认属组;

chown命令:

格式:chown  options  owner[.group]  file

可用登录名或UID来指定文件的新属主。

如:chown dan newfile

chown 命令还支持同时改变文件的属主和属组:

 chown   dan.shared  newfile

‘-R’参数配合通配符可以递归地改变子目录和文件的所属关系;

‘-h’参数可以改变该文件的所有符号链接文件的所属关系;

 chgrp命令:

修改文件或目录的默认属组。

如: chgrp shared newfile

3.共享文件

Linux系统上共享文件的方法是创建组。

Linux还为每个文件和目录存储了3个额外的信息位:

  • 设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行;
  • 设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组;
  • 粘着位:进程结束后文件还驻留(粘着)在内存中;

其中SGID位对文件共享特别重要,启用SGID位后,可以强制在一个共享目录下创建的新文件都属于该目录的属组,这个组也就成为了每个用户的属组。

SGID可以通过chmod命令设置,它会加到标准3位八进制值之前(组成4位八进制值)。

chmod命令中SUID,SGID和粘着位的八进制值:

二进制

八进制

描述

1

000

0

所有位都清零

2

001

1

粘着位置位

3

010

2

SGID为置位

4

011

3

SGID和粘着位置位

5

100

4

SUID位置位

6

101

5

SUID和粘着位置位

7

110

6

SUID和SGID位置位

8

111

7

所有位都置位

;