【Linux學習筆記】Linux用戶和文件權限的深度剖析

【Linux學習筆記】Linux用戶和文件權限的深度剖析

🔥個人主頁大白的編程日記

🔥專欄Linux學習筆記


前言

文章目錄

  • 【Linux學習筆記】Linux用戶和文件權限的深度剖析
    • 前言
    • 一. Linux權限管理
      • 1.1 文件訪問者的分類(人)
      • 1.2 文件類型和訪問權限(事物屬性)
    • 二. 文件權限值的表示方法
      • 2.1 file 指令
      • 2.2 關于權限的總結
      • 2.3 粘滯位
    • 后言

哈嘍,各位小伙伴大家好!上期我們講了Linux基本指令及其分析(一) 今天我們講的是Linux基本指令及其分析(二)。話不多說,我們進入正題!向大廠沖鋒!
在這里插入圖片描述

一. Linux權限管理

1.1 文件訪問者的分類(人)

  • 文件和文件目錄的所有者:u—User(中國平民法律問題)
  • 文件和文件目錄的所有者所在的組的用戶:g–Group(不多說)
  • 其它用戶:O–Others(外國人)

1.2 文件類型和訪問權限(事物屬性)

  • 文件類型:
    d:文件夾
    -:普通文件
    l:軟鏈接(類似Windows的快捷方式)
    b:塊設備文件(例如硬盤、光驅等)
    p:管道文件
    c:字符設備文件(例如屏幕等串口設備)
    s:套接口文件
  • 基本權限:
    讀(r/4):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
    寫(w/2):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限
    執行(x/1):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限
    “—”表示不具有該項權限
    在這里插入圖片描述

二. 文件權限值的表示方法

  • 字符表示方法

  • 8進制數值表示方法
    文件訪問權限的相關設置方法

  • chmod
    功能: 設置文件的訪問權限
    格式: chmod[參數]權限文件名
    常用選項:

  • R->遞歸修改目錄文件的權限

  • 說明:只有文件的擁有者和root才可以改變文件的權限
    chmod命令權限值的格式:

  • 用戶表示符+/-=權限字符
    +:向權限范圍增加權限代號所表示的權限
    -:向權限范圍取消權限代號所表示的權限
    =:向權限范圍賦予權限代號所表示的權限
    用戶符號:
    u:擁有者
    g:擁有者同組用
    o:其它用戶
    a:所有用戶
    實例:

  • chmod u+w /home/abc.txt

  • chmod o-x /home/abc.tx2t

  • chmod a=x /home/abc.txt

  • 三位8進制數字
    實例:

  • chmod 664 /home/abc.txt

  • chmod 664 /home/abc.txt

  • chown
    功能: 修改文件的擁有者
    格式: chown [參數] 用戶名文件名
    實例:

  • chown userl f1

  • chown -R userl filegroupl

  1. chgrp
    功能: 修改文件或目錄的所屬組
    格式: chgrp[參數]用戶組名文件名
    常用選項:-R遞歸修改文件或目錄的所屬組
    實例: chgrp users /abc/f2
  2. umask
    功能:
  • 查看或修改文件掩碼
  • 新建文件夾默認權限=0666
  • 新建目錄默認權限=0777
  • 但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的文件權限是:mask&~umask
    格式: umask 權限值
    說明: 將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為
    0022,普通用戶默認為0002。
    實例:
  • umask 755
  • umask //查看
  • umask 044//設置



2.1 file 指令

功能說明: 辨識文件類型。
語法: file[選項]文件或目錄…
常用選項:

  • c:詳細顯示指令執行過程,便于排錯或分析程序執行的情形。
  • z:嘗試去解讀壓縮文件的內容。

(1)修改/etc/sudoers文件分配文件

 # chmod 740 /etc/sudoers# vi /etc/sudoer
sudo –u ??名 命令

實例:

sudo -u root /usr/sbin/useradd u2

目錄的權限

  • 可執行權限:如果目錄沒有可執行權限,則無法cd到目錄中,
  • 可讀權限:如果目錄沒有可讀權限,則無法用s等命令查看目錄中的文件內容,
  • 可寫權限:如果目錄沒有可寫權限,則無法在目錄中創建文件,也無法在目錄中刪除文件。

于是,問題來了~~換句話來講,就是只要用戶具有自錄的寫權限,用戶就可以刪除目錄中的文件,而不論這個用戶是否有這個文件的寫權限.

這好像不太科學啊,我張三創建的一個文件,憑什么被你李四可以刪掉?我們用下面的過程印證一下.

