Linux下基本指令(4)

Linux權限的概念

Linux下有兩種用戶:超級用戶(root)、普通用戶。

超級用戶:可以再linux系統下做任何事情,不受限制

普通用戶:在linux下做有限的事情。

超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。

命令:su [用戶名]

功能:切換用戶。

例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時系統會提示輸入root用戶的口令。如果

是在普通用戶下,切換到root用戶,家目錄還是普通用戶的家目錄,只是身份轉變了。要退回普通用戶,輸入exit指令或者是ctrl + d熱鍵。

如果使用su -則直接重新登錄root用戶,此時的家目錄也是root。

在root用戶下變成其它用戶:

暫時的對一條命令進行提權sudo command:

目前用adduser新建的用戶,沒有辦法執行sudo ,系統不信任你,除非未來將普通用戶添加到系統信任的白名單里。

什么叫做權限?權限就是什么事情允許被你做。1.權限認證的是身份(權限和“人”有關),身份權限認證的時候,其實認證的就是人和身份是否吻合。2.權限也和事物的屬性有關。

文件屬性:

Feb 17 17:24 是文件最近修改或者創建的時間。?d和-是文件的類型,文件的類型在Windows當中是通過文件名后綴來區分的,在Linux系統中文件名后綴沒有直接的意義。

-:普通文件(文本文件、源代碼,還有庫文件、可執行程序在Linux上都是普通文件)

d:目錄文件

b:塊設備文件(跟硬件有關系),最典型的塊設備文件一般在計算機里都叫做磁盤,一般的磁盤文件我們都叫做塊設備文件

因為Linux下一切皆文件, /dev/vdal就是在服務器上用的那個磁盤,當然這個磁盤是虛擬出來的。磁盤在讀取時是整塊進行讀取的。?

c:字符設備文件,在Linux下通常指的是字符設備,這些字符是被最常見的像鍵盤,顯示器文件等。

顯示器設備一般叫做/dev/tty。

當前這里一共有這么多的顯示器文件(未全包含):

這些顯示器文件tty就是終端的意思,?為什么鍵盤、顯示器叫做字符設備呢?因為這些文件在進行數據的輸入輸出時,它是按照字符為單位,一個個的喂給內存當中的進程或者程序的。

p:管道文件,是用來通信的。

文件的屬性主要是對目錄文件和普通文件來說的。

r:表示可讀

w:表示可寫

x:表示可執行

-:對應的權限位置,什么都沒有,換句話說也就是什么都沒有

這里的“人”不是代表一個用戶,是代表一個角色,權限身份,Linux中將角色劃分為三種,一種是文件對應的擁有者(代表這個文件是誰的),第三種叫做文件對應的其他人(代表這個文件不屬于誰),中間的叫做文件對應的所屬組(代表的是比如六個用戶是屬于同一個組的,他們可以給特定的目錄或者文件設定一些組級別的約束,就可以保證組內的一些人共享某些資源)。、

那root用戶以及普通用戶和擁有者、所屬者、其他人有什么關系呢?

其實root用戶可以由擁有者、所屬者、其他人扮演,普通用戶可以由擁有者、所屬者、其他人扮演,擁有者、所屬者、其他人相當于角色或者身份,而root和普通用戶相當于具體的某些人。比如說校長是一個身份,張三是一個人。

第一個liusiwei叫做該文件的擁有者,也就是empty這個文件的擁有者是liusiwei這個用戶,第二個liusiwei代表文件的所屬組。drwxrwxr-x第一列代表文件類型,剩下的叫做文件的權限屬性,2、1、1先不講,到時候講到文件系統再說。4096代表的是文件的大小,單位是字節,Feb 17 17:24 代表文件最近的修改或者創建時間,最后是文件名。

那其他人呢?

當我用root賬戶登陸時,我要訪問一個文件,那這個文件的所屬組還有擁有者是root嗎,如果不是,root就是其他人,這個時候就有了其他人了。

