[Linux]文件系统权限与访问控制

这篇具有很好参考价值的文章主要介绍了[Linux]文件系统权限与访问控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的同时自己也得到复习。
⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁

Linux文件系统的权限和访问控制是系统安全的关键组成部分之一。
本文将深入探讨Linux文件系统权限和访问控制的重要性、权限类型以及如何设置和管理文件系统权限。

1、文件系统权限和访问控制的重要性

  在Linux系统中,每个文件和目录都有一个所有者和一组访问权限。这些权限用于限制用户对文件和目录的访问和操作,以保护系统和数据的安全性。如果没有正确的权限设置和访问控制,用户可能会访问和更改他们没有权限访问的文件和目录,从而导致系统和数据的损坏或泄漏。

2、常见命令

命令 说明
chmod 修改文件或目录的权限
chown 修改文件或目录的所有者
chgrp 修改文件或目录的所属组
ls 列出当前目录下的文件和子目录
id 显示当前用户的用户ID和组ID
umask 设置新创建文件的默认权限
sudo 以超级用户身份运行命令
su 切换用户身份
passwd 修改用户密码
useradd 添加新用户
usermod 修改用户属性
groupadd 添加新组
groupmod 修改组属性

[Linux]文件系统权限与访问控制

3、权限类型

Linux文件系统的权限分为三个主要类型:

  1. 用户权限:文件和目录的所有者对文件和目录有特定的访问权限,包括读、写和执行权限。
  2. 组权限:文件和目录的所属组对文件和目录也有特定的访问权限,包括读、写和执行权限。用户可以属于多个组。
  3. 其他用户权限:除了所有者和所属组之外的所有其他用户都属于其他用户,也有一组特定的访问权限,包括读、写和执行权限。

4、权限设置和管理

  使用chmod命令更改权限:chmod命令是用于更改文件和目录权限的最常用命令之一。使用chmod命令可以更改文件和目录的读、写和执行权限。例如,chmod 755 filename将文件filename的所有者设置为可读、写和执行,所属组和其他用户设置为可读和执行。

  使用chown命令更改文件所有者:chown命令用于更改文件和目录的所有者。例如,chown user filename将文件filename的所有者更改为用户user。

  使用chgrp命令更改文件所属组:chgrp命令用于更改文件和目录的所属组。例如,chgrp groupname filename将文件filename的所属组更改为组groupname。

  使用umask命令设置默认权限:umask命令用于设置新文件和目录的默认权限。例如,umask 022将设置新文件的默认权限为644,新目录的默认权限为755。

5、基本权限和归属

[Linux]文件系统权限与访问控制
权限管理命令
1、更改文件或目录权限命令: chmod
2、改变文件或目录所有者命令: chown
3、改变文件或目录所属组命令: chgrp
4、显示、设置文件的默认权限命令:umask

在Linux文件系统中,每个文件和目录都有一个所有者和一个所属组,并且设置了一组基本权限。
这些权限控制了谁能访问该文件或目录以及他们可以执行的操作。
文件和目录的基本权限通常用3个数字表示,每个数字代表一个不同的用户组:所有者、所属组和其他用户。

基本权限包括读、写和执行权限,分别用数字4、2和1表示。每个用户组可以使用这些数字来指定他们对文件或目录的访问权限。例如,如果一个文件设置了权限为644,那么它的所有者有读、写权限,所属组和其他用户只有读权限。

[Linux]文件系统权限与访问控制

6、特殊权限

[Linux]文件系统权限与访问控制
除了基本的文件权限和文件所有权之外,Linux文件系统还支持特殊权限,包括SetUID、SetGID和Sticky Bit。

权限类型 对文件的影响
setUID 文件执行时,以拥有者的权限执行
getUID 文件执行时,以执行者的权限执行
Sticky Bit 仅对目录起作用,只有文件所有者或超级用户可以删除该目录中的文件

  SetUID是一种特殊权限,可以设置在可执行文件上。
  当一个用户运行该文件时,该文件会以文件所有者的身份运行,而不是以运行用户的身份运行。这可以使某些程序在运行时获得更高的权限,例如运行passwd程序以更改用户密码。
  在默认情况下,SetUID仅适用于可执行文件,并且只对二进制文件有效。

  SetGID也是一种特殊权限,可以设置在目录上。当一个用户在该目录下创建文件或目录时,新创建的文件或目录将继承该目录的组所有权,而不是用户的组所有权。
  这可以使多个用户可以共享访问同一个目录或文件,而无需每个用户都设置相同的组所有权。

  Sticky Bit是另一种特殊权限,可以设置在目录上。当Sticky Bit被设置在一个目录上时,只有文件所有者和超级用户才能够删除该目录中的文件。
  这可以防止用户意外删除其他用户的文件。Sticky Bit通常被用于公共目录,例如/tmp,以确保文件仅被创建者或管理员删除。

以下是一个简单的图示,说明了文件权限和所有权的概念:
[Linux]文件系统权限与访问控制

7、ACL权限

[Linux]文件系统权限与访问控制
Access Control Lists(ACLs)是Linux文件系统的一种访问控制机制,允许在基本的文件权限之上为特定用户或组添加额外的权限。ACLs允许管理员在文件或目录上定义多个访问控制项,并赋予不同的用户或组不同的权限,从而提供更细粒度的访问控制。

ACLs是Linux扩展文件系统中的一种特性。支持ACL的文件系统包括ext3、ext4、XFS和ReiserFS等。ACLs由ACL条目组成,每个ACL条目包括一个或多个访问者、一个或多个访问权限,以及一个可选的默认访问权限。访问者可以是用户或组。

在使用ACL之前,需要确保文件系统已经挂载并且支持ACL。可以通过运行命令mount来检查文件系统是否挂载了ACL支持。如果支持ACL,文件系统选项中将会包含acl选项。

要添加ACL权限,可以使用setfacl命令。例如,下面的命令将为用户jane添加对文件/home/user/file.txt的读取和写入权限:

setfacl -m u:jane:rw /home/user/file.txt

这将创建一个新的ACL条目,将用户jane添加为访问者,并授予读取和写入权限。要查看文件的ACL权限,可以使用getfacl命令:

getfacl /home/user/file.txt

输出将包括基本权限和任何ACL权限。要删除ACL权限,可以使用setfacl命令的-x选项。例如,下面的命令将删除用户jane对文件/home/user/file.txt的ACL权限:

setfacl -x u:jane /home/user/file.txt

除了setfacl和getfacl命令,还有其他一些与ACL相关的命令。例如,chacl命令可以用于更改ACL权限,ls命令可以用于显示文件的ACL权限等等。

需要注意的是,ACLs是一个强大的工具,但也很容易被误用。过度使用ACLs可能导致混乱的权限结构,难以维护和管理。因此,在使用ACLs时,需要仔细考虑哪些用户或组需要哪些访问权限,并尽量保持权限结构的简单性和一致性。

8、思考题

假设test1,test2,test3同属于testgroup组,请说明下面两个文件的所有者及相关用户的权限?

-rw-r–r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 exam.txt

对于第一个文件 “test.txt”,所有者为 root 用户,所属组也是 root 组。权限位是 “-rw-r–r–”,依次表示所有者、所属组和其他用户对该文件的读、写、执行权限。因此,所有者 root 用户对该文件具有读写权限,所属组和其他用户只有读取权限。
对于第二个文件 “exam.txt”,所有者为 test1 用户,所属组为 testgroup 组。权限位是 “-rwxr-xr–”,依次表示所有者、所属组和其他用户对该文件的读、写、执行权限。因此,所有者 test1 用户对该文件具有读、写、执行权限,所属组 testgroup 组的用户对该文件具有读、执行权限,其他用户只有读取权限。

有以下目录,请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?

drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/

对于这个目录 “groups”,所有者是 test1 用户,所属组是 testgroup 组,权限位是 “drwxr-xr–”。因此,所有者 test1 用户可以进入该目录,并访问其中的文件,因为他拥有读取目录的权限。所属组 testgroup 的用户也可以进入该目录,并访问其中的文件,因为他们拥有该目录的读取和执行权限。而其他用户(others)则不能进入该目录,因为他们没有该目录的执行权限。

如果有些文件你不希望被其他人看到,那么应该将文件的权限设定为?
可以将该文件的权限设置为只有你自己的用户可以读、写和执行,而其他用户则没有权限。可以使用命令 “chmod” 来修改文件的权限。这样设置权限后,其他用户就无法看到该文件,但是管理员用户仍然可以访问该文件,因为管理员用户拥有最高权限

drwxr–r-- 3 root root 4096 Jun 25 08:35 .ssh 用户whj能否切换到该目录?
该目录的权限位是 “drwxr–r–”。由于该目录的所有者为 root 用户,所属组也是 root 组,因此:所有者 root 用户对该目录有读、写和执行权限;所属组 root 组的用户只对该目录有读权限;其他用户对该目录没有任何权限。因此,用户 “whj” 不能切换到该目录,因为他没有该目录的执行权限。

⑤假设有个账号名称为whj,家目录在/home/whj/,whj对此目录具有[rwx]的权限。若在此目录下有个名为root.data的文件,该文件的权限如下

-rwx------ 1 root root 4365 Sep 19 23:20 root.data

请问whj对此文件的权限为何? 可否删除此文件?
由于该文件的所有者为 root 用户,所属组也是 root 组,因此:所有者 root 用户对该文件具有读、写和执行权限;所属组 root 组的用户没有任何权限;其他用户也没有任何权限。因此,用户 “whj” 对该文件没有任何权限,不能读取、写入或者执行该文件,也不能删除该文件。

9、总结

  在Linux系统中,文件系统的权限和访问控制对系统和数据的安全至关重要。
  通过正确设置和管理文件和目录的权限,可以确保用户只能访问他们被授权访问的文件和目录,从而保护系统和数据的安全。
  熟练掌握Linux文件系统权限和访问控制的知识,是每个Linux系统管理员必备的技能之一。文章来源地址https://www.toymoban.com/news/detail-426421.html

