首页 > 系统相关 >Linux系统 高级权限读书笔记

Linux系统 高级权限读书笔记

时间:2023-11-04 17:12:37浏览次数:33  
标签:文件 SUID 读书笔记 Sticky Linux SGID Bit 权限

在本周的学习中学习了linux的高级权限,内容包括SUID权限,SGID权限,Sticky权限,chattr权限。

SUID 权限(Set User ID)

SUID 权限是一种特殊的权限设置,它允许普通用户以文件所有者的权限执行可执行文件。这对于某些程序和任务来说非常有用,因为它们需要超出普通用户权限的权限来执行。以下是更详细的信息:

1. 查看 SUID 权限

可以使用ls -l命令来查看文件是否启用了SUID权限。如果SUID位已经设置,它将在权限位中显示为字母 "s",例如 -rwsr-xr-x

ls -l /path/to/executable

2. 添加 SUID 权限

要添加SUID权限,可以使用chmod命令,并在权限位中使用字母 "s",如下所示:

chmod u+s /path/to/executable

这将设置SUID权限,使普通用户能够以文件所有者的权限执行该文件。

3. 使用案例

一个常见的用例是passwd命令。这个命令允许普通用户更改他们自己的密码,而不需要超级用户权限。因此,passwd命令通常设置了SUID权限。

ls -l /usr/bin/passwd    

SGID 权限(Set Group ID)

SGID 权限允许用户以文件所属组的权限执行文件,而不是执行者的组权限。这对于多个用户需要访问相同文件或目录的情况非常有用,以确保它们具有相应的权限。以下是更详细的信息:

1. 查看 SGID 权限

使用ls -l命令,可以查看文件夹或文件是否启用了SGID权限。如果SGID位已设置,它将在权限位中显示为字母 "s",如drwxr-sr-x

ls -l /path/to/directory

2. 添加 SGID 权限

要添加SGID权限,可以使用chmod命令,并在权限位中使用字母 "s",如下所示:

chmod g+s /path/to/directory

这将设置SGID权限,使用户以文件所属组的权限执行文件。

3. 使用案例

一个常见的用例是共享目录,例如 /tmp。这个目录通常设置了SGID权限,以确保多个用户可以在其中创建文件,而不会导致权限问题。

ls -ld /tmp

SUID和SGID权限应该小心使用,因为错误的设置可能导致安全漏洞。在启用这些权限之前,务必确切了解文件或目录的用途以及哪些用户需要访问它。同时,确保系统和文件的安全性非常重要。

 

Sticky 权限(Sticky Bit)

Sticky Bit 权限通常用于目录,以确保只有文件的所有者能够删除其中的文件。这在共享目录中非常有用,以防止其他用户删除或替换其他用户的文件。

  1. 查看 Sticky Bit 权限:

    ls -l /path/to/directory

    如果目录的权限中有字母 "t"(例如,drwxrwxrwt),则表示 Sticky Bit 权限已设置。

  2. 使用 chmod 命令添加 Sticky Bit 权限:

    chmod +t /path/to/directory

    这将启用 Sticky Bit 权限,确保只有文件的所有者可以删除自己的文件。

  3. Sticky Bit 常用于 /tmp 目录,以确保只有文件的所有者能够删除自己的临时文件。

Chattr 权限(Immutable)

Chattr 权限允许您设置文件为不可更改,即使是超级用户也无法修改或删除它。这对于保护关键文件或配置非常有用。

  1. 查看文件的 Chattr 权限:

    lsattr /path/to/file

    如果文件已设置为不可更改,它将显示 i 标志。

  2. 使用 chattr 命令设置文件为不可更改:

    chattr +i /path/to/file

    这将使文件不可更改。

  3. 要删除不可更改的属性,使用 chattr -i 命令:

    chattr -i /path/to/file

    这允许您再次修改或删除文件。

Chattr 权限通常用于保护关键系统文件,以确保它们不会被意外或恶意修改。

      理解和使用sticky权限(Sticky Bit)和chattr权限(Immutable)也是Linux权限管理的重要方面。这两种权限可以帮助维护系统和文件的安全性。对 Sticky Bit 和 Chattr 权限的更改需要特殊权限,通常需要超级用户或管理员权限。这些权限对于确保系统和文件的安全性非常重要,但也需要小心使用,以避免不必要的限制。

 

在学习Linux权限管理中,我获得了一些有用的知识,同时也意识到一些不足之处:

收获:

  1. 理解权限管理: 通过学习SUID、SGID、Sticky Bit和Chattr权限,我现在更深入地了解了Linux系统中的权限管理。我明白了如何控制用户对文件和目录的访问和操作。

  2. 具体命令行操作: 学习如何使用具体的命令行工具来管理这些权限,例如chmodchownlschattr等,使我可以实际应用这些知识。

  3. 安全意识提升: 我学会了如何使用这些权限来提高系统和文件的安全性,防止不必要的更改和删除,以及确保只有授权用户可以执行特定操作。

