Linux特殊許可權之suid、sgid、sbit許可權

来源:https://www.cnblogs.com/banglook/archive/2022/03/17/16019354.html
-Advertisement-
Play Games

文件許可權管理之特殊命令 一:特殊許可權 昨天所學的Linux基本許可權為為9個;分別是rwx rwx rwx。但有時會發現系統中會有一些特殊的許可權位符號; 例如: Linux系統一共有12個特殊許可權符: rwx rwx rwx suid guid sbit 屬主 屬組 其他人 用戶位 用戶組 其他用戶 ...


文件权限管理之特殊命令

一:特殊权限

昨天所学的Linux基本权限为为9个;分别是rwx rwx rwx。但有时会发现系统中会有一些特殊的权限位符号;

例如:

Linux系统一共有12个特殊权限符:

rwx rwx rwx suid guid sbit
属主 属组 其他人 用户位 用户组 其他用户

特殊权限对照表:

类别 suid guid sbit
字符表示 S(大写) S(大写) T(大写)
出现位置 用户权限为x 用户权限位x 其他用户权限位
基本权限为有x权限 s(小写) s(小写) t(小写)
代表数字 4 2 1
八进制表示 4000 2000 1000
生效对象 用户位 用户组位 其它用户

二:特殊权限命令

1.suid基础原理:

1.suid通过S字符标识,存在于用户权限位的x对应权限位置

2.若某文件本身的用户权限位就有x权限,则设置suid权限时,则会以s(小写)表示

3.给文件设置s权限对应的数字表示为4;在八进制数下可以用4000表示

4.suid同样也可以使用chmod命令设置权限,可以使用字符或数字表示

注意:

  • suid仅适用于可执行的文件

  • 功能:只要用户对设有uid的文件有执行权限,那么当用户执行此文件时,就会以该文件属主的用户身份去执行此文件;当执行文件后,身份的切换也会随之消失

  • 例:当用户执行passwd时;执行的是/usr/bin/passwd这个可执行文件;执行时会以root用户身份执行,可以在执行时修改一连串的文件(连锁反应),当该passwd二进制文件执行后,用户身份也就会变为本身了

  • 设想;当/usr/bin/passwd二进制可执行文件没有了s权限,会发生怎样的情况

    (当普通用户使用passwd命令时,会修改一系列的相关文件{/etc/passwd,shadow文件};而这些文件的属主组都不是属于普通用户,所以就会有suid权限;当普通用户使用该二进制命令文件时,就会使用该文件的属主身份进行操作。)

    当删除掉passwd文件的s执行权限:

查看普通用户是否可以执行该二进制文件

这就表示虽然普通用户有权限使用passwd;但无法向该文件连锁执行的文件做出修改,就会提示用户身份令牌错误;普通用户就不能自己修改自己的密码了。

​ 恢复/usr/bin/passwd二进制文件的suid权限

使用普通用户使用passw修改自己的密码;看看是否成功

  • 以上述为例:如何让用户本身禁止修改密码??

    可以修改/usr/bin/passwd文件的s权限,去掉该权限;让普通用户虽然可以执行passwd;但是无法修改与passwd命令相关变动的/etc/shadow用户密码文件;这样就可以让用户不能修改密码了

  • 使用find命令搜索系统上所有的s权限位文件

参数解释:
-perm:利用权限进制搜索
-type:指定文件类型(l:软连接类型;d:文件夹类型;f:文件类型)
-ls:搜索的数据进行格式化输出
-delete:对匹配的数据进行删除

总结:
当有suid权限的文件被执行时,该文件将以所有者的身份去运行,就相当于普通用户执行这个文件时,就会拥有该文件属主的权限了;若属主为root,那么执行者就会在执行文件时拥有root用户的权限!!

1.suid权限是针对二进制可执行文件设置的,不能用在shell脚本上(非常危险!!)
2.suid权限位在user位的x权限位上,当设置该文件有s权限后;若显示为S,则说明x权限位本身就没有x权限;若显示s(小写),则说明该文件权限位本身就有x权限
3.suid的作用就是让执行者拥有文件属主的全部权限;以文件所有者的身份去运行该文件
4.suid权限会对系统有一定的危险!一般使用sudo命令代替suid权限执行相应的操作;当对Linux系统优化时,会尽量去除所有设置的suid命令

