linux許可權控制
1、Linux許可權說明
linux的文件夾也有三種許可權分別是:
r(Read 讀取):對文件有讀取文件內容的許可權(cat指令);對目錄有查看目錄下內容的許可權(ls命令)。
x(eXecute 執行):對文件有執行文件的許可權(./指令);對目錄該有進入目錄的許可權(cd命令)。
w(Write 寫入):對文件有增加、刪除、修改文件內容的許可權;對目錄有增加、刪除、修改目錄下內容的許可權。w 是可以在目錄下創建、修改、刪除文件,不僅可以修改自己的文件也可以修改別人的文件,因此增加了一個t 許可權對 x 許可權進行了限制,表示只可以修改自己的文件。
umask 命令可以設置系統的許可權掩碼,即可以控制文件夾、文件生成時的默認許可權。文件夾的默認許可權是755、文件的許可權644.root 帳號的umask是022,而普通用戶的umask是002,這代表root用戶的文件對於其他用戶來說默認的許可權更少。文件的默認許可權是用666減umask,而文件夾的默認許可權是用777減umask,這樣的話相當於無論何時生成的文件的默認許可權都是不可能有運行的許可權。umask的設置可以在配置文件 /etc/bashrc 中進行設置、更改。
2、改變許可權
改變擁有者chown(change owner):
chown yly tmp //改變文件tmp的擁有者為yly用戶
chown -R yly:yly tmp //改變tmp文件及其下的文件和子目錄的許可權為yly用戶:yly組
說明:要改變的文件擁有者,也就是用戶名必須存在於/etc/passwd文件中,否則就會顯示錯誤。另外用戶密碼
是保存在/etc/shadow文件夾中的。
改變群組chgrp(change group):
chgrp yly tmp //改變tmp文件的群組為yly組
說明:要改變的目標群組名稱必須在於/etc/group文件中存在,否則就會顯示錯誤。
注意:當使用cp指令復制文件時,被復制的文件擁有者和群組仍沒有改變,此時需要使用以上指令進行設置。
改變文件許可權chmod
㈡ linux如何給文件設置只讀許可權
可以用chmod 命令修改文件許可權。
chmod命令是非常重要的,用於改變文件或目錄的訪問許可權。用戶用它控制文件或目錄的訪問許可權。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
用法:
文字設定法:
chmod [who] [+ | - | =] [mode] 文件名¼
命令中各選項的含義為:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示「用戶(user)」,即文件或目錄的所有者。
g 表示「同組(group)用戶」,即與文件屬主有相同組ID的所有用戶。
o 表示「其他(others)用戶」。
a 表示「所有(all)用戶」。它是系統默認值。
操作符號可以是:
+ 添加某個許可權。
- 取消某個許可權。
= 賦予給定許可權並取消其他所有許可權(如果有的話)。
設置mode所表示的許可權可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式「u+s」設置文件 的用戶ID位,「g+s」設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的許可權。
g 與和文件屬主同組的用戶擁有一樣的許可權。
o 與其他用戶擁有一樣的許可權。
文件名:以空格分開的要改變許可權的文件列表,支持通配符。
在一個命令行中可給出多個許可權方式,其間用逗號隔開。例如:chmod g+r,o+r example使同組和其他用戶對文件example 有讀許可權。
數字設定法:
數字表示的屬性的含義:
0表示沒有許可權
1表示可執行許可權
2表示可寫許可權
4表示可讀許可權
然後將其相加。所以數字屬性的格式應為3個從0到7的八進制數,其順序是(u)(g)(o)
如果想讓某個文件的屬主有「讀/寫」二種許可權,需要把4(可讀)+2(可寫)=6(讀/寫)
㈢ linux的許可權分配特點
Linux中的用戶與用戶組
1、Linux多用戶、多任務的特性
不同用戶具有不同的許可權,每個用戶在許可權允許的范圍內完成不同的任務,
Linux正是通過這種許可權的劃分與管理,實現了多用戶多任務的運行機制。
2、Linux用戶的分類(3種)
在Linux下用戶是根據角色定義的,具體分為三種角色
每個用戶都有一個UID,並且是唯一的,通常UID號的取值范圍是0~65535,
a. 管理員(超級用戶):擁有對系統的最高管理許可權 ,默認是root用戶【0】
b. 系統用戶(虛擬用戶):
也叫「偽」用戶,這類用戶最大特點是不能登錄系統, 它們的存在主要是為了方便系統管理,滿足相應的系統進程對文件屬主的要求。
例如,系統默認的bin、adm、nobody用戶等,一般運行的web服務,默認使用的就是nobody用戶,但是nobody用戶是不能登錄系統的【1-499】
(運行後台程序,daemon守護進程)
c. 普通用戶:只能對自己目錄下的文件進行訪問和修改,具有登錄系統的許可權
例如,上面提到的crx用戶,A,B用戶等【500+】
3、用戶和組的概念
我們知道,Linux是一個多用戶多任務的分時操作系統,如果要使用系統資源,就必須向系統管理員申請一個帳戶,然後通過這個帳戶進入系統。這個帳戶和用戶是一個概念。
通過建立不同屬性的用戶,一方面,可以合理利用和控制系統資源;
另一方面,也可以幫助用戶組織文件,提供對用戶文件的安全性保護.
每個用戶都用一個唯一的用戶名和用戶密碼,在登錄系統時,只有正確輸入了用戶名和密碼,才能進入系統和自己的主目錄。
用戶組是具有相同特徵用戶的邏輯集合。
通過定義用戶組,在很大程度上簡化了管理工作
4、用戶和組的關系:
用戶和用戶組的對應關系有:一對一、一對多、多對一、多對多
一對一:一個用戶可以存在一個組中,也可以是組中的唯一成員。
一對多:一個用戶可以存在多個用戶組中,此用戶具有多個組的共同許可權
多對一:多個用戶可以存在一個組中,這些用戶具有和組相同的許可權
多對多:多個用戶可以存在多個組中,其實就是上面三個對應關系的擴展
為了方便用戶管理,提出了「組」的概念,可以給組分配許可權,把相同用戶的許可權放在同一個組中
5、三個重要配置文件
(1)/etc/passwd (冒號「:」為分隔符)
由於/etc/passwd文件是所有用戶都可讀的,因此就導致了用戶的密碼容易出現泄露,於是,Linux將用戶的密碼信息從/etc/passwd中分離出來,單獨放到一個文件中, 這個文件就是/etc/shadow。該文件只有root用戶擁有讀許可權,從而保證了用戶密碼的安全性。
現在許多linux版本都使用了shadow技術,把真正加密後的用戶密碼存放到/etc/shadow文件中,而在/etc/passwd文件的密碼欄位只存放一個特殊的字元,例如用「x"或者"*"來表示。
(3)/etc/group
5、每個用戶和每個用戶組都有一個屬於自己惟一的一個ID(分別是UID和GID)
6、什麼是shell ?
shell是你(用戶)和Linux(或者更准確的說,是你和Linux內核)之間的介面程序。你在提示符下輸入的每個命令都由shell先解釋然後傳給Linux內核。相當於一個翻譯官。Linux下常用的shell用sh、bash、csh等,
㈣ Linux怎樣限制普通用戶許可權
你這個許可權要求是有矛盾的,可以reboot,就說明可以使用root許可權!
reboot是需要有root許可權才能操作的。
不允許su成root,很簡單,不告訴他root密碼就可以了。但是對於ubuntu,第一個普通用戶(一般是系統安裝時生成的用戶)默認可以使用sudo提升成root的!不推薦去限制它使用sudo(如果你非不讓它有sudo許可權,將它從admin組中去除就可以了,但是請確保你已經設置了root的密碼了!不然你就無法獲得root許可權了!切記!)。
第二個及以後的用戶默認就不能使用sudo提升成root了。
㈤ Linux許可權管理基本知識
Linux許可權管理基本知識大全
Linux系統有什麼基本許可權,許可權管理命令是什麼?下面跟我一起來看看吧!
一、基本許可權
linux許可權機制採用UGO模式。其中 u(user)表示所屬用戶、g(group)表示所屬組、o(other)表示除了所屬用戶、所屬組之外的情況。
u、g、o 都有讀(read)、寫(write)、執行(excute) 三個許可權,所以UGO模式是三類九種基本許可權。
用命令 ls -l 可列出文件的許可權,第一列輸出明確了後面的輸出(後面一列代表 ugo許可權)。第一個字母對應的關系:
“-” 普通文件
“d” 目錄
”l“ 符號鏈接
”c“ 字元設備
"b" 塊設備
"s" 套接字
"p" 管道
修改文件或目錄的所屬用戶: chown 文件名 | 目錄名 用戶
-R 該參數以遞歸的方式修改目錄下所有文件的所屬用戶,參數可以敲 chown --help 查看。
修改文件或目錄的所屬組: chgrp 文件名 | 目錄名 組名
-R 該參數以遞歸的方式修改目錄下的所有文件的'所屬組。
命令chmod 用來修改文件或目錄的許可權: chmod -參數 模式 文件 | 目錄
例子: 修改目錄 log下所有文件的許可權為700
chmod -R 700 log
註:700的來歷是 u g o
rwx rwx rwx
111 000 000
關於 chmod 命令的許可權模式除了數字表示,還可以是 u、g、o 、a 加 +、- 來表示。格式如下:u、g、o分別代表用戶、屬組和其他,a 就是
all ,可以代替ugo。 +、- 代表增加或刪除對應的許可權,r、w、x 代表三種許可權,分別是讀、寫、執行。
例子:對於目錄 log下的所有文件(已有許可權是700)增加所屬組(g)的讀(r)、執行(x)許可權。
chmod -R g+rx log
類似的命令可能還有很多,這里只是舉幾個最基本且常用的例子。很多命令用到時,再去查也可以。還可參考《鳥哥的Linux私房菜》。
二、特殊許可權
Linux的3個特殊的許可權,分別是setuid、setgid和stick bit。
setuid許可權(S):只有用戶可擁有,出現在執行許可權(x)的位置。
setuid許可權允許用戶以其擁有者的許可權來執行可執行文件,即使這個可執行文件是由其他用戶運行的。
setgid許可權(S):對應於用戶組,出現在執行許可權(x)的位置。
setgid許可權允許以同該目錄擁有者所在組相同的有效組許可權來允許可執行文件。但是這個組和實際發起命令的用戶組不一定相同。
stick bit (t /T):又名粘滯位,只有目錄才有的許可權,出現在其他用戶許可權(o)中的執行位置(x)。當一個目錄設置了粘滯位,只有創建了該目錄的用戶才能刪除目錄中的文件,但是其他用戶組和其他用戶也有寫許可權。使用 t 或 T來表示。若沒有設置執行許可權,但是設置了粘滯位,使用 t;若同時設置了執行許可權和粘滯位使用 T。典型的粘滯位使用是 /tmp 目錄,粘滯位屬於一種防寫。
設置特殊許可權:
setuid: chmod u+s filename
setgid: chmod g+s directoryname
stick bit: chmod o+t directoryname
用數字表示特殊許可權,是在基本許可權之上的。濁嘴笨腮說不清楚,看例子:
例子:將上面例子中的log日誌目錄(已有許可權 700)許可權設置為755。特殊許可權是類似 /tmp目錄的 stick bit有效。
特殊許可權 基本許可權
setuid setgid stick bit user group other
0 0 1 rwx rwx rwx
111 000 000
所以,設置特殊許可權(stick bit)的命令應該是:chmod 1755 log
設置特殊許可權後,ls -dl 查看該目錄:drwxr-xr-t 2 gg gg 4096 5月 11 19:05 log ( 注意 other 的 x 位是代表特殊許可權的字母 t )
取消該特殊許可權的命令:chmod 755 log 。如此 stick bit的許可權就沒有了。
再次 ls -dl 查看該目錄: drwxr-xr-x 2 gg gg 4096 5月 11 19:15 log ( 注意最後一位已經變為代表普通許可權的字母x )
需要注意的是,最前面一位 ”1“ 就是特殊許可權位。其他兩個特殊許可權的設置也類似。setuid使用不是無限制的。出於安全目的,只能應用在Linux ELF格式二進制文件上,而不能用於腳本文件。
三、高級許可權
ACL(Access Control List),訪問控制列表是Linux下的的高級許可權機制,可實現對文件、目錄的靈活許可權控制。ACL 允許針對不同用戶、
不同組對同一個目標文件、目錄進行許可權設置,而不受UGO限制。
在一個文件系統上使用ACL需要在掛載文件系統的時候打開ACL功能。而根分區(ROOT)默認掛載的時候支持ACL。
命令:mount -o acl /掛載路徑
例子:mount -o acl /dev/sdb1 /mnt
查看一個文件的ACL設置的命令: getfacl file
(針對一個用戶)為一個文件設置指定用戶的許可權的命令: setfacl -m u:username:rwx filename
(針對一個組)為一個文件設置指定組的許可權的命令: setfacl -m g:groupname:r-x filename
刪除一個ACL設置的命令: setfacl -x u:username filename
;㈥ 如何在Linux下設置訪問控制列表(ACL)來控制用戶的許可權
Linux下的訪問控制列表(ACL)主要用來控制用戶的許可權,可以做到不同用戶對同一文件有不同的許可權,那麼具體要如何操作呢?下面小編就教你如何在Linux下設置訪問控制列表(ACL)來控制用戶的許可權。
使用擁有許可權控制的Liunx,工作是一件輕松的任務。它可以定義任何user,group和other的許可權。無論是在桌面電腦或者不會有很多用戶的虛擬Linux實例,或者當用戶不願意分享他們之間的文件時,這樣的工作是很棒的。然而,如果你是在一個大型組織,你運行了NFS或者Samba服務給不同的用戶,然後你將會需要靈活的挑選並設置很多復雜的配置和許可權去滿足你的組織不同的需求。
Linux(和其他Unix等POSIX兼容的操作系統)有一種被稱為訪問控制列表(ACL)的許可權控制方法,它是一種許可權分配之外的普遍範式。例如,默認情況下你需要確認3個許可權組:owner、group和other。而使用ACL,你可以增加許可權給其他用戶或組別,而不單只是簡單的「other」或者是擁有者不存在的組別。可以允許指定的用戶A、B、C擁有寫許可權而不再是讓他們整個組擁有寫許可權。
ACL支持多種Linux文件系統,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不確定你的文件系統是否支持ACL,請參考文檔。
在文件系統使ACL生效
首先,我們需要安裝工具來管理ACL。
Ubuntu/Debian 中:
$ sudo apt-get install acl
CentOS/Fedora/RHEL 中:
# yum -y install acl
Archlinux 中:
# pacman -S acl
出於演示目的,我將使用ubuntu server版本,其他版本類似。
安裝ACL完成後,需要激活我們磁碟分區的ACL功能,這樣我們才能使用它。
首先,我們檢查ACL功能是否已經開啟。
$ mount
你可以注意到,我的root分區中ACL屬性已經開啟。萬一你沒有開啟,你需要編輯/etc/fstab文件,在你需要開啟ACL的分區的選項前增加acl標記。
現在我們需要重新掛載分區(我喜歡完全重啟,因為我不想丟失數據),如果你對其它分區開啟ACL,你必須也重新掛載它。
$ sudo mount / -o remount
乾的不錯!現在我們已經在我們的系統中開啟ACL,讓我們開始和它一起工作。
ACL 範例
基礎ACL通過兩條命令管理:setfacl用於增加或者修改ACL,getfacl用於顯示分配完的ACL。讓我們來做一些測試。
我創建一個目錄/shared給一個假設的用戶,名叫freeuser
$ ls -lh /
我想要分享這個目錄給其他兩個用戶test和test2,一個擁有完整許可權,另一個只有讀許可權。
首先,為用戶test設置ACL:
$ sudo setfacl -m u:test:rwx /shared
現在用戶test可以隨意創建文件夾,文件和訪問在/shared目錄下的任何地方。
現在我們增加只讀許可權給用戶test2:
$ sudo setfacl -m u:test2:rx /shared
注意test2讀取目錄需要執行(x)許可權
讓我來解釋下setfacl命令格式:
-m 表示修改ACL。你可以增加新的,或修改存在的ACLu: 表示用戶。你可以使用 g 來設置組許可權test 用戶名:rwx 需要設置的許可權。
現在讓我向你展示如何讀取ACL:
$ ls -lh /shared
你可以注意到,正常許可權後多一個+標記。這表示ACL已經設置成功。要具體看一下ACL,我們需要運行:
$ sudo getfacl /shared
最後,如果你需要移除ACL:
$ sudo setfacl -x u:test /shared
如果你想要立即擦除所有ACL條目:
$ sudo setfacl -b /shared
最後,在設置了ACL文件或目錄工作時,cp和mv命令會改變這些設置。在cp的情況下,需要添加「p」參數來復制ACL設置。如果這不可行,它將會展示一個警告。mv默認移動ACL設置,如果這也不可行,它也會向您展示一個警告。
總結
使用ACL讓在你想要分享的文件上擁有更多的能力和控制,特別是在NFS/Samba服務。此外,如果你的主管共享主機,這個工具是必備的。
上面就是Linux下設置訪問控制列表來控制用戶許可權的方法介紹了,因為ACL的配置和使用較為復雜,初學者在使用的時候容易出現錯誤,希望本文介紹的方法能夠幫助到你。