Shell
Linux是一種開源的、基于Unix的操作系統(tǒng),它因其靈活性、穩(wěn)定性和高性能而廣泛應(yīng)用于服務(wù)器、嵌入式系統(tǒng)、超級計(jì)算機(jī)、桌面計(jì)算等領(lǐng)域。
Linux內(nèi)核(Linux Kernel)是操作系統(tǒng)的核心,負(fù)責(zé)與硬件直接交互,為用戶空間(應(yīng)用程序和服務(wù))提供資源管理和系統(tǒng)服務(wù)的接口。
Linux內(nèi)核(Linux Kernel)的主要職責(zé):
?硬件抽象:將底層硬件資源(如CPU、內(nèi)存、硬盤等)抽象成更易于使用的接口。
?資源管理:負(fù)責(zé)分配和管理CPU時(shí)間、內(nèi)存空間、文件系統(tǒng)和其他資源。
?系統(tǒng)調(diào)用接口:提供一組API,供用戶程序通過系統(tǒng)調(diào)用訪問硬件或操作系統(tǒng)功能。
?設(shè)備驅(qū)動:管理各種硬件設(shè)備(如鍵盤、顯示器、網(wǎng)絡(luò)卡等)。
一般來說,我們用戶是沒有辦法直接跟Linux內(nèi)核(Linux Kernel)交互的,而是通過Shell來間接與Linux內(nèi)核(Linux Kernel)交互的。
Shell是用戶與內(nèi)核之間的交互界面,是一種命令解釋器(外殼程序)。它==將用戶輸入的命令翻譯為內(nèi)核可以理解的系統(tǒng)調(diào)用==,進(jìn)而控制操作系統(tǒng)的行為。
主要作用:
?命令解析:解釋并執(zhí)行用戶輸入的命令(如文件操作、程序運(yùn)行等)。
?腳本支持:可以運(yùn)行編寫好的 Shell 腳本,實(shí)現(xiàn)任務(wù)自動化。
?提供用戶環(huán)境:允許用戶執(zhí)行程序、管理文件和配置系統(tǒng)。
類比于Windows操作系統(tǒng),Windows GUI就是相當(dāng)于Linux中的Shell,我們操作Windows并不是直接操作其內(nèi)核,而是通過圖形接口來完成各種操作。
用戶權(quán)限
在Linux系統(tǒng)中,root用戶和普通用戶是兩類不同權(quán)限級別的用戶,分別承擔(dān)著系統(tǒng)管理和普通操作的角色。
?root用戶:Linux系統(tǒng)中的超級管理員,擁有系統(tǒng)中所有資源的最高權(quán)限,可以執(zhí)行任何操作。
?普通用戶:系統(tǒng)中權(quán)限受限的用戶,主要用于日常操作。
root用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。
切換用戶
1. 從普通用戶切換到root用戶:
? 使用 su 命令:
su
輸入 root 密碼后切換。
注意,這里的切換直接是從當(dāng)前目錄切換到普通用戶。
可以看到,root用戶時(shí)的目錄是LinuxCode,而切換到普通用戶后目錄依然是LinuxCode。
2. 從root用戶切換到普通用戶:
? 退出 root 用戶:
exit
? 指定切換到某個(gè)普通用戶:
su username
3.su -指令
su -指令在切換用戶時(shí)就相當(dāng)于重新登錄,不會在原有的目錄下切換。
? root 用戶的默認(rèn)目錄:
/root
? 普通用戶的默認(rèn)目錄:
/home/username
sudo
普通用戶的權(quán)限是比較小的,可以執(zhí)行的操作也較少,但有的時(shí)候是需要普通用戶執(zhí)行越權(quán)操作的,這個(gè)時(shí)候就要使用到sudo指令。
sudo(Superuser DO)是Linux和Unix系統(tǒng)中用于以root用戶或其他特權(quán)用戶身份執(zhí)行命令的工具。它允許普通用戶在不直接登錄root用戶的情況下臨時(shí)提升權(quán)限,從而減少誤操作的風(fēng)險(xiǎn)并提高系統(tǒng)安全性。
正常來說,普通用戶想要使用sudo還需要將該普通用戶加入到白名單中,具體的配置文件在/etc/sudoers,我們可以用 vim 打開然后將普通用戶加入白名單。
vim /etc/sudoers
(演示環(huán)境為Ubuntu 20.04.6)
使用示例:
sudo apt update
系統(tǒng)會提示輸入當(dāng)前用戶的密碼(而不是root用戶的密碼),然后以root權(quán)限執(zhí)行命令。
文件與目錄權(quán)限
訪問者
Linux中的每個(gè)文件和目錄的訪問者主要由以下三部分組成:
1.用戶(Owner):文件或目錄的擁有者。
2.用戶組(Group):一組用戶,可以共享文件或目錄的權(quán)限。
3.其他人(Others):除了文件擁有者和用戶組之外的其他用戶。
權(quán)限表示
Linux使用rwx模式表示權(quán)限:
1.r(read):讀取權(quán)限。
? 對文件:可以查看內(nèi)容。
? 對目錄:可以列出目錄內(nèi)容。
2.w(write):寫入權(quán)限。
? 對文件:可以修改內(nèi)容。
? 對目錄:可以創(chuàng)建、刪除或重命名目錄內(nèi)的文件。
3.x(execute):執(zhí)行權(quán)限。
? 對文件:可以作為程序運(yùn)行。
? 對目錄:可以進(jìn)入該目錄。
每個(gè)文件的權(quán)限用 10 個(gè)字符表示,例如:
-rwxr-xr--
第一個(gè)字符:文件類型
?-表示普通文件
?d表示目錄
?l表示符號鏈接
?b表示塊設(shè)備文件(例如硬盤、光驅(qū)等)
?p表示管道文件
?c表示字符設(shè)備文件(例如屏幕等串口設(shè)備)
?s表示套接口文件
接下來的 9 個(gè)字符:分為三組(用戶、用戶組、其他人)。
? 用戶(Owner):rwx表示可讀、可寫、可執(zhí)行
? 用戶組(Group):r-x表示可讀、不可寫、可執(zhí)行
? 其他人(Others):r--表示可讀、不可寫、不可執(zhí)行
文件的權(quán)限還可以使用八進(jìn)制和二進(jìn)制表示:
權(quán)限 | 八進(jìn)制 | 二進(jìn)制 |
rwx | 7 | 111 |
rw- | 6 | 110 |
r-w | 5 | 101 |
r– | 4 | 100 |
-wr | 3 | 011 |
-w- | 2 | 010 |
–x | 1 | 001 |
— | 0 | 000 |
使用ls -l(ll) 指令來查看文件和目錄的權(quán)限:
ls -l
輸出示例:
-rw-r--r-- 1user group 1234Dec 110:00file.txt
?-rw-r--r--:權(quán)限位。
?user:文件擁有者。
?group:文件所屬的用戶組。
修改權(quán)限
1.chmod命令:用于修改文件或目錄的權(quán)限。
? 符號模式:
chmod u+x file.txt # 給擁有者增加執(zhí)行權(quán)限 chmod g-w file.txt # 去掉用戶組的寫權(quán)限 chmod o+r file.txt # 給其他用戶增加讀取權(quán)限 chmod o=r filename # 設(shè)置其他用戶的權(quán)限為只讀(覆蓋其他權(quán)限)
? 數(shù)字模式(每種權(quán)限對應(yīng)一個(gè)數(shù)字):
?r= 4
?w= 2
?x= 1
? 無權(quán)限 = 0
? 權(quán)限組合:rwx= 7,rw-= 6,r--= 4 等。
chmod754file.txt # 設(shè)置權(quán)限為 rwxr-xr--
?-R遞歸修改權(quán)限:
//對目錄及其子目錄和文件修改權(quán)限 chmod -R755/path/to/directory
2.chown命令 和chgrp:修改文件的擁有者和用戶組。
chown user file.txt # 更改文件擁有者 chgrp group file.txt # 更改文件用戶組 chown user:group file.txt # 更改文件擁有者和用戶組
?-R遞歸修改:
chown -R user:group /path/to/directory
umask
umask(User File Creation Mode Mask)是一個(gè)用于設(shè)置文件和目錄的默認(rèn)權(quán)限的命令或配置。它定義了新創(chuàng)建的文件或目錄的權(quán)限屏蔽位,從而控制默認(rèn)權(quán)限的初始值。
1.文件和目錄的默認(rèn)權(quán)限
? 在Linux中,新創(chuàng)建的文件和目錄的權(quán)限基于以下默認(rèn)值:
?文件:666(可讀寫,無執(zhí)行權(quán)限)。
?目錄:777(可讀寫執(zhí)行)。
? 然而,這些默認(rèn)權(quán)限會被umask所屏蔽,最終權(quán)限是:
最終權(quán)限 = 默認(rèn)權(quán)限 - umask
2.umask的表示形式
umask 的值通常有4位,但第一位的 0 表示特殊權(quán)限,不用理會,所以可將其視為3位八進(jìn)制數(shù)字,每一位分別表示權(quán)限屏蔽:
?第一位:用戶(Owner)。
?第二位:用戶組(Group)。
?第三位:其他人(Others)。
屏蔽規(guī)則:
? 4:屏蔽讀取權(quán)限(r)。
? 2:屏蔽寫入權(quán)限(w)。
? 1:屏蔽執(zhí)行權(quán)限(x)。
? 0:不屏蔽任何權(quán)限。
比如,umask的值為 0002,表示對其他人的寫入權(quán)限(w)進(jìn)行屏蔽;0033表示對用戶組和其他人的寫入權(quán)限(w)和執(zhí)行權(quán)限(x)進(jìn)行屏蔽。
3.查看和設(shè)置 umask
查看當(dāng)前 umask 值:
umask
設(shè)置umask:
umask0xxx //將umask碼設(shè)置成0xxx
目錄權(quán)限
在Linux系統(tǒng)中,目錄權(quán)限(Directory Permissions)決定了用戶對目錄的訪問和操作能力。目錄的權(quán)限與文件的權(quán)限類似,但其具體作用略有不同,因?yàn)槟夸浿饕糜诮M織文件,而不是直接存儲內(nèi)容。
讀權(quán)限(r,read)
? 允許查看目錄下的文件和子目錄列表。
? ==沒有執(zhí)行權(quán)限==時(shí),無法進(jìn)入目錄,即使有讀權(quán)限也無法查看目錄內(nèi)容。
寫權(quán)限(w,write)
? 允許在目錄內(nèi)進(jìn)行寫操作,包括:
? 創(chuàng)建新文件或目錄。
? 刪除或重命名文件/子目錄。
? ==需要執(zhí)行權(quán)限配合==才能生效。
執(zhí)行權(quán)限(x,execute)
? 允許進(jìn)入目錄。
? 沒有讀權(quán)限時(shí),可以進(jìn)入目錄但無法列出內(nèi)容。
粘滯位
粘滯位(Sticky Bit)是 Linux 和 Unix 系統(tǒng)中的一種特殊權(quán)限,主要用于目錄權(quán)限管理。它==確保目錄內(nèi)的文件只能由文件的所有者或具有管理員權(quán)限的用戶刪除或修改==,即使目錄本身的寫權(quán)限對其他用戶開放。
1.粘滯位的作用
在常規(guī)權(quán)限設(shè)置下,==如果一個(gè)用戶對目錄有寫權(quán)限,就可以刪除或修改該目錄中的任何文件,而不管這些文件是否屬于自己==。粘滯位的作用是限制這種行為,提供更精細(xì)的權(quán)限控制:
? 只有文件的所有者、目錄的所有者或超級用戶(root)才能刪除或修改文件。
? 其他用戶即使對目錄有寫權(quán)限,也不能刪除或修改非自己創(chuàng)建的文件。
2.粘滯位的典型使用場景
? 公共目錄:
? 如/tmp目錄,所有用戶都可以在其中創(chuàng)建文件,但不能隨意刪除其他用戶的文件。
? /tmp 的權(quán)限通常設(shè)置為:
drwxrwxrwt # 注意最后的 t 表示啟用了粘滯位
? 協(xié)作環(huán)境:
? 共享目錄中,不同用戶可以創(chuàng)建自己的文件,但不能影響其他用戶的文件。
3.查看和設(shè)置粘滯位
使用ls -ld命令可以查看目錄的權(quán)限狀態(tài):
ls -ld directory_name
示例輸出:
? 最后一位的t表示該目錄啟用了粘滯位。
?rwxrwxr-是基本權(quán)限(用戶、組、其他用戶)。
使用chmod命令可以設(shè)置或移除粘滯位。
//添加粘滯位 chmod +t directory chmod1775directory //粘滯位對應(yīng)的八進(jìn)制值是 1000 //移除粘滯位 chmod -t directory chmod0775directory
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3662瀏覽量
130617 -
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212319 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7025瀏覽量
124702 -
Shell
+關(guān)注
關(guān)注
1文章
371瀏覽量
23822
原文標(biāo)題:【Linux系統(tǒng)】權(quán)力與優(yōu)雅:Linux 權(quán)限的隱秘詩篇
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
LINUX修改文件權(quán)限
linux的權(quán)限和指令
Linux 中文件權(quán)限管理的探討
Linux系統(tǒng)文件權(quán)限細(xì)節(jié)分析
淺談Linux權(quán)限管理的ACL權(quán)限
Linux進(jìn)程權(quán)限的分析說明
Linux基礎(chǔ)的用戶權(quán)限
Linux系統(tǒng)如何修改文件屬性與權(quán)限

linux文件訪問權(quán)限怎么設(shè)置
Linux把目錄權(quán)限給指定用戶
Linux用戶身份與進(jìn)程權(quán)限詳解

評論