[root@localhost ~]$ chmod 0777 /home/[root@localhost ~]$ ls /home/ -ld  
drwxrwxrwx. 3 root root 4096 9
?19 15:58 /home/[root@localhost ~]$ touch /home/root.c[root@localhost ~]$ ls -l /home/
總?量4-rw-r--r--.  1 root  root     
0 9
?19 15:58 abc.cdrwxr-xr-x. 27 litao litao 4096 9
?19 15:53 litao-rw-r--r--.  1 root  root     
[root@localhost ~]$ su - litao0 9
?19 15:59 root.c[litao@localhost ~]$ rm /home/root.c  #litao
可以刪除
root
創建的?件rm
:是否刪除有寫保護的普通空?件"/home/root.c"
?
y[litao@localhost ~]$ exit 
logout

為了解決這個不科學的問題,Linux引如了粘滯位的概念

2.2 關于權限的總結

  • 目錄的可執行權限是表示你可否在目錄下執行命令。
  • 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd進入目,即使目錄仍然有-r讀
    權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)
  • 而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄。但由于沒有
    目錄的讀權限
  • 所以在目錄下,即使可以執行Is命令,但仍然沒有權限讀出目錄下的文檔。

2.3 粘滯位

[root@localhost ~]$ chmod + t / home / # 加上粘滯位
[root@localhost ~]$ ls - ld / home /
drwxrwxrwt. 3 root root 4096 919 16:00 / home /
[root@localhost ~]$ su - litao
[litao@localhost ~]$ rm / home / abc.c  #litao不能刪除別?的?件
rm:是否刪除有寫保護的普通空?件"/home/abc.c"?y
rm :?法刪除"/home/abc.c" :不允許的操作

當一個目錄被設置為"粘滯位"(用chmod+t),則該目錄下的文件只能由

  1. 超級管理員刪除
  2. 該目錄的所有者刪除
  3. 該文件的所有者刪除

后言

這就是Linux基本指令及其分析。大家自己好好消化!今天就分享到這! 感謝各位的耐心垂閱!咱們下期見!拜拜~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73255.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73255.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73255.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Centos離線安裝openssl-devel

文章目錄 Centos離線安裝openssl-devel1. openssl-devel是什么?2. openssl-devel下載地址3. openssl-devel安裝4. 安裝結果驗證 Centos離線安裝openssl-devel 1. openssl-devel是什么? openssl-devel 是 Linux 系統中與 OpenSSL 加密庫相關的開發包&…

深度學習篇---Opencv中Haar級聯分類器的自定義

文章目錄 1. 準備工作1.1安裝 OpenCV1.2準備數據集1.2.1正樣本1.2.2負樣本 2. 數據準備2.1 正樣本的準備2.1.1步驟2.1.2生成正樣本描述文件2.1.3示例命令2.1.4正樣本描述文件格式 2.2 負樣本的準備2.2.1步驟2.2.2負樣本描述文件格式 3. 訓練分類器3.1命令格式3.2參數說明 4. 訓…

Smart Time Plus smarttimeplus-MySQLConnection SQL注入漏洞(CVE-2024-53544)

免責聲明 本文所描述的漏洞及其復現步驟僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 0x01…

58.Harmonyos NEXT 圖片預覽組件架構設計與實現原理

溫馨提示:本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦! Harmonyos NEXT 圖片預覽組件架構設計與實現原理 文章目錄 Harmonyos NEXT 圖片預覽組件架構設計與實現原理效果預覽一、組件架構概述1. 核心組件層…

虛擬機下ubuntu進不了圖形界面

6.844618] piix4_smbus 0000:07.3: SMBus Host ContrFoller not enabled! 7.859836] sd 2:0:0:0:0: [sda] Assuming drive cache: wirite through /dev/sda1: clean, 200424/1966080 files, 4053235/7864064 blocks ubuntu啟動時,卡在上面輸出位置 當前遇到的原因…

Appium高級操作--從源碼角度解析--模擬復雜手勢操作

書接上回,Android自動化--Appium基本操作-CSDN博客文章瀏覽閱讀600次,點贊10次,收藏5次。書接上回,上一篇文章已經介紹了appium在Android端的元素定位方法和識別工具Inspector,本次要介紹使用如何利用Appium對找到的元…

SpringBoot學生宿舍管理系統的設計與開發

項目概述 幽絡源分享的《SpringBoot學生宿舍管理系統的設計與開發》是一款專為校園宿舍管理設計的智能化系統,基于SpringBoot框架開發,功能全面,操作便捷。該系統涵蓋管理員、宿管員和學生三大角色,分別提供宿舍管理、學生信息管…

愛普生溫補晶振 TG5032CFN高精度穩定時鐘的典范

在科技日新月異的當下,眾多領域對時鐘信號的穩定性與精準度提出了極為嚴苛的要求。愛普生溫補晶振TG5032CFN是一款高穩定性溫度補償晶體振蕩器(TCXO)。該器件通過內置溫度補償電路,有效抑制環境溫度變化對頻率穩定性的影響&#x…