到了这里,关于[Linux]文件系统权限与访问控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统知识4—Linux的root用户,su 和 exit 命令,sudo 命令,用户和用户组管理,getent,查看权限控制,修改权限控制 -chmod,修改权限控制-chown

    目录 一.Linux的root用户 1.1 root用户(超级管理员) 1.2 su 和 exit 命令 1.3 sudo 命令 1.为普通用户配置 sudo 认证 二.用户和用户组管理 2.1用户,用户组 2.2用户组的管理 2.3用户管理 2.4.getent 三.查看权限控制 3.1认知权限信息 1.序号1,表示文件,文件夹的权限控制信息 2. 序号2,表

    2024年01月17日
    浏览(47)
  • Linux - samba实现Linux与windows文件共享——共享文件夹目标文件访问权限被拒绝解决方案(超详细,看不懂你怪我)

            最近做一个项目,需要用到linux上的内容,于是需要将linux与window共享文件,上网查阅了一些资料,做完了之后,总结一下自己遇到的问题,以及自己是咋解决的,供大家参考。 这里其实只需要一步就可以操作出来,现在我们看一下: 一、打开虚拟机,选择设置

    2024年02月04日
    浏览(49)
  • Linux系统文件权限详解

    Linux系统中,我们常常使用命令行来对文件进行操作,比如 mkdir -m 777 temp 命令是去创建一个具有最高读写权限的名为 temp 的文件夹。本篇文章详细介绍了 Linux 系统中常见的文件权限表示方法,通过字母表示法和数字表示法展示了不同权限对文件访问的含义。以777、444、600、

    2024年01月25日
    浏览(28)
  • 信息系统安全——Linux 访问控制机制分析

    实验   4    Linux   访问控制机制分析 4.1   实验名称 《 Linux   访问控制机制分析》 4.2   实验目的 1   、熟悉   Linux 基本访问控制机制使用和原理 2   、熟悉   Linux   S   位的作用和使用 3   、熟悉强制访问控制   Selinux   原理及其使用 4.3   实验步骤及内容 1   、 Linux  

    2024年01月18日
    浏览(48)
  • Linux笔记:Linux中的文件系统权限

    在Red Hat Enterprise Linux 或其他类似的Linux发行版中,全局umask设置通常在几个不同的系统级配置文件中定义。以下是一些可能设置umask的地方: 这是为系统上的所有用户设置全局环境变量和启动程序的地方。通常,umask设置会在这个文件中定义。 对于使用Bash shell的系统,这个文

    2024年01月16日
    浏览(36)
  • 【干货】Android系统定制基础篇:第一部分(文件权限、增加信号强度、双路背光控制)

    当需要修改某文件或路径权限时,我们可以在init.rc开机启动某节点添加chmod命令进行修改。但是对于system分区,由于是ro权限,在init.rc使用chmod修改权限无效。需要在文件编译时,对权限进行修改。不同的Android版本改法一样,但是文件所在目录有差异,Android O主要修改文件是

    2024年02月09日
    浏览(39)
  • Linux——系统介绍及文件类型和权限

    开机,关机 什么是终端? 主机名的意义?(连接数据库的电脑,Web服务器等,连的太多分不清楚) 终端:Ctrl+Alt+T 或者桌面/文件夹右键,打开终端 切换为管理员:sudo su 退出:exit 查看内核版本号:uname -a 内核版本号含义:5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几

    2024年04月16日
    浏览(27)
  • Linux 系统文件权限管理(参考菜鸟教程)

    如图所示:  1、第一个字符代表这个文件是目录、文件或链接文件等等。 当为 d 则是目录 当为 - 则是文件; 若是 l 则表示为链接文档(link file); 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置); 若是 c 则表示为装置文件里面的串行端口设备,例如键盘

    2024年02月14日
    浏览(36)
  • 【Linux | Shell】Linux 安全系统 —— 用户、组、文件权限 - 阅读笔记

    Linux 安全系统的核心是 用户账户 。 用户权限是通过创建用户时分配的用户 ID( user ID, UID)来跟踪的。 UID 是个数值,每个用户都有一个唯一的 UID。 用户在登录系统时是使用登录名( login name)来代替 UID 登录的。 下面介绍 Linux 系统使用哪些 特定文件和工具 来跟踪及管理

    2024年02月13日
    浏览(30)
  • 【以太坊 Solidity】管理员读写权限/访问控制/角色控制

    在 Solidity 语言的多继承中,若 多个合约 共同继承一个 父合约 ,则这 多个合约 共享 父合约 中的变量和函数。 合约继承路线如下: 1.1 权限管理合约 1.2 继承权限管理合约的基类合约 1.3 待测试的合约 2.1 正向测试:合约拥有者OWNER具有管理员权限 此时 合约 Authority 中的 构造

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包