去掉第一列的一個字符,剩下的從左向右3、3為一組,第一組是文件的屬性,這個屬性和擁有者結合,它代表的就是擁有者權限,第二組是所屬組的權限,它就和所屬組相關聯,第三組和其他人對應,叫做其他人權限。

去掉一個文件的所有人的所有權限:

root用戶不受權限約束:

增加一個人的權限:

也可以用二進制來修改權限:

把文件給另一個用戶(要在root賬戶下使用):

把所屬組權限給另一個用戶(需要在root賬戶下使用):

把擁有者、所屬組權限還給自己(需要在root賬戶下使用):?

創建三個文件:?

?為什么我們創建文件的默認權限是我們所看到的樣子?

為什么普通文件的默認權限是664?

為什么目錄文件的默認權限是775?

1.在Linux當中,默認給普通文件起始權限其實是666,2.默認給目錄文件的起始權限其實是777,但為什么是我們圖中所見到的樣子的呢?根本原因在于我們的Linux當中存在一個umask的東西,叫做權限掩碼。權限掩碼:凡是在umask中出現的權限,不會在最終的文件權限中出現。

最終權限 = 起始權限 & (~umask)。

Linux權限管理

01.文件訪問者的分類(人)

文件和文件目錄的擁有者:u

文件和文件目錄的所屬組:g

其他人:o

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

?a) 文件類型

d:文件夾

-:普通文件

l:軟鏈接(類似Windows的快捷方式)

b:塊設備文件(例如硬盤、光驅等)

p:管道文件

c:字符設備文件(例如屏幕等串口設備)

s:套接口文件

這里只需要記住d和-,其它的后面遇到的話再詳談。

b)基本權限

i.讀(r/4):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限

ii.寫(w/2):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限

iii.執行(x/1):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限

iv.“—”表示不具有該項權限

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

a)字符表示方法

b)8進制數值表示方法

04.文件訪問權限的相關設置方法

a)chmod

功能:設置文件的訪問權限

格式:chmod [參數] 權限 文件名

常用選項:R -> 遞歸修改目錄文件的權限

說明:只有文件的擁有者和root才可以改變文件的權限

chmod命令權限值的格式

① 用戶表示符+/-=權限字符

+:向權限范圍增加權限代號所表示的權限

-:向權限范圍取消權限代號所表示的權限

=:向權限范圍賦予權限代號所表示的權限

用戶符號:??

u:擁有者

g:擁有者同組用

o:其它用戶

a:所有用戶

chmod a=x /home/abc.txt

②三位8進制數字

b)chown

功能:修改文件的擁有者

格式:chown [參數] 用戶名 文件名?

?c)chgrp

功能:修改文件或目錄的所屬組

格式:chgrp [參數] 用戶組名 文件名

常用選項:-R 遞歸修改文件或目錄的所屬組

chgrp users /abc/f2

d)umask

功能: 查看或修改文件掩碼

新建文件夾默認權限=0666

新建目錄默認權限=0777

但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候還要受到 umask的影響。假設默認權限是mask,則實際創建的出來的文件權限是: mask & ~umask

格式:umask 權限值

說明:將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為0022,普通用戶默認為0002。

修改權限掩碼:

?

?le指令:

功能說明:辨識文件類型。

語法:?le [選項] 文件或目錄...?

常用選項: -c 詳細顯示指令執行過程,便于排錯或分析程序執行的情形。

-z 嘗試去解讀壓縮文件的內容

使用 sudo分配權限

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

格式:接受權限的用戶登陸的主機 =(執行命令的用戶) 命令

(2)使用 sudo 調用授權的命令

$ sudo –u 用戶名 命令

目錄的權限

可執行權限:如果目錄沒有可執行權限,則無法cd到目錄中

可讀權限:如果目錄沒有可讀權限,則無法用ls等命令查看目錄中的文件內容

可寫權限:如果目錄沒有可寫權限, 則無法在目錄中創建文件, 也無法在目錄中刪除文件

于是,問題來了~~

