首页 > 其他分享 >文件权限

文件权限

时间:2023-11-15 20:34:45浏览次数:26  
标签:文件 权限 file txt root localhost

一、基本权限UGO

1.基本介绍

(1)U:owner,属组

用户(User) :这是文件或目录的所有者,拥有最高的控制权。用户可以读取、写入和执行文件,也可以修改它们的权限。例如,如果一个文件的属主是Alice,那么Alice可以读取、写入和执行这个文件。

         G:group,属组

组(Group) :组权限适用于文件或目录的所属组。通常,多个用户分配到相同的组,这样他们可以共享访问权限。组权限允许组成员读取、写入和执行文件。例如,如果一个文件的属组是Engineering,那么Engineering组的所有用户都可以读取、写入和执行这个文件。

         O:other,其他用户

其他(Others) :这是除用户和组之外的其他所有人。其他人权限适用于系统中的所有用户,不管他们是否与文件或目录有关。例如,如果一个文件的权限设置为rwXxr--r-- (其中"rwx" 表示属主有读、写和执行权限,"--" 表示属组有读和执行权限,"--" 表示其他人有读和执行权限),那么除了属主之外的其他用户只有读和执行权限。

(2)当使用ll命令查看文件属性时,第一行的第2~10个字符每3个字符为一组,左边3个表示属主的权限,中间3个字符表示属组的权限,右边3个字符是表示其他用户的权限。每组的3个字符都有其具体含义,如下:

r:read(读取),数字设定:4;

w:write(写入),数字设定:2;

X:execute(执行),数字设定:1。

(3)具体示例:

[root@localhost ~]# ll file01
-rw-r--r--. 1 root root 0 10月 25 14:57 file01

在这段信息中,owner的权限为“rw--”(读取与写入),数字可以表示为4+2=6;group的权限为“r--”(读取),数字可以表示为4;other的权限为“r--”(读取),数字可以表示为4.

 

2.设置文件属性与权限

(1)chown命令:用于更改文件或目录的所有者和所属组

语法格式:

chown [选项] 所有者 文件/目录

参数设置:

-R:递归地更改所属组(将某目录或文件同时修改属主或属组)

-v:显示详细信息

[root@localhost ~]# ls
aba              file01      file03.txt            qf.txt    视频  音乐
anaconda-ks.cfg  file01.txt  file04.txt            user.txt  图片  桌面
ciji.txt         file02      initial-setup-ks.cfg  公共      文档
date.txt         file02.txt  list.txt              模板      下载
[root@localhost ~]# ll file01
-rw-r--r--. 1 root root 0 10月 25 14:57 file01
[root@localhost ~]# chown ciji file01
[root@localhost ~]# ll file01
-rw-r--r--. 1 ciji root 0 10月 25 14:57 file01
chown命令仅修改文件属主
[root@localhost ~]# chown ciji.linux file01
[root@localhost ~]# ll file01
-rw-r--r--. 1 ciji linux 0 10月 25 14:57 file01
chown命令同时修改文件属主和数组

注意:当使用chown命令同时修改文件属主和属组时,需要在属主和属组之间加入“.”或“:”,一般建议加“:”,以免因属主名称含有“."造成系统误判。

(2)chgry命令:用于更改文件或目录所属组

语法格式:

chgry [选项] 组名 文件/目录

[root@localhost ~]# chgrp linux file01
[root@localhost ~]# ll file01
-rw-r--r--. 1 ciji linux 0 10月 25 14:57 file01
chgrp命令仅改变文件属组

(3)chmod命令:用于更改文件或目录权限

chmod [选项] 权限 文件/目录

