1. 程式人生 > >Linux的文件權限和特殊權限

Linux的文件權限和特殊權限

linux文件權限、linux特殊權限、acl

一、Linux的基本文件權限

1、文件的權限

技術分享圖片

當用戶不擁有某位權限,則使用-占位
    r-x:讀和執行的權限
    r--:只讀權限
    rw-:讀寫權限

使用數字來表示權限:
    r:4
    w:2
    x:1

#=================================================================

2、權限對於文件和目錄的區別

對於文件的權限:
    r : 查看 
    w : 修改
    x : 運行

對於目錄的權限:
    r : 查看目錄內文件列表
    w : 創建和刪除文件(需要x權限)
    x : cd進目錄
    
#=================================================================

3.權限管理的基本命令

chmod : 修改文件權限
chmod [options]... mode... file 
例:chmod 777 file 
    chmod +x file
    chmod -x file
選項:
    -R :遞歸修改權限

	
chown : 修改屬主屬組
chown [options]... user:group file
例:chowm root:root file1
選項:
    -R:遞歸
	
chgrp:修改組權限
chgrp [options]... GROUP FILE...
例:chgrp group1 file1
選項:
    -R:遞歸
    
#=================================================================

4.umask:新建文件和目錄的默認權限

umask值可以用來保留在創建文件權限

新建FILE權限: 666-umask
    如果所得結果某位存在執行(奇數)權限,則將其權限+1
新建DIR權限: 777-umask

非特權用戶umask是002
root的umask 是022

用法:	
    umask: 查看
    umask #: 設定
        umask 002
    umask –S 模式方式顯示
    umask –p 輸出可被調用
	
umask全局設置:/etc/bashrc ;用戶設置:~/.bashrc

#================================================================= 	


二、Linux系統上的特殊權限

特殊權限:SUID,SGID,STICKY

安全上下文:

前提:進程有屬主和屬組;文件有屬主和屬主

(1) 任何一個可執行程序文件能不能啟動為進程,取決發起者對程序文件是否擁有執行權限

(2) 啟動為進程之後,其進程的屬主為發起者,進程的屬組為發起者所屬的組

(3) 進程訪問文件時的權限,取決於進程的發起者

權限匹配模型:

(a) 進程的發起者,同文件的屬主:則應用文件屬主權限

(b) 進程的發起者,屬於文件屬組;則應用文件屬組權限

(c) 應用文件“其它”權限

SUID :
示例文件:/bin/passwd

1.只能作用在二進制程序上。
2.執行該程序的用戶將會繼承程序所有者的權限。
3.啟動成為進程後,其進程屬主為原程序文件的屬主。

權限設定:
賦權:
chmod u+s file...
chmod 4755 file...
取消賦權:
chmod u-s file...
chmod 0755 file...


SGID:
示例目錄:/tmp

1.作用在二進制程序上時:
    (1)執行該程序的用戶將會繼承程序所屬組的權限。	
    (2)啟動為進程之後,其進程的屬組為原程序文件的屬組

2.作用在目錄上時:
    (1)普通用戶在此目錄下新建的文件,都將會繼承目錄的屬組。
	
權限設定:	
    賦權:
    chmod g+s file...
    chmod 2755 file...
    取消賦權:
    chmod 0755 file...
    chmod g-s file...


sticky:
1.只能作用在目錄上(作用在文件上無意義)
2.具有sticky權限的目錄,普通用戶不能刪除文件,僅文件所有者可以刪除。

權限設定:
    賦權:
    chmod o+t dir...
    chmod 1755 dir..
    取消賦權:
    chmod 0755 dir...
    chmod o-t dir...
	

chattr : 鎖定指定的文件
    + : 在原有基礎上追加參數
    - : 在原有基礎上移除參數
    = : 設定為指定參數
    i : 鎖定文件,不能修改或者刪除。
    a : 只能向文件中添加數據
    A : 禁止修改atime
    
    
#=================================================================

三、ACL:訪問控制表

ALC:Access Control List,訪問控制表

除文件的所有者,所屬組和其他人,可以對更多的用戶設定權限


ACL權限生效順序:

所有者 >(自定義用戶> 所屬組,自定義組) > 其他人

括號外的用戶不收mask影響

getfacl : 查看ACL信息
setfacl : 設置ACL
	
getfacl:
getfacl FILE...
    user:USERNAME:MODE
    group:GROUPNAME:MODE

setfacl:
    -m : 設置acl參數
        -m u:user_name:mode file|dir
        -m g:group_name:mode dir
    -x : 取消acl參數
        -x u:user_name file|dir
        -x g:group_name file|dir	
    -b : 取消全部的ACL權限
    -R :遞歸
    
#=================================================================


本文出自 “BigBoss” 博客,請務必保留此出處http://bigboss.blog.51cto.com/12113895/1982960

Linux的文件權限和特殊權限