如果目錄沒換句話來講,就是只要用戶具有目錄的寫權限,用戶就可以刪除目錄中的文件,而不論這個用戶是否有這個文件的寫權限.。這好像不太科學啊,我張三創建的一個文件,憑什么被你李四可以刪掉? 我們用下面的過程印證一下有可寫權限,則無法在目錄中創建文件,也無法在目錄中刪除文件。

?為了解決這個不科學的問題, Linux引入了粘滯位的概。

粘滯位

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

一、超級管理員刪除

二、該目錄的所有者刪除

三、該文件的所有者刪除?

關于權限的總結

目錄的可執行權限是表示你可否在目錄下執行命令。

如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目, 即使目錄仍然有-r 讀權限(這 個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)。

而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄。但由于沒有目錄的讀權限。

所以在目錄下,即使可以執行ls命令,但仍然沒有權限讀出目錄下的文檔。

建立和刪除帶-的文件:

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

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

相關文章

ubuntu部署小筆記-采坑

ubuntu部署小筆記 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs項目問題一 如何訪問端口號配置后臺運行該進程pm2 問題二 包體過大生產環境下所需文件 問題三 部署在vercel時出現的問題需要魔法訪問后端api時,必須使用https協議電腦端訪問正常&#xf…

【聯盛德 W803-Pico 試用】簡介、工程測試

【聯盛德 W803-Pico 試用】簡介、工程測試 本文介紹了聯盛德微電子 W803-Pico 開發板的基本信息、環境搭建、工程測試等內容。簡介包含開發板功能、主控參數及特點、開發板原理圖等信息,工程測試包括 Blink、串口打印等方案的演示。 活動詳情:聯盛德問答…

cursor使用記錄

一、如何查看自己登錄的是哪個賬號 操作路徑:Cursor -- 首選項 -- Cursor Setting (有快捷鍵) 二、狀態修改為豎排(默認是橫排) 默認如圖展示,想要像vscode、idea等等在左側豎著展示 操作路徑&#xff1…

gitlab 解決雙重認證無法登錄remote: HTTP Basic: Access denied.

問題:gitlab開啟了雙因素認證 如進行了 OAuth configuration 在進行git操作時如下提示 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead o…

C語言基礎學習指南:從零入門到實戰應用——適合零基礎學習者與進階鞏固

目錄 一、C語言概述與開發環境搭建 二、核心語法與數據類型 三、控制結構與運算符 四、函數與模塊化編程 五、指針與內存管理 六、實踐建議與資源推薦 結語 一、C語言概述與開發環境搭建 C語言是一種高效、靈活的通用編程語言,廣泛應用于系統開發、嵌入式系…

C# 委托——lambda

lambda表達式不簡化寫起來和匿名函數很像,而匿名函數通常賦值給委托,通過委托進行調用。以下我們對lambda和委托的基本規則與使用進行整理,同時為了加深理解和記憶,我們整理了委托是如何一步步演化到lambda。 1. 委托 委托是一個…

【每日論文】TESS 2: A Large-Scale Generalist Diffusion Language Model

下載PDF或閱讀論文,請點擊:LlamaFactory - huggingface daily paper - 每日論文解讀 | LlamaFactory | LlamaFactory 摘要 我們推出了TESS 2,這是一種通用的指令跟隨擴散語言模型,其性能優于當代的指令調整擴散模型,有…

conda 配置源

