linux文件授權
『壹』 linux系統中,給文件授予可執行許可權的命令
在root用戶下執行:chmod 755 filename
『貳』 linux 文件有哪些特殊許可權
文件的特殊許可權有三種:1、suid;2、sgid;3、sticky,其中,suid和sgid用於累加提升許可權,簡單來說就是如果原來的用戶可以訪問,反而切換到的用戶或者組不能訪問,這時候照樣是可以訪問的,下面介紹下這三種許可權。
SUID:
1、需要注意的是,只對二進制可執行程序有效,不能為普通文件;
2、發起者對程序文件必須擁有執行許可權;
3、啟動為進程之後,其進程的宿主為原程序文件的宿主;
4、SUID設置在目錄上毫無意義。
SGID:
可以應用在二進制文件和作用在文件夾下,當作用在二進制文件下時,作用和SUID相似,只不過SUID是把發起者臨時變為文件的所有者,而SGID是把進程的發起者變成源程序文件的屬組,默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組,當SGID作用在目錄下時,則對此目錄有寫許可權的用戶在此目錄中創建的文件所屬的組為此目錄的屬組,通常用於創建一個協作目錄。
Sticky:
默認情況下用戶可以刪除具有寫許可權的目錄中的任何文件,無論該文件的許可權或擁有權,如果在目錄設置Sticky位,只有文件的所有者或root**可以刪除該文件,Sticky位是作用在文件夾的,設置在文件上毫無意義。
『叄』 linux如何給文件許可權
chmod -R 755 文件夾名 ,一般加這個許可權就好了。第一個數字表示根用戶有讀寫執行許可權,第二個表示組用戶有讀和執行的許可權,第三個是其他用戶有讀和執行的許可權。
一、訪問許可權
訪問許可權分為讀(read)、寫(write)、執行(execute)三種,
並且涉及到文件所有者(user)、文件所屬組(group)、其他人(other)三個主體。
選取上圖紅框中的兩行為例,結合下面的表格先講一下基本結構:
第一位表示文件類型
第二~十位表示許可權:每三位一組,共三組,分別表示三個主體對應的三種許可權
對照表格可以知道
drwxr-xr-x表示:
d為目錄文件
文件所有者可讀、可寫、可執行(rwx:可讀r、可寫w、可執行x)
文件所屬組可讀、可執行(r-x:可讀r、不可寫-、可執行x)
其他人可讀、可執行(r-x:可讀r、不可寫-、可執行x)
-rw-r--r--表示:
-為普通文件
文件所有者可讀、可寫(rw-:可讀r、可寫w、不可執行-)
文件所屬組可讀(r--:可讀r、不可寫-、不可執行-)
其他人可讀(r--:可讀r、不可寫-、不可執行-)
二、修改許可權
如何修改許可權?一般有兩種方法:
文字法:chmod [who][operator][permission] <file-name>
數字法:chmod xxx <file-name>
1.文字法:
[who]:表示要修改的主體,
u:用戶(user),即文件所有者:創建文件的人
g:同組用戶(group),即文件所屬組:與文件屬主有相同組ID的所有用戶
o:其他用戶(others),即其它人:與文件無關的人
a:所有用戶(all),它是系統默認值
[operator]:表示進行哪種修改操作,
+:添加某個許可權
-:取消某個許可權
=:賦予給定許可權並取消其他所有許可權(如果有的話)
[permission]:表示要設置的許可權,
r:可讀
w:可寫
x:可執行
2.數字法:
xxx表示數字屬性,格式為3個從0到7的數,其對應的主體順序是u g o,
將對應主體位上的所有權值分別相加就可以得到這個三位數了。
4表示可讀許可權
2表示可寫許可權
1表示可執行許可權
0表示沒有許可權
相加後的值表示的意義如下:
7=4+2+1 表示可讀可寫可執行
6=4+2 表示可讀可寫
5=4+1 表示可讀可執行
3=2+1 表示可寫可執行
例1:
chmod 755 <file-name>
表示將文件<file-name>的許可權修改為:
u(文件所有者) 可讀可寫可執行
g(文件所屬組) 可讀可執行
o(其它人) 可讀可執行
這種修改用第一種方式來寫就是(假設文件之前沒任何許可權)(如果有許可權這樣寫也可以,只是太繁瑣):
chmod a+rx,u+w <file-name>
或
chmod ugo+rx,u+w <file-name>
或
chmod u+rwx,go+rx <file-name>
另外,
如果原來文件已經有許可權,如-rw-r--r--,則用第一種方式來寫如下:
chmod ugo+x <file-name>
或
chmod a+x <file-name>
如果原來文件已經有許可權,如drwxrwxrwx,則用第一種方式來寫如下:
chmod go-w <file-name>
例2:
chmod 777 <file-name>
表示將文件<file-name>的許可權修改為:
a(所有人)可讀可寫可執行
這種修改用第一種方式來寫就是(假設文件之前沒任何許可權)(如果有許可權這樣寫也可以,只是太繁瑣):
chmod a+rwx <file-name>
或
chmod ugo+rwx <file-name>
另外,
如果原來文件已經有許可權,如drwxr-xr-x,則用第一種方式來寫如下:
chmod go+w <file-name>
『肆』 在linux中怎麼給文件夾賦許可權
chmod 許可權 文件夾
比如 : chmod 0755 /tmp //這個只設置/tmp文件夾許可權為0755
chmod -R 0755 /tmp //這個設置/tmp文件夾及其子文件夾的許可權為0755
linux的文件夾也有三種許可權分別是:
r(Read 讀取):對文件有讀取文件內容的許可權(cat指令);對目錄有查看目錄下內容的許可權(ls命令)。
2.x(eXecute 執行):對文件有執行文件的許可權(./指令);對目錄該有進入目錄的許可權(cd命令)。
3.w(Write 寫入):對文件有增加、刪除、修改文件內容的許可權;對目錄有增加、刪除、修改目錄下內容的許可權。w 是可以在目錄下創建、修改、刪除文件,不僅可以修改自己的文件也可以修改別人的文件,因此增加了一個t 許可權對 x 許可權進行了限制,表示只可以修改自己的文件。
『伍』 Linux的用戶體系與許可權
使用這個用戶登錄linux系統後的一般操作(除sudo/su等操作外)都是這個用戶許可權的操作,包括 啟動應用後,該應用具有的許可權,也是和這個用戶一致的 。Linux每個進程都是以某個用戶身份運行, 進程的許可權與該用戶的許可權一樣,用戶的許可權越大,則進程擁有的許可權就越大 。用戶本身對系統的許可權在創建用戶時設置,也可後續更改(如不能登錄等等)。
查看所有用戶信息。
Linux許可權授權,默認是授權給三種角色,分別是user、group、other。三種角色對目錄的許可權:chmod 設置數字許可權4,2,1,分別對應的是r,w,x,即可讀,可寫,可執行。 對目錄設置許可權時,可以加-R遞歸參數。可以對文件的這三個角色進行目錄讀寫可執行授權, 如圖 。
以上圖所示,第一組為文件所有者的許可權,第二組為文件所屬組的許可權,第三組為其他人的許可權。其表示的具體含義為:文件所有者具有對文件的讀寫許可權,文件所屬組的用戶具有對文件讀寫的許可權,而其他人只有讀取文件的許可權。
文件的所有者
文件的所有者一般是創建該文件的用戶,對該文件具有完全的許可權。在一台允許多個用戶訪問的 Linux 主機上,可以通過文件的所有者來區分一個文件屬於某個用戶。當然,一個用戶也無權查看或更改其它用戶的文件。
文件所屬的組
假如有幾個用戶合作開發同一個項目,如果每個用戶只能查看和修改自己創建的文件就太不方便了,也就談不上什麼合作了。所以需要一個機制允許一個用戶查看和修改其它用戶的文件,此時就用到組的概念的。我們可以創建一個組,然後把需要合作的用戶都添加都這個組中。在設置文件的訪問許可權時,允許這個組中的用戶對該文件進行讀取和修改。
其他人
如果我想把一個文件共享給系統中的所有用戶該怎麼辦?通過組的方式顯然是不合適的,因為需要把系統中的所有用戶都添加到一個組中。並且系統中添加了新用戶該怎麼辦,每添加一個新用戶就把他添加到這個組中嗎?這個問題可以通過其他人的概念解決。在設置文件的訪問許可權時,允許其他人戶對該文件進行讀取和修改。
授權完各個角色的許可權,那麼怎麼更改文件所屬的角色。如下:
更改文件擁有者: chown 賬號名稱 文件或目錄
更改文件所屬用戶組:chgrp 組 目錄或文件名
web目錄許可權設置參考 。 注意Web伺服器各自的運行用戶如果要對web目錄進行操作,也必須得到web目錄的rwx授權才可以。
linux裡面如何讓某個程序以某個用戶來運行?比如讓mysql程序用mysql用戶去運行。讓httpd用httpd用戶去運行。
『陸』 Linux關於文件的許可權筆記
1、調整文件的許可權命令:chmod
Linux的每個文件都定義了文件的擁有者:u(user)、擁有組:g(group)、其他人:o(others)許可權,對應的許可權用rwx的組合來定義。使用chmod命令,增加許可權用+,刪除許可權用-,某個文件詳細的許可權用=號。
比如:
chmod u+r filename #給某文件增加讀的許可權
chmod u-r filename #給某文件刪除讀的許可權
chmod u+w filename #給某文件增加寫的許可權
chmod u-w filename #給某文件刪除寫的許可權
chmod u+x filename #給某文件增可執行的許可權
chmod u-x filename #給某文件刪除可執行的許可權
chmod u+rwx filename #給某文件增加讀寫可執行的許可權
chmod u=rwx filename #給某文件設定讀寫可執行的許可權
通過這種方式可以同一時刻給文件擁有者、文件擁有組、或其他用戶設置許可權,如果想要同時設置所有用戶的許可權就要使用數字表示的方式了,Linux規定 r=4,w=2,x=1。比如許可權rwx:7,r-x:5。如果想設置一個文件擁有者有讀、寫、執行,擁有組的許可權是讀、執行、其他人只讀的話,可以使用命令:chmod 745 filename 進行設置。chmod -R 745 dirname #用來看設置目錄許可權 必須加 -R參數。
2、改變文件的擁有者命令:chown
比如:chown user1 hello.txt
#將hello.txt 文件擁有者修改為 user1, 前提user1 為系統中擁有的用戶
chown :user1 hello.txt
#將hello.txt 文件擁有者修改為 user1組, 前提user1 為系統中擁有的用戶組
chown user1:user1 hello.txt
#相當於執行了上面兩條命令
chown user1:user1 dirname
#修改目錄的文件擁有者和用戶組 需要加 -R參數
3、修改文件的擁有組命令:chgrp
比如:
chgrp user1 hello.txt
#將hello.txt 文件用戶組修改為 user1
chgrp user1 dirname
#將dirname 目錄用戶組修改為 user1,需要加 -R參數
覺得不錯請點贊支持,歡迎留言或進我的個人群855801563領取【架構資料專題目合集90期】、【BATJTMD大廠JAVA面試真題1000+】,本群專用於學習交流技術、分享面試機會,拒絕廣告,我也會在群內不定期答題、探討。
『柒』 Linux的介紹與應用
體系結構主要分為用戶態的內核態。所謂內核本質上是一段管理計算機硬體設備的程序。所謂用戶態上層應用程序的活動空間。內核必須為上層應用提供資源,CPU,存儲,IO資源,這被稱為系統調用,系統調用是不能被簡化的操作,其他復雜調用都是多個系統調用組合的結果。
我們要查看所有的系統調用,可以使用命令
所得到的列表如下
其中 2 代表的意思是系統調用, 3 指的是公共庫函數。公共庫函數是封裝系統調用,一組定義好的系統調用的組合。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
Linux 的 Shell 常見的有:
在指定目錄下查找文件。
find + 路徑 + -name + 「文件名」
之上的命令使用遞歸查找的方式查找到了 test 文件。如果我們想全局搜索則使用
當然find指令也支持表達式如果要查找所有以test開頭的問題,查找方式可以使用
* 表示通配符,可以實現模糊查詢。
如果要忽略大小寫查詢可以使用
對於grep使用過Linux的人基本都有接觸過。下面列舉一下grep的一些常用操作。
Linux系統用戶是根據用戶ID來識別的,默認ID長度為32位,用戶ID限制在60000以下。
linux系統中的用戶組(group)就是具有相同特性的用戶(user)集合,通過組可以更加方便的管理用戶,每個組擁有一個GroupID,每個用戶屬於一個主組,屬於一個或多個附屬組,一個用戶最多有31個附屬組。
Linux許可權是操作系統用來限制對資源訪問的機制,許可權一般分為讀、寫、執行。系統中每個文件都擁有特定的許可權、所屬用戶及所屬組,通過這樣的機制來限制哪些用戶或用戶組可以對特定文件進行相應的操作,Linux許可權授權,默認是授權給三種角色,分別是user、group、other(其他用戶)。
test目錄詳解如下:
d 表示目錄,同一位置如果為-則表示普通文件;
rwxr-xr-x 表示三種角色的許可權,每三位為一種角色,依次為u,g,o許可權,如上則表示user的許可權為rwx,group的許可權為r-x,other的許可權為r-x;
2表示文件夾的鏈接數量,可理解為該目錄下子目錄的數量;
4096表示該文件夾占據的位元組數;
+、-、=代表加入、刪除和等於對應許可權
授予用戶、組、其他人對test目錄擁有rwx許可權
撤銷用戶、組、其他人對test目錄擁有x許可權
Linux許可權可以將rwx用二進制來表示,其中有許可權用1表示,沒有許可權用0表示。
Linux許可權用二進制顯示如下:
rwx=111
r-x=101
rw-=110
r--=100
依次類推,轉化為十進制,對應十進制結果顯示如下:
rwx=111=4+2+1=7
r-x=101=4+0+1=5
rw-=110=4+4+0=6
r--=100=4+0+0=4
得出結論,用r=4,w=2,x=1來表示許可權。
所以我們有時候使用
為文件賦予所有許可權。
除了普通許可權,Linux還有三個特殊許可權
『捌』 在 Linux 上給用戶賦予指定目錄的讀寫許可權
在 Linux 上指定目錄的讀寫許可權賦予用戶,有兩種方法可以實現這個目標:第一種是使用 ACL (訪問控制列表),第二種是創建用戶組來管理文件許可權,下面會一一介紹。為了完成這個教程,我們將使用以下設置:
請確認所有的命令都是使用 root 用戶執行的,或者使用 sudo 命令來享受與之同樣的許可權。讓我們開始吧!下面,先使用 mkdir 命令來創建一個名為 share 的目錄。
1. 使用 ACL 來為用戶賦予目錄的讀寫許可權
重要提示: 打算使用此方法的話,您需要確認您的 Linux 文件系統類型(如 ext3 和 ext4, NTFS, BTRFS)支持 ACL。
1.1. 首先, 依照以下命令在您的系統中檢查當前文件系統類型,並且查看內核是否支持 ACL:
從下方的截屏可以看到,文件系統類型是 ext4,並且從 CONFIG_EXT4_FS_POSIX_ACL=y 選項可以發現內核是支持 POSIX ACL 的。
[圖片上傳失敗...(image-c85622-1574572716190)]
1.2. 查看文件系統(分區)掛載時是否使用了 ACL 選項。
[圖片上傳失敗...(image-bdb4d9-1574572716190)]
通過上邊的輸出可以發現,默認的掛載項目中已經對 ACL 進行了支持。如果發現結果不如所願,你可以通過以下命令對指定分區(此例中使用 /dev/sda3)開啟 ACL 的支持)。
1.3. 指定目錄 share 的讀寫許可權分配給名為 shenweiyan 的用戶了,依照以下命令執行即可。
[圖片上傳失敗...(image-dfb909-1574572716190)]
在上方的截屏中,通過輸出結果的第二行 getfacl 命令可以發現,用戶 shenweiyan 已經成功的被賦予了 /data/share 目錄的讀寫許可權。
如果想要獲取 ACL 列表的更多信息。請參考:
2. 使用用戶組來為用戶賦予指定目錄的讀寫許可權
2.1. 如果用戶已經擁有了默認的用戶組(通常組名與用戶名相同),就可以簡單的通過變更文件夾的所屬用戶組來完成。
另外,我們也可以通過以下方法為多個用戶(需要賦予指定目錄讀寫許可權的)新建一個用戶組。如此一來,也就創建了一個共享目錄。
2.2. 接下來將用戶 shenweiyan 添加到 dbshare 組中:
2.3. 將目錄的所屬用戶組變更為 dbshare:
2.4. 現在,給組成員設置讀寫許可權。
ok,在 Linux 上給用戶賦予指定目錄的讀寫許可權就介紹到這里 !
參考資料: