linux有什么文件權(quán)限操作?如何正確設(shè)置文件權(quán)限?
linux有3種人的權(quán)限,文件的所有者(屬主)、文件屬組用戶和其他人。
而root賬號(hào)有什么權(quán)限呢?
root用戶可以查看、修改、刪除所有人的文件。Root用戶還擁有控制一臺(tái)計(jì)算機(jī)的完整權(quán)限。
文件和目錄用什么來表示權(quán)限呢?
讀取(r)、寫入(w)和執(zhí)行(x)
我們使用ls -l 命令來查看文件的屬性包括哪些權(quán)限?
#ls -l /bin/login
-rwxr-xr-x 1 root root 38096 2022-06-01 8:00 /bin/login
這條命令列出來了/bin/login文件的主要屬性信息。第一個(gè)字符表示文件類型,在上例中是“_”,表示是一個(gè)普通文件。接下來“rwxr-xr-x”就是3組權(quán)限位。這9個(gè)字符應(yīng)該被這樣斷句:rwx、r-x、r-x, r表示可讀,w表示可寫,x表示可執(zhí)行,分別表示屬主(擁有讀寫執(zhí)行權(quán)限)、屬組和其他人所擁有(讀和執(zhí)行)的權(quán)限。如果某個(gè)權(quán)限被禁用,那么就用一個(gè)短畫線“_”代替。由上面例子可以看出login文件的屬主是root用戶,而屬組是root組。
文件權(quán)限后面的1表示的是該文件的鏈接數(shù)目。1表示該文件只有一個(gè)硬鏈接。38096表示的是文件的大小(38096字節(jié))2022-06-01 8:00指最后修改日期,/bin/login 表示文件的完整路徑。
查看目錄的屬性可以使用什么參數(shù)呢?
可以用-ld
#ls -ld /etc/
不帶文件名有什么參數(shù)呢?
ls -l命令可以列出當(dāng)前目錄下所有文件(不包含隱藏文件)的屬性。
#ls -l
接下來我們來看一下八進(jìn)制計(jì)法。每一組權(quán)限r(nóng)wx在計(jì)算機(jī)中實(shí)際上占用了3位,每一位都有2種情況。例如對(duì)于寫入位,只有“設(shè)置(r)”和“沒有設(shè)置(-)”兩種情況。這樣計(jì)算機(jī)就可以使用二進(jìn)制0和1來表示每一個(gè)權(quán)限位,其中0表示沒有設(shè)置,而1表示設(shè)置。例如rwx就被表示為111,“-w-”表示為010等。在實(shí)際使用中,我們要記住1代表x、2代表w、4代表r,再進(jìn)行加法。如rwx=4+2+1=7,r-x=4+0+1=5 --x=0+0+2=2 可以寫成752
我們可以使用chmod命令來修改文件的權(quán)限例如:
#chmod 711 cxw
#ls -l cxw
-rwx- -x- -x 1 root root 61 2022-06-01 8:30 cxw
用戶主包括了文件屬主(u)、文件屬組(g)、其他人(o)和所有人(a),而權(quán)限則包括了讀取(r)、寫入(w)和執(zhí)行(x).
如何增加屬主對(duì)文件days的執(zhí)行權(quán)限。
#chmod u+x days
如何用chmod 同時(shí)指定所有人,刪除所有人(屬主、屬組和其他人)對(duì)days的執(zhí)行權(quán)限。
#chmod a-x days
如何通過“用戶組=權(quán)限”的規(guī)則直接設(shè)置文件權(quán)限。同樣應(yīng)用于文件days,賦予屬主和屬主的讀取/寫入權(quán)限,其他用戶讀取權(quán)限。
#chmod ug=rw,o=r days
最后“用戶組1=用戶組2”,應(yīng)用days文件,將其他人的權(quán)限設(shè)置為和屬主的權(quán)限一樣。
#chmod o=u days
最后,我們要記住只有文件的屬主和root用戶才有權(quán)限修改文件的權(quán)限。
接下來我們來看一下更改文件的所有權(quán)chown和chgrp
#sudo chown cxw:root days //修改day的所有權(quán)
如果只需要更改文件的屬主,那么可以省略參數(shù)“group”把days文件的屬主更改為guest用戶,保留其屬組設(shè)置。
#sudo chown guest days
把days文件的屬組更改為nogroup組,而保留其屬主設(shè)置。
#sudo chown :nogroup days
改變一個(gè)目錄及其下所有文件(和子目錄)的所有權(quán)設(shè)置用-R參數(shù)
#sudo chown -R cxw iso/
#ls -l iso/
Linux還有另外一個(gè)命令chgrp用于設(shè)置文件的屬組。
#sudo chgrp nogrup days
chgrp也可以使用-R選項(xiàng)遞歸對(duì)一個(gè)目錄實(shí)施設(shè)置。
#sudo chgrp root iso/
Chgrp命令實(shí)現(xiàn)了chown的一部分功能,但更直觀告訴人們它要干什么。在實(shí)際工作中是否使用chgrp根據(jù)個(gè)人使用習(xí)慣。