Linux文件特殊權限管理及進程和線程

acl 權限優先級

擁有者 > 特殊指定用戶 > 權限多的組 >權限少的組 > 其他

mask閾值

mask是能夠賦予指定用戶權限的最大閥值

當設定完畢文件的acl列表之后用chmod縮小了文件擁有組的權力?mask會發生變化

恢復: ?setfacl -m m:?權限?:rwx????文件/mnt/timinglee

acl 列表的默認權限???

【指定用戶對特殊文件有特殊權限,設置后新創建的對象將繼承該目錄的默認 ACL 規則】

ls -l timinglee/

setfacl -m u:admint:rwx /mnt/timinglee??##只對于/mnt/westosdir目錄本身生效

但是timinglee目錄里面的內容還沒有開權限

setfacl -Rm u:admint:rwx /mnt/timinglee??##對于目錄和目錄中已經存在的內容生效

#以上的命令之針對與存在的文件生效,新建文件是不會被設定的

setfacl -m d:u:admint:rwx /mnt/timinglee/ ??##針對與/mnt/westosdir目錄中新建文件生效

d表示/mnt/timinglee目錄中新建目錄會自動復制default權限到文件或目錄的acl列表中】

attr權限

attr 權限,即文件屬性權限,是 Linux 系統中一種對文件或目錄賦予額外屬性的機制。它能進一步增強對文件訪問和操作的控制,提供了比傳統?r(讀)、w(寫)、x(執行)權限更細致的管控維度。這些屬性可以限制文件的某些操作,如防止文件被刪除、修改,或者使其只能追加寫入等。

#attr權限限制所有用戶

i???#不能作任何的更改

a???#能添加不能刪除

lsattr dir???// ??file ????##查看dir的attr權限

chattr +i|+a|-i|-a?dir??// ?file ??##設定attr權限

chattr +a?timinglee/ ????root超級用戶在timinglee也只能touch添加文件,不能刪除文件

chattr -a?timinglee/ ????關閉attr權限

進程和線程

進程:

進程是程序在操作系統中的一次執行過程,是系統進行資源分配和調度的基本單位。它包含了程序執行所需的各種資源,如內存空間、文件描述符等。

每個進程都有自己獨立的內存空間和系統資源,不同進程之間相互隔離 。

進程是靜態的代碼文件 。 ??進程是指程序運行時的形態

進程是程序的一個副本 。 ??進程是有生命周期的(準備期,運行期,終止期)

線程:

線程是進程中的一個執行單元,是 CPU 調度和分派的基本單位。

一個進程可以包含多個線程,這些線程共享進程的內存空間和系統資源

每個線程有自己獨立的棧空間和程序計數器、

線程之間可以并發執行,提高程序的執行效率

當進程是多任務,cpu是多核心,多任務應該同時被每個核心處理,每個核心處理的任務叫線程

進程與線程區別:

進程是資源調度以及分配的基本單位。
線程是cpu 調度的基本單位。

線程井發性較高。進程井發性較低

一個進程可以擁有多個線程
一個線程屬于一個進程

每個進程有獨立的虛擬地址空間。線程沒有獨立地址空間

一個線程発常,可能導致整個進程崩潰
一個進程前潰,不會影響其他進程

進程狀態

進程查看【應用程序的系統監視器】

gnome-system-monitor?????#打開圖形中的進程管理工具

常用進程查看命令的使用

ps???#進程查看

ps 命令的三種執行風格 unix bsd GNU

unix風格:

ps a ??與終端相關的進程(當用戶登陸系統后產生的進程都是帶終端的,當前運行的)

ps x ??與終端無關相關的進程 ??????ps ax查看相關和不相關的

ps u ??用戶信息歸類的查看方式 ??????aux

ps f ??進程層級關系

ps o ??顯示指定參數

ps ?選擇顯示分類 pid查看ID??comm命令名稱??nice值 ?pri優先級??pcpu父級進程cpu??ppid父級進程ID??stat?user用戶 ?group組?