命令 对象 赋值符 权限类型 目标文件
chmod u +  -  = r  w  x file
g
o
a(全部)
[root@localhost ~]# touch file
[root@localhost ~]# ll file
-rw-r--r--. 1 root root 0 11月 14 22:07 file
[root@localhost ~]# chmod u+x,g+w file
[root@localhost ~]# ll file
-rwxrw-r--. 1 root root 0 11月 14 22:07 file
使用chmod命令以符号”+“修改文件权限
[root@localhost ~]# ll file
-rwxrw-r--. 1 root root 0 11月 14 22:07 file
[root@localhost ~]# chmod u-wx,g-w file
[root@localhost ~]# ll file
-r--r--r--. 1 root root 0 11月 14 22:07 file
使用chmod命令以符号“-”修改文件权限
[root@localhost ~]# ll file
-r--r--r--. 1 root root 0 11月 14 22:07 file
[root@localhost ~]# chmod u=rw,g=rw,o=rw file
[root@localhost ~]# ll file
-rw-rw-rw-. 1 root root 0 11月 14 22:07 file
使用chmod命令以符号“=”修改文件权限
[root@localhost ~]# ll file
-rw-rw-rw-. 1 root root 0 11月 14 22:07 file
[root@localhost ~]# chmod 742 file
[root@localhost ~]# ll file
-rwxr---w-. 1 root root 0 11月 14 22:07 file
使用chmod命令以数字修改文件权限
示例一:
[root@localhost ~]# ll file
-rwxr---w-. 1 root root 0 11月 14 22:07 file
[root@localhost ~]# chmod a=- file
[root@localhost ~]# ll file
----------. 1 root root 0 11月 14 22:07 file


示例二:
[root@localhost ~]# ll file
-rwxr---w-. 1 root root 0 11月 14 22:07 file
[root@localhost ~]# chmod 000 file
[root@localhost ~]# ll file
----------. 1 root root 0 11月 14 22:07 file
删除所有对象权限

3.基本权限的意义

权限 对文件的影响 对目录的影响
r(读取) 可读取文件内容 可列出目录的内容(文件名)
w(写入) 可修改文件内容 可创建或删除目录中的任一文件
x(执行) 可将文件作为命令执行 可访问目录的内容(取决于目录中文件的权限)

 

二、基本权限ACL

1.ACL基本用法

(1)在Linux中,ACL (Access ControlList)是一种权限管理机制,它提供了更加灵活的权限控制方式,可以用于限制用户、进程或设备对文件或目录的访问权限。

(2)getfacl命令:用于取得某个文件或目录的ACL权限(查看ACL权限)

[root@localhost ~]# touch /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@localhost ~]# ll /home/test.txt
-rw-r--r--. 1 root root 0 11月 15 18:50 /home/test.txt
getfacl命令查看文件ACL权限

(3)setfacl命令:用于设置某个文件或目录的ACL权限(设置ACL权限)

参数设置:

-m:修改当前文件ACL权限

-x:删除用户对文件的所有权限

-b:删除所有扩展ACL权限,回到UGO的基本权限

[root@localhost ~]# ll /home/test.txt
-rw-r--r--. 1 root root 0 11月 15 18:50 /home/test.txt
[root@localhost ~]# setfacl -m u:ciji:rw /home/test.txt
[root@localhost ~]# ll /home/test.txt
-rw-rw-r--+ 1 root root 0 11月 15 18:50 /home/test.txt
setfacl -m
[root@localhost ~]# ll /home/test.txt
-rw-rw-r--+ 1 root root 0 11月 15 18:50 /home/test.txt
[root@localhost ~]# setfacl -x u:ciji /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
setfacl -x
[root@localhost ~]# setfacl -b /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@localhost ~]# ll /home/test.txt
-rw-r--r--. 1 root root 0 11月 15 18:50 /home/test.txt
setfacl -b

 

2.ACL高级特性

 最大有效权限mask

(1)mask是用来指定最高有效权限的。系统给用户赋予ACL权限需要和mask的权限逻辑“相与”,“相与”之后的权限才是得到用户的真正权限。

(2)mask只影响除所有者和other之外的人和组的最大权限,mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限。

(3)mask能临时降低用户或组的权限,而不是如serfacl -d 命令去除所有权限。

 

继承default

(1)继承(default)权限是指ACL中的一种规则,它允许用户或组对目录中的所有文件继承权限。