無論是Anaconda vs Miniconda vs Miniforge 中的哪個,只要使用conda就涉及源,換源的目的是為了加速包的獲取 修改配置文件 通過修改用戶目錄下的 .condarc 文件來使用 不同系統下的 .condarc 目錄如下: Linux: ${HOME}/.condarcmacOS: ${…

AI大模型發展對語音直播交友系統源碼開發搭建的影響

近年來,AI大模型技術突飛猛進,為語音直播交友系統的源碼開發搭建帶來了深遠影響。本文將從技術發展層面,探討AI大模型如何賦能語音直播交友系統,并分析其對開發流程、功能實現和用戶體驗等方面帶來的變革。 一、技術賦能&#xff…

C++面試題,TCP和UDP方面(1)

個人主頁 : 個人主頁 個人專欄 : 《數據結構》 《C語言》《C》《Linux》《網絡》 《redis學習筆記》 文章目錄 前言TCP和UDP的區別UDP如何實現可靠TCP滑動窗口原理TCP流量控制TCP超時重傳總結 前言 這是個人總結的C方向的面試題,TCP和UDP方面&#xff0…

Huatuo熱更新--如何使用

在安裝完huatuo熱更新插件后就要開始學習如何使用了。 1.創建主框漸Main 新建文件夾Main(可自定義),然后按下圖創建文件,注意名稱與文件夾名稱保持一致 然后新建場景(Init場景),添加3個空物體…

Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek簡單調用示例

1. 版本說明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本: 2. springboot項目搭建 可以集成在自己的項目里,也可以到 spring.io 生成一個項目 生成的話,如下…

如何在 macOS 上配置 MySQL 環境變量

如何在 macOS 上配置 MySQL 環境變量 步驟 1: 查找 MySQL 安裝路徑 打開終端,使用以下命令查找 mysql 的可執行文件路徑: which mysql如果該命令沒有返回結果,可以使用 find 命令: sudo find / -name "mysql" 2>/de…

Unity Excel導表工具轉Lua文件

思路介紹 借助EPPlus讀取Excel文件中的配置數據,根據指定的不同類型的數據配置規則來解析成對應的代碼文本,將解析出的字符串內容寫入到XXX.lua.txt文件中即可 EPPlus常用API //命名空間 using OfficeOpenXml;//Excel文件路徑 var fileExcel new File…

【vue項目中如何實現一段文字跑馬燈效果】

在Vue項目中實現一段文字跑馬燈效果,可以通過多種方式實現,以下是幾種常見的方法: 方法一:使用CSS動畫和Vue數據綁定 這種方法通過CSS動畫實現文字的滾動效果,并結合Vue的數據綁定動態更新文本內容。 步驟&#xff…

AcWing走迷宮-最短路問題-BFS求解

題目描述 給定一個 n * m 的二維整數數組,用來表示一個迷宮,數組中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通過的墻壁。 最初,有一個人位于左上角 (1, 1) 處,已知該人每次可以向上、下、左、右任…

go 錯誤處理 error

普通錯誤處理 // 包路徑 package mainimport ("errors""fmt" )func sqrt(f1, f2 float64) (float64, error) {if f2 < 0 {return 0, errors.New("error: f2 < 0")}return f1 / f2, nil }func sqrt1(f1, f2 float64) {if re, err : sqrt(f…

MCU Bootloader具備什么條件才能跳轉到APP程序

在MCU系統中&#xff0c;BootLoader&#xff08;Boot&#xff09;跳轉到應用程序&#xff08;APP&#xff09;的條件通常由硬件和軟件協同控制&#xff0c;核心邏輯是確保APP的完整性和合法性。以下是關鍵條件及流程&#xff1a; 1. 硬件啟動模式選擇 BOOT引腳電平&#xff1a…

LeeCode題庫第二十八題

28.找出字符串第一個匹配項的下標 項目場景&#xff1a; 給你兩個字符串 haystack 和 needle &#xff0c;請你在 haystack 字符串中找出 needle 字符串的第一個匹配項的下標&#xff08;下標從 0 開始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;則返回 …

深入解析BFS算法:C++實現無權圖最短路徑的高效解決方案

在無權圖中&#xff0c;廣度優先搜索&#xff08;BFS&#xff09;是解決最短路徑問題的高效算法。接下來博主從專業角度深入探討其實現細節&#xff0c;并給出C代碼示例&#xff1a; 目錄 一、核心原理 二、算法步驟 三、C實現關鍵點 1. 數據結構 2. 邊界檢查 3. 路徑回溯…