bsd風格:

ps -e 顯示所有進程

ps -f 顯示信息的完整格式

ps -H 顯示進程的層級結構

ps -o 顯示指定參數

ps --sort=

ps ax顯示信息:

#PID 進程id ?#TTY 進程用到的終端 ?#STAT 進程狀態 ?#TIME 進程占用cpu時長

#COMMAND 進程名稱

ps aux顯示信息:

#?USER 進程所有人?#?PID 進程id??#%CPU 進程使用cpu的用量 ?#?%MEM 用到內存量

#?VSZ 使用的虛擬內存大小 ??#?RSS 進程常駐內存中的數據大小 #?TTY 用到的終端

#?STAT 進程狀態 ??#START 進程運行時長 ??#TIME 進程占用cpu時長

#COMMAND 進程名稱

ps ax - -sort=%cpu???#用cpu對進程排序

ps ax -o %cpu,%mem,comm?- -sort=-%cpu ??#進行倒序排序【查看cpu,內存,名稱

pgrep #進程過濾

#-u uid ???顯示指定id用戶進程【查看的是PID的】

#-U timinglee ??顯示指定timinglee用戶進程

#-t timinglee ??顯示指定終端進程

#-l ????顯示進程名稱 ???-lU?timinglee顯示更詳細的,或-lau?1000pid1000

#-a 顯示進程的完整名稱 ?????#-P?1000?輸入pid查看進程的子進程pid

pidof 進程名稱 ??##pidof vim ——查看vim的pid

# kill -9 35636 ????可以強制結束進程

top查看動態進程

top ??##動態進程查看

#top命令的參數 ????????????【查看的是外部命令】

#-d 指定刷新頻率 ???????????top -d 1????每1秒刷新一次

#-b 以批次方式顯示 ?????????top -d 1 -b 只顯示進程信息【可查看所有進程信息】

#-n 指定顯示的批次數量 ?????top -d 1 -n 2 ????刷新兩次結束

top中的內容顯示信息?

top什么時候開的 ??up運行 ?11:23運行多少時間 ??2 users?系統中有兩個用戶被使用

load average系統負載【分別是1min 5min 15min平均排隊時長】 ??

Tasks進程數 【running?正在運行,sleeping 休眠數,stopped 被暫停數,zombie?僵死數】

%Cpu(s) ?us 用戶空間 ?sy 內核空間 ?ni nice值調整時間 ?id 空閑時間 ?wa?等待io時間

hi?處理硬件中斷時間 ?si?處理軟件中斷時間 ?st 被偷走的時間(vm使用時間)

MiB Mem ??total, 總量 ??free?空閑 ??used 占用 ??buff/cache?緩存

MiB Swap: 交換分區用量

top內部快捷鍵指令

P ???cpu排序

M ???內存排序

T ???累計占用cpu時間排序

l 關閉/開啟uptime信息 ????【top一行會不顯示】

t 關閉/開啟cpu&task

s 指定刷新頻率

k 操作進程 ?????【默認是占用量最大的進程】

u 查看指定用戶進程

#PID 進程id ??#USER 進程所有者的用戶名 ??#PR 優先級 ??#NI nice值。負值是高優先級,正值表示低優先級 ??#VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES

#RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA

#SHR 共享內存大小,單位kb ???#S 進程狀態(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/停止,Z=僵尸進程) ????#%CPU 上次更新到現在的CPU時間占用百分比

#%MEM 進程使用的物理內存百分比

#TIME+ 進程使用的CPU時間總計,單位1/100秒 ??#COMMAND 命令名/命令行

進程的前后臺調用

# gedit

此時終端被占用

ctrl+z ??##把占用shell的進程打入后臺掛起【此時進程無法使用】

# bg????##把后臺掛起的進程運行起來

# fg????##把后臺進程調回前臺【需要使用進程時調回】

# gedit &???##運行進程在后臺

# jobs???##查看當前shell中在后臺的所有工作【需要ctrl+z將進程掛起

