“Linux文件目录的权限和归属”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
归属(所有权)
第1行: 第1行:
 +
==文件类型==
 +
===普通文件===
 +
===目录文件===
 +
===链接文件===
 +
===设备文件===
 
==访问权限==
 
==访问权限==
 
===读取===
 
===读取===
第39行: 第44行:
  
 
  <nowiki>$ ls -l afile
 
  <nowiki>$ ls -l afile
-rw-rw-r--  1 st01 class1 0 Apr  3 16:52 afile
+
-rw-r--r--  1 st01 class1 0 Apr  3 16:52 afile
增加文件属主st01的执行权限(x)
+
 
$ chmod u+x afile
+
将其更改为rwxrw-r--
去除文件属组class1的写权限(w)
+
 
$ chmod g-w afile
+
方法一:
设置属主权限为读写,属组其他用户的文件权限为读
+
 
$ chmod 644 afile</nowiki>
+
[root@cloud17 test]# chmod u=rwx,g=rw,o=r 1.txt
 +
 
 +
方法二:
 +
 
 +
[root@cloud17 test]# chmod u+x,g+w 2.txt
 +
 
 +
方法三:
 +
 
 +
[root@cloud17 test]# chmod 764 3.txt
 +
 
 +
[root@cloud17 test]# ls -l 2.txt 3.txt
 +
-rwxrw-r--. 1 root root 0 Jun 24 22:20 2.txt
 +
-rwxrw-r--. 1 root root 0 Jun 24 22:20 3.txt
 +
 
  
 
===设置文件/目录的归属===
 
===设置文件/目录的归属===
第65行: 第83行:
 
设置文件属主和属组
 
设置文件属主和属组
  
  <nowiki>设置文件afile的属主为用户st01
+
[root@cloud17 test]# ll -l
# chown st01 afile
+
 
设置文件afile的属组为用户组class1
+
  <nowiki>total 0
# chown :class1 afile
+
-rwxrw-r--. 1 root root 0 Jun 24 22:10 1.txt
设置文件afile的属主为st03,并设置文件的属组为class2
+
-rwxrw-r--. 1 root root 0 Jun 24 22:20 2.txt
# chown st03:class2 afile</nowiki>
+
-rwxrw-r--. 1 root root 0 Jun 24 22:20 3.txt
 +
</nowiki>
 +
 
 +
将文件的拥有者由root改为horse:
 +
 
 +
[root@cloud17 test]# chown horse *.txt
 +
 
 +
[root@cloud17 test]# ll -l
 +
 
 +
<nowiki>total 0
 +
-rwxrw-r--. 1 horse root 0 Jun 24 22:10 1.txt
 +
-rwxrw-r--. 1 horse root 0 Jun 24 22:20 2.txt
 +
-rwxrw-r--. 1 horse root 0 Jun 24 22:20 3.txt</nowiki>
 +
 
 +
将文件的拥有者和所属组设置为horse用户和horse组
 +
 
 +
[root@cloud17 test]# chown horse:horse *.txt
 +
 
 +
[root@cloud17 test]# ll -l
 +
 
 +
<nowiki>total 0
 +
-rwxrw-r--. 1 horse horse 0 Jun 24 22:10 1.txt
 +
-rwxrw-r--. 1 horse horse 0 Jun 24 22:20 2.txt
 +
-rwxrw-r--. 1 horse horse 0 Jun 24 22:20 3.txt</nowiki>
 +
 
 
   
 
   
 
==使用附加权限==
 
==使用附加权限==
第110行: 第152行:
  
 
使用权限数字:
 
使用权限数字:
 +
 
  chmod  mnnn  可执行文件...
 
  chmod  mnnn  可执行文件...
 +
 
  m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加
 
  m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加
 +
 
文件ACL权限
 
文件ACL权限
 +
 
ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。
 
ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。
 +
 
ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。
 
ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。
 +
 
ACL 主要可以针对以下方面来控制权限:
 
ACL 主要可以针对以下方面来控制权限:
 +
 
使用者 (user):可以针对使用者来设定权限;
 
使用者 (user):可以针对使用者来设定权限;
 +
 
组群 (group):针对用户组为对象来设定其权限;  
 
组群 (group):针对用户组为对象来设定其权限;  
 +
 
预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限
 
预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限
 +
  
 
管理文件系统访问控制列表�
 
管理文件系统访问控制列表�
第130行: 第182行:
  
 
实验案例:用户和文件权限管理
 
实验案例:用户和文件权限管理
 +
 
需求描述
 
需求描述
 +
 
将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组  
 
将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组  
 +
 
设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)
 
设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)
 +
 
完成后,分别运行lab-grade-3和lab-grade-14评估脚本以确定一切已正确完成。
 
完成后,分别运行lab-grade-3和lab-grade-14评估脚本以确定一切已正确完成。

2018年6月25日 (一) 13:40的版本

