我們分開來解釋:
第一個 - 表示文件的類型:-普通文件 d目錄文件 l符號鏈接文件(軟連接文件) c符設備文件 b塊設備文件 p管道文件 s socket文件
rwx代表的意思分別是:read可讀 write可寫 executive可執行;
把rwx用二進位來表 示,有許可權就用1表示,沒許可權用0表示 例如 rw- =110 r--=100 r-w =101 依次類推,之後再轉化為十進位:rw-=110=4 2 0=6 r-x=101=4 0 1=5 所以我們可以直接理解為r=4,w=2,x=1,用十進位便是文件許可權:rwx=4 2 1=7 , r-x=4 1=5
舉些例子:
644 = rw-r--r-- 755=rwx-r-xr-x 631=rw--wx--x
從前往後三組rwx代表的意思:user屬主 group屬組 other其它
設置許可權的方法:以文件 file 原許可權為644(rw-r--r--)為例
chmod x file 默認為添加屬主的執行許可權
chmod 755 file rwxr-xr-x
chmod u x file rwxr--r-- 數組添加執行許可權
chmod g=rwx file chmod g=674 file rw-rwxr-- 屬組改為rwx許可權
chmod o-r file rw-r----- 減去其它用戶的可讀許可權
這樣子大家就明白了吧
我們創建的新文件許可權為
644 新目錄許可權為755 這是為什麼呢?大家看一下各許可權可做的事情就明白了:
files directory
r: cat,more,less ls
w: vim creat files
x: script cd,ls -l
那我們又是怎麼限定創建文件的許可權的呢?
linux裡面,用一種umask的掩碼似的東西限定新創建文件的許可權,默認umask為0022(普通用戶的umask通常為0002)
例子:我們創建一個文件:它的許可權就是666-022=644
我們創建一個目錄:它的許可權就是777-022=755
暫時性更改umask:例子 :umask=027
umask文件保存與/etc/bashrc中 想要永久生效可以更改/etc/bashrc/umask文件
想要只對自己生效可以更改家目錄下的.bash文件 添加一行umask=nnn即可
下面我們重點介紹的是文件的特殊屬性:
安全上下文:任何時刻用戶 靠進程操作計算機,進程能否訪問一個文件取決於發起這個進程的用戶對該文件所擁有的許可權:若發起進程的用戶與文件屬主匹配,以該用 戶許可權訪問;否則,若發起進程的組與該文件數組匹配,以該組的許可權進行訪問;否則以發起者許可權訪問.這就叫做安全上下文
開始介紹3個特殊許可權:suid sgid sticky
suid:通常用於可執行文件 任何用戶操作此許可權文件使用該文件屬主許可權
sgid:通常用於目錄 任何用戶操作此許可權文件夾使用該文件夾屬組許可權
sticky:通常用於公共類型的目錄 對於此許可權目錄,任何用戶可在裡面創建文件,但是只允許更改或刪除屬於自己的文件
舉例說明下他們的作用
suid:/etc/passwd文件擁有suid許可權.普通用戶更改密碼 時,要運行passwd文件,passwd對/etc/shadow(存放密碼的文件)文件進行操作更改密碼.要知道普通用戶對shadow文件沒有任何 許可權,所以普通用戶執行的passwd程序不能更改shadow.這時候就用到了suid許可權,這個許可權使用戶運行的passwd命令使用的是 passwd文件屬主root的許可權,擁有root許可權的passwd命令有許可權更改/etc/shadow文件,於是普通用戶可以成功更改自己密碼.
sticky:
/tmp /var/tmp 目錄對於任何人有任何許可權,它是存放臨時文件的地方,這種公共目錄下,一個用戶文件有被其他用戶隨意破壞的危險,sticky許可權正好避免了這一危險更改特殊許可權方法:
chmod u s filename 屬主添加suid許可權
chmod g s filename 屬組添加sgid許可權
chmod o t filename 目錄添加scitky許可權
suid sgid sticky 同樣可用 4 2 1 表示
例:chmod 4644 filename 表示 u s
rwS 表示許可權有r w s
rws 表示的許可權為 r w x s
t許可權同理
下面大家可以自己動手演示一下,我們最好用複雜一點的方法實現,練習一下許可權操作.
提示:
mkdir -pv /test/share -p提示創建信心 -v遞歸創建
chmod o rx /test
groupadd penguin 創建組penguin
chgrp penguin /test/share 更改/test/share屬組為penguin
chmod g=rwx /test/share
useradd -G penguin gentoo
useradd -G penguin ubuntu 創建用戶並添加到組penguin
chmod g s /test/share
登陸兩個用戶分別在/test/share目錄中創建幾個文件看是否能給刪除
chmod o t /test/share
再登陸兩個用戶分別在/test/share目錄中創建幾個文件看是否能給刪除
(如果以上操作不成功可能是selinux的作用 ,我們可以在前面執行
setenforce0命令暫時關閉selinux再執行以下操作)
怎麼篇文章在主頁顯示出來總是亂碼,誰告訴我一下
本文出自 「linux之路」 博客,請務必保留此出處http://linuxzoe.blog.51cto.com/3005391/554716
[火星人 ] Linux 文件許可權詳解已經有619次圍觀