進程的優先級

1. 進程優先級(Process Priority)是?Linux 內核用于決定?CPU 資源分配的關鍵指標

2. 優先級越高的進程越有可能被?CPU 優先調度執行

優先級種類 【靜態和動態加在一起才叫優先級】

1. 靜態優先級:由用戶或管理員在進程啟動時或運行中手動設置,范圍?-20(最高優先級)到 19(最低優先級),數值越小優先級越高。

2. 動態優先級:由內核根據進程的運行狀態(如?CPU 使用時間、睡眠時長等)自動調整,以平衡系統資源分配。

靜態優先級的調整方法

watch -n 1 "ps ax -o pid,comm,nice,pri | grep gedit"

優先級范圍值: 0--139 , ?內核自控優先級范圍:0-99 , ?用戶可控優先級:100-139

查看進程pid和優先級

# ps ax -o pid,comm,nice,pri | grep gedit?

nice -n -5 cat ???##指定優先級打開進程

renice -n -5 62185??##更改優先級

再次查看結果:

進程信號的使用

用戶可控進程信號

編號0表示看一下進程存不存在

信號特點

可捕獲、阻塞和忽略:像 SIGHUP 、 SIGINT 、 SIGTERM 這類信號,進程可以編寫相應的信號處理函數來捕獲它們,也可以選擇阻塞(暫時不處理)或者忽略這些信號。

不可捕獲、阻塞和忽略: SIGKILL 和 SIGSTOP 信號比較特殊,進程無法對其進行捕獲、阻塞或忽略操作,這保證了在必要時可以強制終止或暫停進程。

# ps ?可查看進程ID

# kill -19 74594 ????【74594終端進程暫停了,無法輸入以及刪除】

# kill -20 74594 ????【74594終端進程沒有暫停,但是vim的進程會被暫停

#進程信號控制工具

kill 進程信號 pid ????#處理精確指定的進程

killall 進程信號 進程名字 ??#按照進程名稱批量處理進程

pkill 進程信號 進程條件 ??#按照條件處理進程

# kill -9 62185?????????處理62185進程

# killall -9 vim?????????處理vim所有進程

# pkill?-u timinglee?-9 ??處理timinglee用戶進程【在另一個終端運行

運行結果:[timingleeaTiminglee ~ ] $ killed

systemd守護進程

守護進程是什么

1. 守護進程(Daemon)是一種在后臺持續運行的特殊進程,它不與終端直接交互,通常在系統啟動時自動啟動,并在系統關閉時才停止。

2. 守護進程的設計目的是為系統提供各種服務,例如網絡服務(如?HTTP 服務器、FTP 服務器)、日志服務、定時任務服務等。它們默默地在后臺運行,為其他進程和用戶提供支持,確保系統的正常運行。

守護進程的特點

在后臺運行:守護進程不會占用終端,不會受到用戶登錄或注銷影響,持續在后臺執行任務。

生命周期長:一般從系統啟動開始運行,直到系統關閉才停止,為系統提供長期穩定的服務。

無控制終端:守護進程沒控制終端,不會接收來自終端的輸入,也不會將輸出顯示在終端上。

自成進程組和會話:守護進程通常會創建自己的進程組和會話,以確保獨立于控制終端和其他進程。

Systemd 守護進程

1. Systemd 是?Linux 系統中新一代的初始化系統(init system),它旨在替代傳統的?SysVinit 和Upstart 等初始化系統 。

2. Systemd 提供了一套強大的工具和機制,用于管理系統的啟動、服務的管理、資源的分配等。它的設計目標是提高系統的啟動速度、簡化服務管理、增強系統的可靠性和可維護性。

守護進程管理命令systemctl

示例:

systemctl status firewalld? ——查看防火墻狀態

關閉狀態

開啟狀態

systemctl disable firewalld? ? ——設定防火墻開啟不啟動【- -now 并當前開啟服務】

systemctl enable firewalld? ?——設定服務開機啟用