2.sgid 权限位

  • 对于二进制文件命令说,sgid与suid的作用、使用方法大致相同;不同的是suid是设置文件属主的权限;sgid是设置文件属组的权限

  • suid主要作用于二进制文件;sgid主要作用于文件夹:当为某个文件夹设置sgid权限后,在改文件夹中创建的文件,都会以改文件夹的属组权限为准,而不属于创建该文件的用户权限。

  • sgid对于文件、文件夹有不同的作用:

    文件:

    • sgid只对二进制文件命令生效,且需改文件本身具有x权限
    • 当执行具有sgid权限的二进制文件命令时,就会获得该命令在执行期间所属组的身份与权限(就相当于执行具有suid权限的文件一样)

​ 文件夹:

    • 当设置了sgid权限的文件夹,会保证在该文件夹下创建的所有文件或文件夹都会保持同样的属组权限属性(就相当于创建的文件或目录都会保持与上一级目录相同的属组)
  • 实践操作:

    1.创建一个共享目录/home/admins

2.要求该目录属组是adminuser,adminuser组内成员对该目录的权限是,可读,可写,可执行

3.其他用户均无任何权限(root特例)

4.进入/home/admins创建的文件,自动继承adminuser组的权限。

(如何在创建文件或目录时,保持与上一级文件具有相同的属组权限)

使用普通用户在该文件夹下创建文件或文件夹:

​ 恢复文件夹的其它用户权限

创建文件与文件夹

3.sbit 粘滞位

在o的权限为上

sbit特殊点:

当一个目录有了粘滞位,这个目录除了root用户外,任何用户都只能删除、移动自己创建的文件或目录不会影响到其他用户文件或目录

​ 若文件夹没有设置粘滞位,并且文件夹权限的rwx权限很大;任何具有该目录写和执行权限的用户都可以删除和移动体重的任何文件!!

拓展

1.查看系统所有的环境变量

​ set命令

2.查看用户的环境变量

​ env命令

3.命令提示符的变量

​ PS1

4.若用户的家目录出现损坏,咋办?

  • 直接拷贝/etc/skel文件中的所有文件到该用户的家目录

-r:递归拷贝


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • linux的三種軟體安裝及基本環境安裝 安裝軟體一般有三種方式: rpm 解壓縮 yum線上安裝 1.JDK安裝(rpm安裝) 1.rpm下載地址http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.如果有安裝ope ...
  • Linux學習 一、入門概述 我們為什麼要學Linux Linux誕生了這麼多年,以前還喊著如何能取代windows系統,現在這個口號已經小多了,任何事物發展都有其局限性都有其天花板。就如同在國內再搞一個社交軟體取代騰訊一樣,想想而已基本不可能,因為用戶已經習慣於使用微信交流,不是說技術上實現不瞭解 ...
  • 一、什麼是Shell腳本 Shell腳本(英語:Shell script),又稱Shell命令稿、程式化腳本,是一種電腦程式與文本文件,內容由一連串的shell命令組成,經由Unix Shell直譯其內容後運作。被當成是一種腳本語言來設計,其運作方式與直譯語言相當,由Unix shell扮演命令行解 ...
  • -- 痞子衡維護的 NXP-MCUBootUtility 工具距離上一個大版本(v3.4.0)發佈過去半年了,這一次痞子衡為大家帶來了版本升級 v3.5.0,這個版本主要有幾個非常重要的更新需要跟大家特別說明一下。 一、v3.5更新記錄 二、幾個不可忽視的更新 2.1 支持串列NOR雙程式啟動下載 ...
  • KVM/PVE Disk I/O Cache Selecting Guide ...
  • 1-首先查看系統是否存在mysql,無則不返回 # rpm -qa|grep mysql 2-安裝wget # yum -y install wget 3-抓取mariadb並刪除包,無則不返回 # rpm -qa|grep mariadb 4-刪除mariadb-libs-5.5.68-1.el7 ...
  • jinfo命令簡介 jinfo(Java Virtual Machine Configuration Information)是JDK提供的一個可以實時查看Java虛擬機各種配置參數和系統屬性的命令行工具。使用jps命令的-v參數可以查看Java虛擬機啟動時顯式指定的配置參數,如果想查看沒有顯式指定 ...
  • 騰訊 TencentOS 團隊於2021年12月8日聯合恩智浦半導體、安謀科技發起的線上開發者活動 - TencentOS Tiny AIoT 應用創新大賽目前已經進入到了最後的決賽階段。 參賽者的作品也都陸續面世了,目前一共看到了 38 個完成度較高的作品,參賽者都為自己的作品寫了比較詳細的介紹文 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...