0


Linux 中文件的权限说明

目录

一:文件权限类型

Linux中文件的权限可以大致分为默认权限、普通权限和特殊权限三大类;

  • 默认权限:新建文件或目录时自动赋予的初始权限
  • 普通权限:包括文件或目录的读(r)、写(w)、执行(x)权限。
  • 特殊权限:对文件或目录的执行行为进行控制,包含 SUID、SGID、和 Sticky Bit

二:默认权限管理

Linux中创建文件的默认权限是由

umask

的值决定,而且还有个特点就是root用户的umask值和普通用户的umask值不一样;

1. 查看当前用户的umask值

umask

的值是三位八进制数字,它表示需要去掉的权限。最前面的0表示这是一个八进制数。

# 在终端输入 umask 可以查看当前的 umask 值
ehigh@ubuntu:~$ umask 
0002

root@ubuntu:~# umask 
0022

2. 修改当前用户的umask值

命令行修改

umsk

只会临时生效,系统重启后就失效了。

例如

umask  026

3. 根据umask计算默认权限

  • 非目录文件:666 - umask值 ,如果结果为奇数就 + 1
  • 目录文件:777 - umask值

例如

umask

为0002,文件的默认权限为:

666 - 002 =644

文件默认权限基准值是666 是因为文件一般不需要可执行权限;
目录默认权限基准值是777 是因为目录需要“执行”权限才能进入和列出内容;
计算非目录文件权限时,如果结果是奇数说明具有执行权限,+1可以去掉其执行权限;

三:普通权限管理

1. 三种普通权限说明

1.1 对于非目录文件来说

  • 读取权限 (r):这意味着用户可以查看文件的内容。
  • 写入权限 (w):这意味着用户可以修改或删除文件。
  • 执行权限 (x):这意味着用户可以执行文件(如果它是一个可执行文件或脚本)

1.2 对于目录文件来说

  • 读取权限 (r):允许列出目录的内容。
  • 写入权限 (w):允许在目录中创建、删除或重命名文件。
  • 执行权限 (x):允许进入目录并访问其内容。

目录的最小权限是执行权限,既对于一个目录来说,必须要保证有执行权限,因为目录是一种特殊的文件类型,用于存储其他文件和目录。对于一个目录来说,必须拥有执行权限才能进入这个目录。不然连目录都没法进入。

2. 查看某个文件的权限信息

2.1 使用 ls -l

root@ubuntu:/home/ehigh# ls -l time_stamp.log 
-rw-r--r-- 1 root root 1110月 1619:05 time_stamp.log

2.2 使用 stat

root@ubuntu:/home/ehigh# stat time_stamp.log 
  File: time_stamp.log
  Size: 11            Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d    Inode: 8936463     Links: 1
Access: (0644/-rw-r--r--)  Uid: (0/    root)   Gid: (0/    root)
Access: 2024-09-26 09:59:52.000000000 +0800
Modify: 2024-10-16 19:08:20.824239766 +0800
Change: 2024-10-16 19:08:20.824239766 +0800
 Birth: -

3. 修改某个文件的权限信息

通过

chmod

命令可以修改某个文件的权限信息,

chmod

有两种格式,字符格式和数字格式。

3.1 chmod 的符号模式

符号模式:用一个字符来表示某个权限,通过

+、-、=

符号来确认是增加权限还是去除权限。

表示用户:

  • a:表示所有的意思,包括文件所有者、所属组和其他用户
  • u:表示的是文件所有者
  • g:表示的是文件所属组
  • o:表示的是其他用户

执行的操作:

  • +:表示在原有权限的基础上加上指定权限
  • -:表示在原有权限的基础上减去指定权限
  • =:表示清空原有权限,使用当前的权限

权限类型:

  • x:表示可执行权限
  • r:表示可读权限
  • w:表示可写权限
  • -:单独的 - 表示无权限

例如:

# 给文件所有者增加可执行权限chmod u+x file_name

# 给所有用户(所有者、所属组、其它用户)增加可执行权限chmod a+x file_name

# 去除其它用户的r权限chmod o-r file_name