【原創】在高性能服務器上,使用受限用戶運行Nginx,充當反向代理服務器[未完待續]

起因 在公共高性能服務器上運行OllamaDeepSeek,如果按照默認配置啟動Ollama程序,則自己在遠程無法連接你啟動的Ollama服務。 如果修改配置,則會遇到你的Ollama被他人完全控制的安全風險。 不過,我們可以使用一個方向代理&#…

Bash和Zsh的主要差異是?

Bash(GNU Bourne-Again Shell) 和 Zsh(Z Shell) 都是功能強大的Unix/Linux Shell,廣泛用于交互式使用和腳本編寫。 盡管它們有很多相似之處,但在功能、語法、配置選項等方面也存在一些顯著的區別。 是Bas…

芯科科技推出的BG29超小型低功耗藍牙?無線SoC,是藍牙應用的理想之選

具有擴大的內存和超低功耗特性的超小型BG29是互聯健康設備的理想之選 低功耗無線領域內的領導性創新廠商Silicon Labs(亦稱“芯科科技”,NASDAQ:SLAB)今日宣布:推出全新的第二代無線開發平臺產品BG29系列無線片上系統…

【數據挖掘】知識蒸餾(Knowledge Distillation, KD)

1. 概念 知識蒸餾(Knowledge Distillation, KD)是一種模型壓縮和知識遷移技術,旨在將大型復雜模型(稱為教師模型)中的知識傳遞給一個較小的模型(稱為學生模型),以減少計算成本&…

選型消息隊列(MQ):ActiveMQ、RabbitMQ、RocketMQ、Kafka對比

選型消息隊列(MQ):ActiveMQ、RabbitMQ、RocketMQ、Kafka對比 選型消息隊列(MQ)1. 引言2. 消息隊列核心指標3. MQ 技術對比分析4. 詳細分析及案例4.1 ActiveMQ:傳統企業級 MQ 方案4.2 RabbitMQ:高…

AWK 入門教程:強大的文本處理工具

AWK 是一種強大的文本處理工具,廣泛用于 Linux/Unix 系統中對文本文件或數據流進行操作。它能夠基于條件篩選、統計字段、重新排列數據等。主要特點包括: 2. AWK 的基本語法 2.1 AWK 程序的結構 AWK 程序的結構: awk pattern { action } file 2.2 常…

mysql select distinct 和 group by 哪個效率高

在有索引的情況下,SELECT DISTINCT和GROUP BY的效率相同;在沒有索引的情況下,SELECT DISTINCT的效率高于GROUP BY?。這是因為SELECT DISTINCT和GROUP BY都會進行分組操作,但GROUP BY可能會進行排序,觸發filesort&…

使用conda將python環境打包,移植到另一個linux服務器項目中

問題:因為新的服務器A不能聯網,導致離線pip install包耗時耗力,舊的服務器B中的Anaconda和A中是同一個版本,有現成的python環境,并且服務器B可以聯網,現想將B中的環境,直接移植到A中使用。 解決…

晶晨S905M/晶晨S905L2芯片-原機安卓4升級安卓7.1.2-通刷線刷固件包

晶晨S905M/晶晨S905L2芯片-原機安卓4升級安卓7.1.2-通刷線刷固件包 線刷方法:(新手參考借鑒一下) 1、準備好一根雙公頭USB線刷刷機線,長度30-50CM長度最佳,同時準備一臺電腦; 2、電腦上安裝好…

KICK第四講Linux 系統下安裝 GCC 編譯器全指南

Linux 系統下安裝 GCC 編譯器全指南 GCC(GNU Compiler Collection)是 Linux 系統下最常用的編譯器之一,支持 C/C、Java 等多種編程語言。本文將介紹不同 Linux 發行版下的安裝方法,幫助開發者快速配置開發環境。 一、使用包管理…

Django系列教程(8)——函數視圖及通用類視圖

目錄 什么是視圖(View)及其工作原理 接近現實的函數視圖 更復雜的案例: 視圖處理用戶提交的數據 基于函數的視圖和基于類的視圖 Django通用類視圖 a. ListView b. DetailView c. CreateView d. UpdateView e. FormView f. DeleteView 小結 Django的視圖(view)是處理…

c# 查找相似顏色算法

下是一個基于歐幾里得距離的C#顏色相似度查找算法實現,包含詳細注釋和優化策略: using System; using System.Collections.Generic;public class ColorMatcher {// 顏色容器 - 使用字典存儲顏色ID到RGB的映射private readonly Dictionary<int, byte[]> _colorDictiona…