(2)在默认情况下,新创建的文件会继承所在目录的权限设置。如果目录没有设置ACL规则,则新文件将继承目录的默认权限;如果目录设置了ACL规则,则新文件将继承的目录的ACL规则。

(3)default是在设置初始文件时赋予他们默认的权限,是做“减法”,通过文件的最大权限减去umask的值就是文件初始的权限的值,也可以叫做权限的“补码”。

(4)继承(default)权限可以应用于多个用户或组,使用setfacl可以设置目录的默认权限。

(5)继承default权限可以方便地设置目录及其下文件的权限,使不同的用户或组能够根据需要进行访问控制。

 

三、高级权限

1.SUID权限

(1)SUID权限是一种特殊的文件权限,它允许用户在执行程序时暂时获得文件所有者的权限。

(2)当用户执行一一个具有SUID权限的程序时,该程序的进程将获得文件所有者的用户ID (UID) ,而不是执行该程序的用户的UID。这意味着进程可以以文件所有者的身份执行操作。

(3)SUID权限通常用于关键任务或需要特殊权限的应用程序,例如root权限或特权用户。

(4)需要注意的是,SUID权限只能用于可执行文件,并且只有文件所有者才能设置SUID权限。

(5)普通用户可以通过SUID用户提权,使用chmod命令为某用户增加SUID权限。