systemctl list-units? ? ——查看系統所有服務當前狀態

systemctl list-unit-files? ? ——查看服務開機狀態

enable表示掛載點啟用,disabled表示禁用,static表示靜態,transient表示臨時的,generated是自動生成的】

systemctl list-dependencies firewalld? ——列出服務依賴性

systemctl mask firewalld? ?——凍結服務

systemctl set-default multi-user.target? ?——設定系統運行無圖形網絡模式

systemctl get-default? ? ——查看系統運行模式

init 3運行結果:

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

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

相關文章

NVIDIA AgentIQ 詳細介紹

NVIDIA AgentIQ 詳細介紹 1. 引言 NVIDIA AgentIQ 是一個靈活的庫,旨在將企業代理(無論使用何種框架)與各種數據源和工具無縫集成。通過將代理、工具和代理工作流視為簡單的函數調用,AgentIQ 實現了真正的可組合性:一…

算法設計與分析5(動態規劃)

動態規劃的基本思想 將一個問題劃分為多個不獨立的子問題,這些子問題在求解過程中可能會有些數據進行了重復計算。我們可以把計算過的數據保存起來,當下次遇到同樣的數據計算時,就可以查表直接得到答案,而不是再次計算 動態規劃…

怎么理解量子比特模型,遷移到量子計算機開始編程

怎么理解量子比特模型,遷移到量子計算機開始編程 視頻鏈接: 好的現在是2025年的3月最后一天,3月31號,今天我們討論的話題是量子編程,也就是在量子計算機上,使用特定的語言進行軟件開發。當然我們要討論的,不是,量子編程的某一門語言的技術細節,而是考慮…

使用Expo框架開發APP——詳細教程

在移動應用開發日益普及的今天,跨平臺開發工具越來越受到開發者青睞。Expo 是基于 React Native 的一整套工具和服務,它能夠大幅降低原生開發的門檻,讓開發者只需關注業務邏輯和界面實現,而不用糾結于復雜的原生配置。本文將從零開…

windows技術基礎知識

NT架構 NT 就是new techonology 的英文單詞縮寫,是微軟1993年推出操作系統的重大升級,如內存管理,安全機制,多任務,多線程支持。在此之前操作系統都是基于MS-DOS上面的圖形化界面,只有有限的內存管理和多任…

迪杰斯特拉+二分+優先隊列+拓撲+堆優化(奶牛航線Cowroute、架設電話線dd、路障Roadblocks、奶牛交通Traffic)

原文地址 https://fmcraft.top/index.php/Programming/2025040402.html 主要算法 迪杰斯特拉Dijkstra 題目列表 P1:奶牛航線Cowroute 題目描述 題目描述 Bessie已經厭倦了農場冬天的寒冷氣候,她決定坐飛機去更溫暖的地方去度假。不幸的是&#xf…

#Liunx內存管理# 在32bit Linux內核中,用戶空間和內核空間的比例通常是3:1,可以修改成2:2嗎?

在32位Linux內核中,用戶空間和內核空間的3:1默認比例可以修改為2:2,但需要權衡實際需求和潛在影響。以下是具體分析: 一、修改可行性 1.技術實現 通過內核啟動參數調整虛擬地址空間劃分,例如在GRUB配置中添加mem2G參數&#xff0c…

JAVA:使用 Curator 進行 ZooKeeper 操作的技術指南

1、簡述 Apache Curator 是一個基于 ZooKeeper 的 Java 客戶端庫,它極大地簡化了使用 ZooKeeper 的開發工作。Curator 提供了高層次的 API,封裝了很多復雜的 ZooKeeper 操作,例如連接管理、分布式鎖、Leader 選舉等。 在分布式系統中&#…

Julia語言的測試覆蓋率

Julia語言的測試覆蓋率探討 引言 在現代軟件開發中,測試是確保軟件質量的重要環節。隨著軟件的復雜度不斷增加,測試覆蓋率作為衡量測試質量的一個重要指標,受到了越來越多開發者的關注。Julia語言作為一種高性能的動態編程語言,…

