首页 > 系统相关 >Linux文件权限

Linux文件权限

时间:2023-11-26 18:57:55浏览次数:38  
标签:文件 用户 acl Linux 权限 属组 目录

1 基本权限UGO

U:owner,属主

G:group,属组

O:other,其他用户

用户对文件的权限还取决于文件的属性,即文件赋予角色什么权限。结合两者才能得知一个用户对于一个文件的权限。

2 文件属性

使用 ll 即可查看文件属性

第一个字符为文件类型,在Linux中,文件有如下几种类型:

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

2~4、5~7、8~10个字符分别为文件所有者、属组、其他用户的权限

具体含义为:

r:读取,数字设定为4(数字依据二进制而来,如rw-,为110,转化为八进制则为6(4+2)

w:写入,数字设定为2

x:执行,数字设定为1

 

3 设置文件属性与权限

chown:修改文件属主、属组

如:chown 属主 文件名

chown 属主.属组 文件名(中间用“.”或“。”隔开)

 

chgrp:修改文件属组

如:chgrp 属组 文件名

 

chmod:修改文件权限

chmod可以对u、g、o对象使用赋值符+、-、=进行赋值,对应值有r、w、x

如:chmod o+w 文件名

也可以使用数字 :chmod 776 文件名

 

4 基本权限ACL

UGO权限只针对一个用户、一个组与其他用户,使用上有局限性,ACL (Access Control List)主要提供传统的UGO的r、w、权限之外的具体权限设置,可以对单一用户、单一文件或目录进权限设置。

ACL基本用法

setfacl:设置文件

setfacl [-bkRd] [{-m|-x} acl参数] 文件/目录名

参数:
-m :配置后面的 acl 参数给文件使用,不可与 -x 合用
-x :删除后续的 acl 参数,不可与 -m 合用
-b :移除所有的 ACL 配置参数
-k :移除默认的 ACL 参数
-R :递归配置 acl
-d :配置“默认 acl 参数”,只对目录有效,在该目录新建的数据会引用此默认值

如:给用户test增加对文件file权限“rw”

 

getfacl:查看文件acl权限

getfacl 文件名

如:

 

最大有效权限mask

可以使用它来临时降低用户或组(除owner和other)的权限

设置:

作用:对文件file设置mask后,用户权限与其“相与”后才是真正的权限,例如上面设置mask权限为“r--”后,group原本权限是“rw-”,但实际权限却成了“r--”

 

继承

要想让某一个目录继承上一个目录的权限,可以使用“-d”参数

如:

 

5 高级权限

SUID权限

使用ll命令查看文件file,第一行第四个字符为“S”,表示特殊SUID权限

 任何用户在执行该文件时,其身份是该文件的属主,在进程文件(二进制,可执行)上增加 SUID权限,让本来没有相应权限的用户也可以访问没有权限访问的资源。

设置SUID权限:例如:“chmod u+s file”。

 

Sticky权限

添加Sticky后,当用户对目录具有 w、x权限,在该目录下建立的文件或目录,仅有自己与root才有权删除。

 

6 文件属性 chattr

为了保护系统文件,Linux 系统会使用 chattr 命令改变文件的隐藏属性。chattr 命令仅对EXT2/EXT3/EXT4 文件系统完整有效,其他文件系统可能仅支持部分隐藏属性或者根本不支持隐藏属性。

例如:给文件添加“a“属性后,不能使用Vim编辑器写入,需要使用echo命令追加的方式写入

增加”i“属性后不能接受任何形式的修改,只能读取

 

7 进程掩码 umask

当用户创建新目录或文件时,系统会赋予目录或文件一个默认的权限,umask的作用就是指定权限默认值。为系统设置一个合理的 umask 值,确保创建的文件或目录具有所希望的缺省权限,有科全部于保证数据安全。

umask 值表示要减掉的权限,也可以简单地理解为权限的“反码”,进程和新建文件、目录的默认权限都会受到 umask 的影响。

 

标签:文件,用户,acl,Linux,权限,属组,目录
From: https://www.cnblogs.com/Lc-1/p/17857574.html

相关文章

  • Linux_sqlcmd或者是Cloudquery连接SQLSERVER2012的问题解决
    Linux_sqlcmd或者是Cloudquery连接SQLSERVER2012的问题解决背景最近想使用shell脚本给SQLServer数据库插入数据,但是发现了报错同时进行CLoudquery连接SQLServer数据库时也出现了异常.作为笔记记录一下问题和解决方法sqlcmd的问题现象sqlcmd的提示信息第一:安装sudo......
  • Linux学习随笔——I/O重定向
    绝大多数进程中有0、1、2这三个文件描述符:0:标准输入,可以理解为键盘录入;1:标准输出,输出到终端;2:标准错误,输出到终端;3及以上为常规文件的描述符;例如:date命令在默认的情况下将输出结果显示在终端,此时文件描述符为1,现在改变输出的方向,从终端改为date.txt文件,这个行为叫做重定向:......
  • 无涯教程-Linux - 替换语句
    当Shell遇到包含一个或多个特殊字符的表达式时,它将执行替换语句。在此,变量的打印值由其值代替。同时,"\n"换行-#!/bin/sha=10echo-e"Learnfk.comofageis$a\n"您将收到以下输出。在这里,-e选项可以解释反斜杠转义符。Learnfk.comofageis10以下是没有-e选项的......
  • Linux LVM磁盘
    第八章LVM磁盘LVM概述LVM解释在我们的生产工作中,有时候会出现这种情况,我们规划主机的时候只给了/home50GB,等到用户众多之后,这个文件系统不够大,此时怎么办?我们可以加一块新硬盘,然后重新分区并格式化,将/home的数据完整地复制过来,然后将原本的分区卸载重新挂载新分区,是可以解决......
  • 【Linux】基本指令(初始Linux)
    提示:寡人是用的XShell来写Linux的首先介绍一下在XShell上的复制粘贴复制:ctrl+insert(有些兄弟可能需要按fn来配合)粘贴:shift+insert写到一半指令发现自己写错了,可以ctrl+c,及时止损。和人生一样(/_\)01.ls指令语法:ls[选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与......
  • 文件权限
    在Linux系统中,每个文件和目录都关联着一组权限,这些权限决定了谁可以对文件进行何种操作。文件权限通常分为三个主要部分:所有者权限、群组权限和其他用户权限。所有者权限:文件或目录的所有者拥有最高级别的权限,可以控制文件的读取、写入和执行。群组权限:Linux系统中可以为文件分......
  • linux下如何卸载删除php
    1、首先执行如下命令查找全部php软件包1#rpm-qa|grepphp可以看到如下内容:123456#php-pdo-5.1.6-27.el5_5.3#php-mysql-5.1.6-27.el5_5.3#php-xml-5.1.6-27.el5_5.3#php-cli-5.1.6-27.el5_5.3#php-common-5.1.6-27.el5_5.3#php-gd-5.1.6-27......
  • 理解Linux的I/O重定向与管道
    在Linux系统中,I/O重定向与管道是强大而灵活的工具,它们使得用户能够更有效地处理输入输出流,实现各种复杂的数据处理任务。I/O重定向1.输入重定向(<)Linux允许用户将一个文件的内容作为标准输入,这在处理大量数据或者自动化任务时非常有用。例如:$command<input.txt这将使co......
  • Linux三剑客-sed
    今天继续介绍Linux三剑客中的sedsed是streameditor(流编辑器)的缩写。它最常见的用法是进行文本替换。下面介绍一些sed的常见用法。sed最常见的功能,是用它进行文本替换。它的替换形式和vim非常相似,具体语法如下:$sed's/pattern/replace_string/'file其中pattern代表替换用......
  • linux之进程控制(万字长文详解)
    进程控制进程创建——fork函数用于创建子进程的系统调用接口!这是一个函数函数执行前只有一个父进程,函数执行后有一个父进程一个子进程进程调用fork,当控制转移到内核中的fork代码后,内核做分配新的==内存块和内核数据结构(PCB,地址空间,页表)==给子进程将父进程部分数据结构内......