文件类型

普通文件

目录文件

链接文件

设备文件

访问权限

读取

读取:允许查看文件内容、显示目录列表

写入

写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行

可执行:允许运行程序、切换目录

归属(所有权)

属主

属主:拥有该文件或目录的用户帐号

属组

属组:拥有该文件或目录的组帐号

查看文件/目录的权限和归属

Linux2-4.png

设置文件/目录的权限

chmod命令

格式1:chmod [ugoa] [+-=] [rwx] 文件或目录...

  • u、g、o、a 分别表示属主、属组、其他用户、所有用户
  • +、-、= 分别表示增加、去除、设置权限

格式2:chmod nnn 文件或目录...

  • nnn:3位八进制数

常用命令选项

-R:递归修改指定目录下所有文件、子目录的权限


文件权限设置实例

使用chmod命令设置文件权限

查看文件权限

$ ls -l afile
-rw-r--r--  1 st01 class1 0 Apr  3 16:52 afile

将其更改为rwxrw-r--

方法一:

 [root@cloud17 test]# chmod u=rwx,g=rw,o=r 1.txt

方法二:

 [root@cloud17 test]# chmod u+x,g+w 2.txt

方法三:

 [root@cloud17 test]# chmod 764 3.txt

[root@cloud17 test]# ls -l 2.txt 3.txt
-rwxrw-r--. 1 root root 0 Jun 24 22:20 2.txt
-rwxrw-r--. 1 root root 0 Jun 24 22:20 3.txt


===设置文件/目录的归属===

chown命令用于设置文件的属主和属组

命令格式
chown OWNER[:[GROUP]] FILE... 
格式:

 <nowiki>chown  属主   文件或目录
chown  :属组  文件或目录
chown  属主:属组  文件或目录

常用命令选项

-R:递归修改指定目录下所有文件、子目录的归属

设置文件属主和属组

[root@cloud17 test]# ll -l

total 0
-rwxrw-r--. 1 root root 0 Jun 24 22:10 1.txt
-rwxrw-r--. 1 root root 0 Jun 24 22:20 2.txt
-rwxrw-r--. 1 root root 0 Jun 24 22:20 3.txt

将文件的拥有者由root改为horse:

[root@cloud17 test]# chown horse *.txt

[root@cloud17 test]# ll -l

total 0
-rwxrw-r--. 1 horse root 0 Jun 24 22:10 1.txt
-rwxrw-r--. 1 horse root 0 Jun 24 22:20 2.txt
-rwxrw-r--. 1 horse root 0 Jun 24 22:20 3.txt

将文件的拥有者和所属组设置为horse用户和horse组

[root@cloud17 test]# chown horse:horse *.txt

[root@cloud17 test]# ll -l

total 0
-rwxrw-r--. 1 horse horse 0 Jun 24 22:10 1.txt
-rwxrw-r--. 1 horse horse 0 Jun 24 22:20 2.txt
-rwxrw-r--. 1 horse horse 0 Jun 24 22:20 3.txt


使用附加权限

SET位权限

主要用途:

为可执行(有 x 权限的)文件设置,权限字符为“s”
其他用户执行该文件时,将拥有属主或属组用户的权限

SET位权限类型:

SUID:表示对属主用户增加SET位权限
SGID:表示对属组内的用户增加SET位权限
如果SGID是设定在目录上面,则在该目录内所建立的文件或目录的所属组,将会自动成为此目录的所属组。
[root@localhost ~]# ls -l /home/cnrts
-rw-rwsr-x 1 harry root 19876 2008-07-17 /home/cnrts

粘滞位权限(Sticky)

主要用途:

为公共目录(例如,权限为777的)设置,权限字符为“t”
用户不能删除该目录中其他用户的文件

应用示例:/tmp、/var/tmp

[root@localhost ~]# ls  -ld  /tmp   /var/tmp
drwxrwxrwt 8 root root 4096 09-09 15:07 /tmp
drwxrwxrwt 2 root root 4096 09-09 07:00 /var/tmp

使用附加权限

  • 设置SET位、粘滞位权限
  • 使用权限字符
    • chmod ug±s 可执行文件...
    • chmod o±t 目录名...

使用权限数字:

chmod  mnnn  可执行文件...
m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加

文件ACL权限

ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。

ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。

ACL 主要可以针对以下方面来控制权限:

使用者 (user):可以针对使用者来设定权限;

组群 (group):针对用户组为对象来设定其权限;

预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限


管理文件系统访问控制列表� 查看:

  		$ getfacl filename 

修改 : $ setfacl -m u:username:rw filename $ setfacl -m g:groupname:rw filename 删除 : $ setfacl -x u:username filename

实验案例:用户和文件权限管理

需求描述

将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组

设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)

完成后,分别运行lab-grade-3和lab-grade-14评估脚本以确定一切已正确完成。