【Linux】權(quán)限相關(guān)指令
前言:
本文我們來講Linux中關(guān)于權(quán)限中的一些指令
shell命令
Linux嚴(yán)格來說是一個(gè)操作系統(tǒng),我們稱之為“核心”(kernel)。而作為用戶的我們并不能直接與核心交流,這時(shí)候就有一個(gè)中間人的角色出現(xiàn):將我們的指令翻譯為核心可以看懂的符號,交由核心執(zhí)行,并將執(zhí)行結(jié)果翻譯并返回給我們。
這個(gè)中間人就是“包裹”在核心外的“外殼程序”,介于我們和核心之前。我們稱之為:shell命令
從技術(shù)層面來講,shell的最簡單定義就是:命令解釋器。其主要功能就是:
1.將命令翻譯后交給核心執(zhí)行
2.將核心執(zhí)行的結(jié)果翻譯并返回給我們
形象理解shell:
假如小y過年回家打算相親了,打算小y并不擅長與異性交流,這時(shí)候就拜托了媒人王姨作為中間人,幫忙小y和異性之前傳話。這時(shí)候王姨就是“外殼程序”shell。
為什么要有shell?
1.方便用戶使用
2.作為外殼程序,保護(hù)核心
補(bǔ)充:
權(quán)限概念
Linux中權(quán)限分為兩種:root賬號、普通賬號
root賬號:為超級權(quán)限賬號,不受任何權(quán)限限制
普通賬號:受到權(quán)限限制,在Linux中只能做有限的事
su
命令:su 用戶名
功能:切換賬號
hyc@hcss-ecs-4ce7:/$ whoami hyc #切換root賬號執(zhí)行su即可 hyc@hcss-ecs-4ce7:/$ su #輸入root賬號密碼 Password: root@hcss-ecs-4ce7:/# whoami root #切換普通賬號:su 用戶名(不需要密碼) root@hcss-ecs-4ce7:/# su hyc hyc@hcss-ecs-4ce7:/$ whoami hyc
補(bǔ)充:普通用戶 -> root賬號,除了su可以實(shí)現(xiàn),su -也可以實(shí)現(xiàn)。但是區(qū)別是?
hyc@hcss-ecs-4ce7:/$ pwd / hyc@hcss-ecs-4ce7:/$ su Password: root@hcss-ecs-4ce7:/# whoami root root@hcss-ecs-4ce7:/# pwd / hyc@hcss-ecs-4ce7:/$ pwd / hyc@hcss-ecs-4ce7:/$ su - Password: root@hcss-ecs-4ce7:~# whoami root root@hcss-ecs-4ce7:~# pwd /root #我們可以看到su、su-,都成功的切換到了root。 #不同的是su切換賬號并不會(huì)改變之前所處路徑,既su不會(huì)改變位置 #而su-會(huì)改變位置,之前是/下,切換之后在/root下 
sudo:短暫的指令提權(quán)
如果我們需要使用root權(quán)限來執(zhí)行一些指令,但是卻沒有root密碼怎么辦?
在指令最前面加上sudo,就可以使用root權(quán)限執(zhí)行命令
hyc@hcss-ecs-4ce7:~$sudo ls [sudo] passwordforhyc:
這樣確實(shí)方便,但是有一個(gè)問題:那豈不是人人都可以使用root權(quán)限了?這不亂套了?
Linux設(shè)計(jì)者當(dāng)然考慮到了這個(gè)問題,普通用戶如果想要使用sudo進(jìn)行指令提權(quán)。必須要root賬號給予普通賬號提權(quán)權(quán)限才行。所以并不是什么普通賬號都可以進(jìn)行提權(quán)
沒有提權(quán)權(quán)限的賬戶,就會(huì)顯示以下報(bào)錯(cuò)
hyc@hcss-ecs-4ce7:~$ sudo ls [sudo] password for hyc: hyc is not in the sudoers file. This incident will be reported.
總結(jié):
普通 -> root:su(不會(huì)改變位置)
su-(會(huì)改變位置:默認(rèn)切換至家目錄)
root -> 普通:su 用戶名
sodu : 指令提權(quán)
權(quán)限管理
權(quán)限的本質(zhì)是:能做或者不能做什么事情(控制用戶行為,防止錯(cuò)誤操作)
理解:
1.權(quán)限限制的是人
2.權(quán)限要求目標(biāo)必須具備對應(yīng)屬性:權(quán)限:角色+目標(biāo)屬性(權(quán)限)
屬性
對于Linux中的屬性來說主要為三個(gè):讀、寫、執(zhí)行
讀:r
寫:w
執(zhí)行:x
之前我們說過第一個(gè)字母代表文件屬性,而后面的一串字符則代表該文件的權(quán)限。
r:對文件來說,代表可以讀取文件內(nèi)容;對目錄來說,代表可以瀏覽目錄內(nèi)容
w:對文件來說,代表可以修改文件內(nèi)容;對目錄來說,代表可以刪除目錄中的內(nèi)容
x:對文件來說,代表可以執(zhí)行該文件;對目錄來說,代表可以進(jìn)入該目錄
但是為什么這里有多個(gè)wrx呢?這就涉及到角色的問題。
角色
上面我們說了權(quán)限=角色+對應(yīng)屬性。
屬性代表相應(yīng)的角色擁有什么權(quán)限,那么我們是如何分辨角色呢?如何知道角色對應(yīng)所擁有的權(quán)限呢?
首先我們可以通過命令行得知我們當(dāng)前的角色、或者使用whoami指令
然后根據(jù)當(dāng)前用戶,來判斷其說擁有的權(quán)限
解釋:
我們當(dāng)前用戶是root,對于第一個(gè)目錄來說,我們就是其擁有者。所對應(yīng)擁有的權(quán)限則是rwx
而什么是所屬組?什么是other呢?
所屬組就是當(dāng)前角色不是擁有者,但是與擁有者在同一個(gè)隊(duì)伍中。這時(shí)候就會(huì)匹配所屬組權(quán)限,這時(shí)候這個(gè)角色就是所屬者。
所屬組的存在是為了更精細(xì)化的權(quán)限管理。舉例:a組和b組都在同一臺Linux機(jī)器上開發(fā)項(xiàng)目,a組項(xiàng)目代碼需要公開出來讓a組全體成員都能看見,但是不希望b組看見。這時(shí)候就只需要將a組全體成員納入所屬組中,然后將other權(quán)限關(guān)閉,就可以實(shí)現(xiàn)。(現(xiàn)在很少用到了,了解即可)
other就是既不屬于擁有者,也不屬于所屬者的角色。這時(shí)候就會(huì)匹配other權(quán)限。
如何描述文件權(quán)限信息?
`-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt`
對于new.txt這個(gè)文件來說權(quán)限的描述應(yīng)該為:擁有者權(quán)限為rw,所屬組權(quán)限為r,other權(quán)限為r。
文件權(quán)限表示方法
1.字符表示法
3個(gè)字母為一組,分別為:r、w、x,如沒有對應(yīng)權(quán)限則用 " - "表示。其順序是固定的不可交換
2.8進(jìn)制表示法
chmod指令
語法:chmod 參數(shù) 權(quán)限 文件名
功能:改變文件權(quán)限(只有root或者文件擁有者才有資格修改權(quán)限)
選項(xiàng):
-R:遞歸的將目錄下的文件權(quán)限全部修改
參數(shù):
u:擁有者
g:所屬組
o:other
a:有所用戶
實(shí)際操作展示 :
root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-r--r-- 1 root root 22902 May 18 11:51 new.txt #關(guān)閉u的w權(quán)限 root@hcss-ecs-4ce7:~# chmod u-w new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -r--r--r-- 1 root root 22902 May 18 11:51 new.txt #開放u的w權(quán)限 root@hcss-ecs-4ce7:~# chmod u+w new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-r--r-- 1 root root 22902 May 18 11:51 new.txt #關(guān)閉u的多條權(quán)限 root@hcss-ecs-4ce7:~# chmod u-rw new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new ----r--r-- 1 root root 22902 May 18 11:51 new.txt #開放u的多條權(quán)限 root@hcss-ecs-4ce7:~# chmod u+rw new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-r--r-- 1 root root 22902 May 18 11:51 new.txt #開放g的w權(quán)限 root@hcss-ecs-4ce7:~# chmod g+w new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-rw-r-- 1 root root 22902 May 18 11:51 new.txt #關(guān)閉g的w權(quán)限 root@hcss-ecs-4ce7:~# chmod g-w new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-r--r-- 1 root root 22902 May 18 11:51 new.txt #以此類推,其他的權(quán)限操作類似
另外也可以通過八進(jìn)制來實(shí)現(xiàn)多個(gè)用戶權(quán)限的修改:
root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-r--r-- 1 root root 22902 May 18 11:51 new.txt #通過3個(gè)8進(jìn)制數(shù)字實(shí)現(xiàn),對多個(gè)用戶權(quán)限修改 root@hcss-ecs-4ce7:~# chmod 000 new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new ---------- 1 root root 22902 May 18 11:51 new.txt root@hcss-ecs-4ce7:~# chmod 663 new.txt root@hcss-ecs-4ce7:~# ls -l total 28 drwxr-xr-x 5 root root 4096 May 20 13:58 new -rw-rw--wx 1 root root 22902 May 18 11:51 new.txt
修改權(quán)限注意事項(xiàng)
1.任何人都可以修改文件權(quán)限嗎?
只有root和文件擁有者才能修改權(quán)限!
2.如果在進(jìn)行相應(yīng)操作時(shí)沒有權(quán)限會(huì)怎么樣?
系統(tǒng)會(huì)拒絕我們的指令請求
hyc@hcss-ecs-4ce7:~$ ls -l total 0 -rw-rw-r-- 1 hyc hyc 0 May 24 23:07 new.txt hyc@hcss-ecs-4ce7:~$ chmod u-r new.txt hyc@hcss-ecs-4ce7:~$ ls -l total 0 --w-rw-r-- 1 hyc hyc 0 May 24 23:07 new.txt hyc@hcss-ecs-4ce7:~$ cat new.txt cat: new.txt: Permission denied
3.確定權(quán)限信息時(shí),系統(tǒng)會(huì)先確認(rèn)誰?
先確認(rèn)擁有者權(quán)限,再確認(rèn)所屬組,最后是other。權(quán)限只會(huì)確定一次,不會(huì)多次確定,第一次匹配上的權(quán)限既為我們當(dāng)前角色所擁有的權(quán)限。
4.root賬號權(quán)限?
擁有最高權(quán)限,不受一切權(quán)限的限制。所有設(shè)定的限制只針對普通賬號有用。
5.可執(zhí)行權(quán)限?
我們之前所講的例子中都沒有可執(zhí)行樣例,其實(shí)可執(zhí)行程序是.exe文件。普通文件一般沒有x權(quán)限,當(dāng)然即使擁有x權(quán)限也無法執(zhí)行,因?yàn)槠浔旧砭筒皇强蓤?zhí)行文件。
chown與chgrp指令
語法:chown 用戶名 文件名
功能:改變文件或目錄的擁有者
選項(xiàng):-R 遞歸的修改目錄中所有文件的擁有者
語法:chgrp 所屬組名 文件名
功能:修改文件或目錄的所屬組
選項(xiàng):-R遞歸修改目錄中所有文件的所屬組
使用chown修改擁有者、chgrp修改所屬組出現(xiàn)問題?
hyc@hcss-ecs-4ce7:~$ ls -l total 0 -rw-rw-rw- 1 hyc hyc 0 May 24 23:07 new.txt hyc@hcss-ecs-4ce7:~$ chown root new.txt chown: changing ownership of 'new.txt': Operation not permitted hyc@hcss-ecs-4ce7:~$ chgrp root new.txt chgrp: changing group of 'new.txt': Operation not permitted
原因:
系統(tǒng)并不支持隨意的將文件的擁有者或所屬組修改,這一操作只有root權(quán)限才能被允許。所以在要在這句指令前加上sodu,或者切換為root賬號。
下面我切換為root賬號作為演示:
root@hcss-ecs-4ce7:~# ls -l total 24 -rw-rw--wx 1 root root 22902 May 18 11:51 new.txt root@hcss-ecs-4ce7:~# chown hyc new.txt root@hcss-ecs-4ce7:~# ls -l total 24 -rw-rw--wx 1 hyc root 22902 May 18 11:51 new.txt root@hcss-ecs-4ce7:~# chgrp hyc new.txt root@hcss-ecs-4ce7:~# ls -l total 24 -rw-rw--wx 1 hyc hyc 22902 May 18 11:51 new.txt
目錄權(quán)限問題
1.rwx對于目錄來說意味這什么?
沒有r權(quán)限,無法查看其內(nèi)容
hyc@hcss-ecs-4ce7:~$ ls -l total 4 drwxrwxr-x 2 hyc hyc 4096 May 26 15:41 new hyc@hcss-ecs-4ce7:~$ chmod u-r new hyc@hcss-ecs-4ce7:~$ ls -l total 4 d-wxrwxr-x 2 hyc hyc 4096 May 26 15:41 new hyc@hcss-ecs-4ce7:~$ ls new ls: cannot open directory 'new': Permission denied
沒有w權(quán)限,無法在其內(nèi)部創(chuàng)建文件
hyc@hcss-ecs-4ce7:~$ ls -l total 4 drwxrwxr-x 2 hyc hyc 4096 May 26 15:41 new hyc@hcss-ecs-4ce7:~$ chmod u-w new hyc@hcss-ecs-4ce7:~$ ls -l total 4 dr-xrwxr-x 2 hyc hyc 4096 May 26 15:41 new hyc@hcss-ecs-4ce7:~$ ls new hyc@hcss-ecs-4ce7:~$ touch ./new/my.txt touch: cannot touch './new/my.txt': Permission denied
沒有x權(quán)限,無法進(jìn)入目錄
hyc@hcss-ecs-4ce7:~$ ls -l total 4 drw-rwxr-x 2 hyc hyc 4096 May 26 15:41 new hyc@hcss-ecs-4ce7:~$ cd new bash: cd: new: Permission denied
rwx這三個(gè)權(quán)限都與目錄的正常使用相關(guān),所以我們創(chuàng)建的目錄默認(rèn)權(quán)限這三個(gè)都有。
2.理解Linux中多用戶是如何相互“隔離”的?
root@hcss-ecs-4ce7:~# ls -l /home total 8 drwxr-x--- 3 hyc hyc 4096 May 26 15:41 hyc drwxr-x--- 2 ye ye 4096 May 26 16:03 ye
所有用戶的other權(quán)限都是全部關(guān)閉的,任意用戶都無法進(jìn)入。這就帶來了“隔離”
3.缺省權(quán)限
對于普通文件:默認(rèn)起始權(quán)限是666
對于目錄:默認(rèn)起始權(quán)限是777,帶x
但我們看到的默認(rèn)權(quán)限一般都不是我們說所的起始權(quán)限 ,這是為什么?
root@hcss-ecs-4ce7:~# ls -l total 4 drwxr-xr-x 2 root root 4096 May 26 16:59 new -rw-r--r-- 1 root root 0 May 26 16:40 new.txt
因?yàn)長inux中存在一個(gè)東西叫做權(quán)限掩碼(umask)
root用戶的權(quán)限掩碼為:022
普通用戶的權(quán)限掩碼為:002
root@hcss-ecs-4ce7:~# umask 0022 (最前面的0表示八進(jìn)制)
最終的權(quán)限=起始權(quán)限&(~umask)
umask的目的是什么?
凡是出現(xiàn)在umask上的權(quán)限,都不會(huì)出現(xiàn)在最終的權(quán)限上面。
umask為什么會(huì)出現(xiàn)?
可以讓我們自定義默認(rèn)權(quán)限,是一種靈活滿足需求的表現(xiàn)
4.文件的刪除由誰決定?
一個(gè)文件是否可以被刪除與文件本身無關(guān),而在于目錄的w權(quán)限。
粘滯鍵
如果有兩個(gè)或者多個(gè)用戶需要在文件層面上的相互合作,那么所創(chuàng)建的文件就不能在私人目錄下。將目錄創(chuàng)建根目錄下,這樣所有用戶就都可以訪問并寫入自己的內(nèi)容。
但是這里存在一個(gè)問題,就是如果在眾多用戶中存在隔壁公式派來的內(nèi)鬼(bushi),內(nèi)鬼可以刪除自己的文件也可以刪除被人的文件(文件是否可以被刪除與自己無關(guān),與文件的w權(quán)限有關(guān))!
這該怎么辦??關(guān)閉w權(quán)限嗎?不行,這會(huì)影響其他用戶的正常使用,那怎么辦?
Linux給粘滯鍵有效的解決這一問題
`chmod +t`
給權(quán)限加上粘滯位,加上粘滯位的目錄有以下效果:
1.文件只能被root刪除
2.文件只能被其擁有者刪除
3.文件只能有該目錄的擁有者刪除
其實(shí)系統(tǒng)已經(jīng)為我們準(zhǔn)備好了這一特殊目錄,就是根目錄下的temp目錄
我們可以看到temp的other權(quán)限最后一個(gè)字母是t,這就代表粘滯位。
一般需要文件上的多人合作,都是在temp里進(jìn)行。
鏈接:https://blog.csdn.net/huangyuchi/article/details/148154142
-
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213675 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7142瀏覽量
125543 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82949
原文標(biāo)題:Linux權(quán)限管理太復(fù)雜?3個(gè)命令輕松搞定!90%的人不知道的技巧
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
linux的權(quán)限和指令
Linux 中文件權(quán)限管理的探討
Linux改變文件或目錄的訪問權(quán)限命令
linux指令大全
淺談Linux權(quán)限管理的ACL權(quán)限
Linux進(jìn)程權(quán)限的分析說明
linux文件訪問權(quán)限怎么設(shè)置
Linux把目錄權(quán)限給指定用戶
Linux用戶身份與進(jìn)程權(quán)限詳解

Linux文件權(quán)限詳解
linux權(quán)限管理詳解
Linux權(quán)限管理基礎(chǔ)入門

評論