權(quán)限直接關(guān)系數(shù)據(jù)安全,在linux系統(tǒng)中權(quán)限的管理至關(guān)重要,本文和大家分享的就是Linux目錄與文件的權(quán)限相關(guān)內(nèi)容,一起來看看吧,希望對大家有所幫助。
一、用戶基礎(chǔ)概念:
1. 所有者(owner):擁有這個(gè)文件的用戶。一般擁有目錄或文件的所有權(quán)限。
2. 用戶組(group):幾個(gè)用戶組成一個(gè)用戶組,一般來說組內(nèi)用戶同時(shí)具有某些權(quán)限。
3. 其他人(others):相對于owner和group的其他人。一般比前兩者少某些權(quán)限。
二、目錄與文件的權(quán)限的意義:
1. 文件是實(shí)際包含數(shù)據(jù)的,一般文本文件、數(shù)據(jù)庫文件、二進(jìn)制可執(zhí)行文件等,因此權(quán)限對于文件來說,意義如下:
1. r(read):可讀取此文件的實(shí)際內(nèi)容,例如讀取文本文件hello.txt里的hello,world!
2. w(write):可以編輯、新增或是修改文件的內(nèi)容(注: 不包含刪除該文件本身的權(quán)限 )
3. x(eXecute):該文件具有被系統(tǒng)執(zhí)行的權(quán)限(注: Linux下,文件能否被執(zhí)行,不像windows下看文件擴(kuò)展名,而是由文件是否具有x權(quán)限來決定的 )
2. 目錄主要的內(nèi)容是記錄文件名列表。權(quán)限對于目錄來說,意義如下:
1. r(read contents in directory):表示具有讀取目錄結(jié)構(gòu)列表的權(quán)限,當(dāng)具有一個(gè)目錄的r權(quán)限時(shí),就可以使用ls將其打印出來
2. w(modify contents of directory):這個(gè)可寫入權(quán)限對于目錄來說很強(qiáng)大,它代表者你可以:
1. 新建新的文件與目錄
2. 刪除已經(jīng)存在的文件與目錄(且不論該文件的權(quán)限如何)
3. 將已存在的文件或目錄重命名
4. 轉(zhuǎn)移該目錄內(nèi)的文件、目錄位置。
5. 總之、目錄的w權(quán)限與該目錄下的 文件名 變動(dòng)有直接關(guān)系。
3. x(access directory):目錄x代表用戶 是否能進(jìn)入該目錄 成為工作目錄,例如我具有/data的x權(quán)限,那么我可以cd /data,反之則不行。
例如:查看/data下的test.txt文件的詳細(xì)信息可以看到:
[root@oldboy2 /]# ls -l /data/test.txt
-rw-r--r--. 1 oldboy users 296 Apr 29 11:15 /data/test.txt
打印的結(jié)果中:
1. 第一個(gè)字符 [-] :表示此文件為普通文件
2、后面的[rw-r--r--]字符:表示此文件的權(quán)限信息,三個(gè)一組。
· 第一組[rw-]:表示 所有者的權(quán)限 為r、w,可讀可寫。
· 第二組[r--]:表示 同用戶組的權(quán)限 為r,只能讀。
· 第三組[r--]:表示 其他非本用戶組 的權(quán)限為r,只能讀。
三、Linux存放用戶身份和用戶組記錄的文件。
/etc/passwd #默認(rèn)情況下,所有系統(tǒng)上的賬號與一般身份用戶以及root的信息都記錄在這個(gè)文件里/etc/shadow #記錄個(gè)人的密碼/etc/group #記錄所有的用戶組名稱#這三個(gè)文件是Linux里賬號、密碼和用戶組信息的集中地。不可隨意刪除。
四、更改文件用戶組、所有者、權(quán)限的命令。(注:以下操作都在root下進(jìn)行)
1. 改變文件用戶組chgrp(change group)
chgrp users /root/install.log #要改變的組名必須在/etc/group下存在
#將install.log文件用戶組改為users
2.改變文件所有者chown(change owner)
chown xiaoming /data/test.txt #目標(biāo)用戶必須在/etc/passwd下存在
#將test.txt文件的所有者為xiaoming
3. 改變文件權(quán)限chmon
1. 方法一,Linux中每種權(quán)限對應(yīng)著一個(gè)分?jǐn)?shù),對應(yīng)表如下
r(read) == 4
w(write) == 2
x(executable) == 1
2.
更改文件的權(quán)限就把需要的權(quán)限分?jǐn)?shù)相加后放在對應(yīng)的owner、group、others位置上。如下
chmod 640 /data/test.txt #將/test.txt權(quán)限更改為-rw-r-----
#6==4+2 對應(yīng)rw-;4對應(yīng)r--;0對應(yīng)---。只有owner可讀寫,group可讀,others無任何權(quán)限)
2.方法二,前面說過user(也就是owner)、group、others三種身份,在Linux中用u,g,o代表這三種身份的權(quán)限。如下:
u +(加入某個(gè)權(quán)限) r
g -(去除某個(gè)權(quán)限) w
o =(設(shè)置某個(gè)權(quán)限) x
a(all)
實(shí)踐:例如要設(shè)置一個(gè)文件的權(quán)限為-rwxr-xr-x,也就是user具有可讀、可寫和可執(zhí)行權(quán)限,group與others(g/o)具有可讀與可執(zhí)行的權(quán)限。代碼如下:
[root@oldboy2 /]# chmod u=rwx,go=rx /data/test.txt
[root@oldboy2 /]# ls -l /data/test.txt
#查看權(quán)限
-rwxr-xr-x. 1 oldboy users 296 Apr 29 11:15 /data/test.txt
來源:博客園