不足:

  1. 深度了解不足: 学习这些权限是一个很好的开始,但我意识到我需要更深入的了解来处理更复杂的权限场景,尤其是在多用户和多组环境下。

  2. 实际应用: 我需要更多的实际应用经验,以便在实际情况中正确地配置和管理这些权限。只有理论知识可能无法完全解决复杂问题。

  3. 安全意识: 尽管我学习了如何提高系统和文件的安全性,但我需要不断提高我的安全意识,以便更好地理解潜在威胁和如何应对它们。

总的来说,学习Linux权限管理是一个不断发展的过程,需要不断深化理解和实践。我已经获得了一些基本知识,但还需要更多实际经验和深入的学习,以更好地应对复杂的权限管理场景。

下面是课堂代码内容展示:

 

标签:文件,SUID,读书笔记,Sticky,Linux,SGID,Bit,权限
From: https://www.cnblogs.com/ppwqdsx/p/17795762.html

相关文章

  • .Net 6.0 在Linux部署后特殊格式静态文件404
    转自:https://blog.csdn.net/wxz19960412/article/details/131085819只需要添加如下代码即可:1app.UseStaticFiles();23app.UseStaticFiles(newStaticFileOptions4{5ServeUnknownFileTypes=true//设置不限制content-type6});78//添加特殊类型......
  • Linux-系统权限管理
    frompixiv管理用户和组用户账户用户配置文件根据man的提示我们知道在/etc/passwd下如上这些字段的含义,需要注意的是在password这个字段都是x,即不显示密码第一个字段是用户名第二个字段是加密后的密码第三个字段是最后一次密码修改的日期距离1970年的天数......
  • Linux操作脚本说明
    查看java进程是否存在 ps-ef|grepjava-e所有进程-f全格式PS是LINUX下最常用的也是非常强大的进程查看命令查看系统日志tail-fserver.log杀进程kill-923398重启服务不显示日志./startservernohup.sh重启服务显示日志./startserver.sh......
  • Linux 下使用串口的简易教程
    1、检查串口的配置。查看串口的波特率、数据位、校验位等可以使用以下命令: $stty-F/dev/ttyS02、修改串口的配置。使用stty命令可以修改串口的波特率、数据位、校验位等选项,例如,将串口波特率修改为115200,按如下方式操作:$stty-F/dev/ttyS01152003、stty命令功......
  • linux 修改网卡名称
    network修改网卡名称参考指令23.cnblogs.com/blog/2402369/202311/2402369-20231104140931306-1561136973.png)注意:问题一:windows编码格式^M会影响问题二:网卡配置文件当中static问题三:多余网卡配置文件有影响问题四:关闭NetworkManager服务脚本示例#!/bin/ba......
  • linux - 使用scp和sftp进行文件的上传和下载
    scp与sftp都是使用ssh通道进行文件的上传和下载1.scp命令的使用scp[-pr]path/[email protected]:/remote/path上传文件到服务器scp[-pr][email protected]:/remote/path./下载服务器文件到当前目录参数:-p:保留文件原油的权限信息-r:复制来源为目录时,可以复......
  • Linux创建特定用户运行应用程序
    我们知道Linxu分为内核态和用户态,用户态和内核态交互的桥梁就是shell,用户的应用程序通常运行在用户态,也就是用户空间,默认情况下,root用户拥有系统最高权限,很多时候我们在linux部署应用程序时,程序可能需要取得某些系统权限才能正常运行,比如在所属组为root的目录里新建一个*.pid文件,......
  • Linux - 启动服务的三种方式
    以启动和管理ssh服务为例1.通过init.d启动/etc/init.d/sshstatus查看服务状态/etc/init.d/sshstart启动服务/etc/init.d/sshstop停止服务/etc/init.d/sshrestart重启服务2.通过service启动servicesshstatus查看服务状态servicesshstart启动......
  • linux配置ssh
    1.安装ssh服务,运行命令  sudoyuminstallopenssh-server2、启动OpenSSH服务  sudosystemctlstartsshd.service3.安装成功后,执行以下命令启动OpenSSH服务:sudosystemctlstartsshd.service4.设置开机自启动sudosystemctlenablesshd.service5.需要使用......
  • 记一个 Android 14 适配引发的Android 存储权限问题
    一、bug背景项目中有下面这样一段代码,在AndroidT版本运行正常,现在适配到AndroidU上之后,运行时crash了。。。。...values.put(MediaStore.Images.Media.DATA,file.absolutePath)values.put(MediaStore.Images.Media.DISPLAY_NAME,file.name)...resolver.update(ur......