【萬字總結】前端全方位性能優化指南(八)——Webpack 6調優、模塊聯邦升級、Tree Shaking突破

構建工具深度優化——從機械配置到智能工程革命 當Webpack配置項突破2000行、Node進程內存耗盡告警時,傳統構建優化已觸及工具鏈的物理極限:Babel轉譯耗時占比超60%、跨項目模塊復用催生冗余構建、Tree Shaking誤刪關鍵代碼引發線上事故……構建流程正從「工程問題」演變為「…

使用MCP服務器實現AI任務完成通知:讓Cursor更智能

0. 簡介 在使用AI工具進行長時間任務時,常常需要等待結果。MCP(Model Context Protocol)服務器"mcp_server_notify"提供了一個優雅的解決方案,讓AI在完成任務后通過系統通知提醒你。本文將介紹如何在Cursor中配置和使用…

Java面試黃金寶典33

1. 什么是存取控制、 觸發器、 存儲過程 、 游標 存取控制 定義:存取控制是數據庫管理系統(DBMS)為保障數據安全性與完整性,對不同用戶訪問數據庫對象(如表、視圖等)的權限加以管理的機制。它借助定義用戶…

DataX實戰教程

需求: 用datax同步mysql: 192.168.236.134中test1庫的user表到192.168.236.136中test1庫的user表 步驟: 下載安裝包 https://github.com/alibaba/DataX/blob/master/userGuid.md 進入引導頁 https://github.com/alibaba/DataX/blob/ma…

C#/.NET/.NET Core技術前沿周刊 | 第 32 期(2025年3.24-3.31)

前言 C#/.NET/.NET Core技術前沿周刊,你的每周技術指南針!記錄、追蹤C#/.NET/.NET Core領域、生態的每周最新、最實用、最有價值的技術文章、社區動態、優質項目和學習資源等。讓你時刻站在技術前沿,助力技術成長與視野拓寬。 歡迎投稿、推薦…

c++基礎-----c++ 成員變量初始化順序

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 描述 在C中,類的成員變量初始化的順序是由它們在類中聲明的順序決定的,而不是由它們在構造函數初始化列表中的順序決定的。這意味著無論你在構造函數初始化列表中如何…

Pascal語言的貪心算法

貪心算法與Pascal語言 引言 在算法設計與分析中,貪心算法是一類重要的算法策略。它以一種直接而高效的方式解決問題,尤其適合那些可以通過局部最優解推導出全局最優解的問題。在本文中,我們將探討貪心算法的基本概念、工作原理及其在Pascal…

Sensodrive力控關節模組SensoJoint:TüV安全認證助力機器人開發

在機器人技術領域,安全性和開發效率是行業關注的重點。SensoDrive的SensoJoint 機器人力控關節模組,憑借其可靠的安全性能和高效的開發優勢,正在為機器人開發提供有力支持。 2025年3月31日,SensoDrive的 SensoJoint 力控關節模組獲…

自動駕駛04:點云預處理03

點云組幀 感知算法人員在完成點云的運動畸變補償后,會發現一個問題:激光雷達發送的點云數據包中的點云數量其實非常少,完全無法用來進行后續感知和定位層面的處理工作。 此時,感知算法人員就需要對這些數據包進行點云組幀的處理…

棧回溯和離線斷點

棧回溯和離線斷點 棧回溯(Stack Backtrace) 棧回溯是一種重建函數調用鏈的技術,對于分析棧溢出的根本原因非常有價值。 實現方式 // 簡單的棧回溯實現示例(ARM Cortex-M架構) void stack_backtrace(void) {uint32_…

Vue3學習二

認識組件的嵌套 還可以將Main中內容再劃分 scoped防止組件與組件之間的樣式相互污染 組件的通信 父子組件之間通信的方式 父組件傳遞給子組件 給傳過來的內容做限制 type為傳的內容的屬性類型,required為true表示該內容是必須傳的,default為&#xff0c…