# 给文件所有者重新赋予权限chmoda=rxw  file_name

3.2 chmod 的数字模式

数字模式由 三个八进制数字组成 ,从左到第一个数字代表文件所有者权限,第二个数字表示文件所属组权限,第三个数字表示其他用户权限。
类别的权限(属主、组用户、其他用户)都是通过这些数字的组合来表示

  • 1:表示可执行权限
  • 2:表示可写权限
  • 4:表示可读权限
  • 0:表示没有权限

例如

# 表示给所有者、所属组和其他用户都授予读写执行权限  7=4+2+1 表示具有读写执行权限chmod777 file_name

四:特殊权限管理

1. 三种特殊权限说明

1.1 SUID 权限

  • 默认状态;默认无SUID权限
  • 应用场景:用于可执行文件上,如果某个文件无可执行权限,则SUID不生效
  • 权限作用:任何用户执行该文件时,都会以文件属主的身份来运行该文件,而不仅仅是执行用户的身份。
  • 权限位置:出现在文件所有者可执行权限位置
  • 权限表示:文件所有者的可执行权限位置会变为s或S 表示设置了SUID- rws:表示 SUID 已启用,并且文件的所有者具有对该文件的执行权限,此时SUID会生效;- rwS:表示瑞谈SUID已启用,但是文件所有者对这个文件没有执行权限,此时SUID不生效;
  • 权限设置: - 符号发:chmod u+s filename (只能给文件所有者 u 添加)- 数字法:chmod 4755 filename(数字 4 代表 SUID,设置时在常规权限前面加上4)

1.2 SGID 权限

  • 默认状态;默认无SGID权限
  • 应用场景:用于可执行权限或者目录
  • 权限作用: - 应用于可执行文件时:执行改文件的用户会以属组的身份来运行该文件- 应用于目录文件时:所有在该目录中创建的文件或子目录将自动继承该目录的所属组,而不是创建者的有效组。
  • 权限位置:出现在文件所属组可执行权限位置
  • 权限表示:如果所属组的可执行权限位变为了s或S,则表示设置了SGID权限。 - rwxr-sr-x:具有 SGID 权限,并且文件或目录对组用户有执行权限。- rwxr-Sr-x:具有 SGID 权限,但文件对组用户没有执行权限。权限设置:- 符号法:chmod g+s filename(只能给文件所有者g 添加)- 数字法:chmod 2755 filename(数字 2 代表 SGID,设置时在常规权限前面加上2)

1.3 Sticky Bit

  • 默认状态;默认无 Sticky Bit 权限
  • 应用场景:目录文件
  • 权限作用:只有文件的所有者才可以删除或重命名文件,防止用户在公共目录中删除其他用户的文件。
  • 权限位置:出现在文件其他用户可执行权限位置
  • 权限表示:文件其他用户的执行权限位变为了t或T,表示设置了 Sticky Bit - rwxrwxrwt:具有 Sticky Bit 权限,并且目录对其他用户有执行权限;- rwxrwxrwT:具有 Sticky Bit 权限,但目录对其他用户没有执行权限;权限设置:- 符号法:chmod o+t filename(省略 o 也可以直接加上 Sticky Bit- 数字法:chmod 1755 filename(数字1 代表 Sticky Bit ,设置时在常规权限前面加上1)

例如:passwd命令设置有SUID权限:
普通用户使用 passwd 命令修改自己的密码时,需要访问 /etc/shadow 文件,但是该文件只有 root 用户才有权限访问。
在这里插入图片描述
为了允许普通用户修改自己的密码,passwd 程序需要拥有 SUID 权限,这样普通用户在运行 passwd 程序时,就会暂时获得 root 用户的权限,可以访问 /etc/shadow 文件并修改自己的密码。
在这里插入图片描述


例如:temp目录设置有 Sticky Bit 权限
在这里插入图片描述

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/weixin_42375949/article/details/142987794
版权归原作者 一只小爪子 所有, 如有侵权,请联系我们删除。

“Linux 中文件的权限说明”的评论:

还没有评论