[root@localhost ~]# chmod u+s /usr/bin/cat
[root@localhost ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54080 11月 17 2020 /usr/bin/cat
示例

 

2.SGID权限

(1)SGID权限是一种特殊的文件权限,它允许用户在执行程序时暂时获得文件所属组的权限。

(2)当用户执行一个具有SGID权限的程序时,该程序的进程将获得文件所属组的组ID (GID),而不是执行该程序的用户的GID。这意味着进程可以以文件所属组的身份执行操作。

(3)SGID权限通常用于需要以特定组的身份执行操作的应用程序或脚本。类似于SUID权限,SGID权限也只能用于可执行文件,并且只有文件所有者才能设置SGID权限。

3.Sticky权限

(1)Sticky权限是一种特殊的文件权限,它允许用户在执行程序时保持进程的所有权。

(2)当用户执行一个具有Sticky权限的程序时,该程序的进程将保持其所有权,即使程序已经退出。这意味着其他用户无法修改或删除该进程创建的文件或资源。

(3)Sticky权限通常用于需要保护进程创建的资源不被其他用户随意修改或删除的情况。

(4)Sticky权限通常只应用于目录,并且只有文件所有者才能设置Sticky权限。当目录具有Sticky权限时,只有目录的所有者才能删除该目录中的文件。

 

 

4.高级权限用法总结表

高级权限 数字符号 文件 目录
   SUID       4 以属主身份执行  
   SGID       2 以属组身份执行 继承属组
   Sticky       1   用户只能删除自己的文件

 

 

 

四、文件属性chattr

(1)chattr是一个用于修改文件系统属性的命令,只有root用户才能使用。chattr命令的格式为: chattr[+-=][选项]文件或目录名。
(2)chattr支持的选项主要有两种,i和a。
   如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据。如果对目录设置属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
   如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据。如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。
(3)chattr命令也支持对文件系统中的文件进行隐藏设置,设置之后除非是root用户或者使用特殊的查看命令否则无法直接看到被隐藏的文件或目录。

 

五、进程掩码umask

 (1)umask的主要作用是定义新创建的文件或目录的初始权限。在默认情况下,新创建的文件或目录的权限为666 (对于文件)或777 (对于目录)。然而,通过设置umask值, 可以修改这些默认权限。

(2)umask的值是一个八进制的数字,每个数字代表一个权限位。其中,0代表没有权限,1代表执行权限,2代表写权限,4代表读权限。因此,umask的值可以表示为一系列数字的组合,每个数字对应一个权限位。例如,umask值为022表示没有写权限(其他用户), 执行和读权限不受限制(对于文件来说,这意味着其他用户可以查看文件内容但不能修改它)。

(3)要查看当前的umask值,可以在终端中输入umask命令。要修改umask值,可以在umask命令后面加上新的值。例如,要将umask值设置为022,可以输入umask 022。

(4)umask的值是在shell启动时读取和设置的。因此,每次打开一个新的shell时,都会重新读取和设置umask值。此外,umask命令只影响新创建的文件或目录的权限,不会修改现有文件或目录的权限。

标签:文件,权限,file,txt,root,localhost
From: https://www.cnblogs.com/Antler-Bi8bo/p/17816089.html

相关文章

  • windows bat批处理 hack小工具的文件编写(除了library要自己调整外都可以用)
    @echooffcolor0Amodeconcols=1500lines=1500mshtavbscript:msgbox("welcometothe江南的江万能工具箱")(window.close)title"hackjiang":HACKclsecho[][][][][][][][][][][][][][][][][][][][][]......
  • Excel文件导入
    前端<divclass="panel-body"><spanclass="glyphiconglyphicon-th-list"aria-hidden="true"></span>批量上传</div>后端defdepart_multi(request): '''导入Excel文件''......
  • 文件上传
    前端<divclass="container"><formaction=""method="post"enctype="multipart/form-data">{%csrf_token%}<inputtype="text"name="username"><inp......
  • vue 实现文件切片上传
    在实际开发项目过程中有时候需要上传比较大的文件,然后呢,上传的时候相对来说就会慢一些,so,后台可能会要求前端进行文件切片上传,很简单哈,就是把比如说1个G的文件流切割成若干个小的文件流,然后分别请求接口传递这个小的文件流。流程简说实现文件切片导入,首先我们使用elementUI也好,......
  • 文件权限
    引言在Linux系统中,文件权限是保护文件安全性的重要机制之一。正确地设置文件权限可以确保只有授权用户能够访问文件,从而保障系统的安全性。本文将深入探讨Linux中文件权限的各个方面,包括基本权限UGO、基本权限ACL、高级权限、文件属性chattr以及进程掩码umask。1.基本权限UGOL......
  • 文件管理
    导言在Linux系统中,文件管理是使用者和系统交互的核心。本文将带你深入了解Linux文件管理的方方面面,包括文件目录与路径、目录与文件的操作技巧、Vim编辑器的基本用法、文件时间的概念以及文件类型的辨别。1.文件目录与路径文件系统中的目录结构是Linux文件管理的基石。......
  • MIME类型介绍及常见文件对应关系
    MIME(MultipurposeInternetMailExtensions)类型是一种用于描述消息内容的格式。它的目的是为了让不同类型的应用程序之间能够互相传输和处理消息。MIME类型通常由两部分组成:一部分是主类型(如文本、图像、音频、视频等),另一部分是子类型(如纯文本、JPEG图像、MP3音频等),两者之间用斜杠......
  • 目录与文件操作
      目录操作包括创建目录,查看目录,切换目录,删除目录等创建目录创建一个空白目录:mkdirabc创建多层目录:mkdir-paba/abb/abc查看目录查看绝对路径:pwd查看实际工作目录:pwd-p查看隐藏目录与文件:ls-a查看目录与文件的属性:ls-l切换目录cd返回上级目录:cd-......
  • Linux文件管理详解
    Linux文件系统的体系结构
Linux文件系统采用层次结构,从根目录(/)开始,包含多个子目录和文件。文件系统之间通过虚拟文件系统(VFS)进行通信,VFS使得Linux可以支持多个不同的文件系统,每个表示一个VFS的通用接口。Linux文件系统组成
Linux文件系统主要由以下几部分组成:1. 文件:文件是存......
  • Linux文件权限管理详解
    Linux文件权限表示方式
在Linux系统中,文件权限使用数字表示法,每组权限用三位二进制数表示,分别为文件所有者的读、写和执行权限;和所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
例如,一个文件的权限为755,表示文件所有者具有读、写、执行权限(7),同组用户具......