天天看點

檔案目錄檔案權限與目錄

檔案可存取通路的身份分為3個類别,分别是owner、group、others,這3種類别各有read、write、execute3種權限

一、使用者和使用者組

使用者身份與使用者組記錄的檔案

近來朋友幾篇文章介紹了改檔案目錄的文章. 關聯文章的位址

    檔案可存取拜訪的份身分為3個别類,分别是owner、group、others,這3種别類各有read、write、execute3種限權

    一、使用者和使用者組

    使用者份身與使用者組記載的檔案:

    1.賬戶息信:/etc/passwd

    2.碼密息信:/etc/shadow

    3.組名息信:/etc/group

    二、檔案限權與屬性

    [root@hs-uf21 etc]# ll

    -rw-r--r--          1       root    root      2767    Apr 11 13:20   passwd

    drwxr-xr-x          4       root    root      4096    Apr 10 21:09   vmware-tools

    [檔案類型和限權]  [連接配接 ] [全部者][使用者組]  [檔案容量] [ 修改間時 ]   [檔案名]

    第一列“-rw-r--r--” 共10個字元,表現檔案的類型和限權,詳細如下:

 -        rw-         r--             r--

 d         rwx         r-x             r-x

    [檔案類型][全部者限權][同使用者組的限權][非本使用者組的限權]

    檔案類型明說:

    [d] :表現目錄;

    [-] :表現一般檔案;

    [l] :表現連接配接檔案(linkfile);

    [b] :表現裝置檔案面裡的可供存儲的接口裝置;

    [c] :表現裝置檔案面裡的串行端口裝置,如鍵盤、滑鼠。

    檔案限權明說:

    [r] :表現可讀(read);

    [w] :表現可寫(write);

    [x] :表現可行執(execute);

    第二表列現有多少個檔案名連接配接到此節點(i-node)

    第三表列現這個檔案(或目錄)的全部者賬号

    第四表列現這個檔案(或目錄)的所屬使用者組

    第五表列現這個檔案的容量巨細,默許位單為B

    第六表列現這個檔案的建創日期或者是近來的修改日期

    第七表列現這個檔案的檔案名,如果檔案名之前多一個“.”,則表現這個檔案為“隐藏檔案”。

    三、檔案限權與屬性的修改

    參數:

    [-R] :行進遞歸(recursive)的續持動變,也即連同子目錄下的全部檔案、目錄都更新成這個用組之間,常用在動變某一目錄内全部的檔案情況。

    1.chgrp:變改檔案所屬使用者組

    文法:chgrp [-R] GROUP dirname/filename

    将檔案etc.tar地點所屬的使用者組改到dba:

    [root@hs-uf21 ~]# chgrp dba etc.tar

    [root@hs-uf21 ~]# ll

    -rw-r--r--  1root dba 48885760 Apr 19 22:39 etc.tar

    2.chown:變改檔案全部者

    文法:chown[-R] USER[:/.GROUP] dirname/filename

    [-R] :行進遞歸(recursive)的續持動變,也即連同子目錄下的全部檔案、目錄都更新成這個用組之間,常用在動變某一目錄内全部的檔案情況。   

    将檔案etc.tar的全部者和所屬組為改oracle和dba

    [root@hs-uf21 ~]# chown oracle:dba etc.tar

    -rw-r--r--  1 oracle dba 48885760 Apr 19 22:39 etc.tar

    注意:chown可以同時動變檔案的全部才群組名,面上的作操這樣作操,[root@hs-uf21 ~]# chown oracle.dbaetc.tar,即使用者名群組名之前可以用“.”來替代“:”。

    3.chmod:變改檔案的限權

    檔案可存取拜訪的份身分為3種,分别是user、group、others,每種份身的檔案權又可以分為三類:r(read)、w(write)、x(execute),同時也可以用數字來代表,分别為:r = 4、w = 2、x = 1。是以變改限權的方法可以分為:數字類型和符号類型

    數字類型變改檔案限權

    文法:chmod [-R] [限權] 檔案或者目錄

    參數:[限權]為rwx的數字表現,詳細如下

    user   = rwx =4+2+1 = 7

    group  = rwx = 4+2+1 = 7

    others = rwx= 4+2+1 = 7

    給檔案install.log的全部者予賦讀寫行執的限權

    [root@hs-uf21 ~]# chmod 700install.log

    -rwx------  1root   root    59020 Apr 10 20:32 install.log

    給檔案install.log的全部者予賦讀和寫的限權,同級使用者和非同組使用者予賦讀的限權

    [root@hs-uf21 ~]# chmod 644install.log

    -rw-r--r--  1root   root    59020 Apr 10 20:32 install.log

    符号類型變改檔案限權

    文法:chmod [-R] [限權作操] 檔案或者目錄

    參數:[限權作操]詳細為置設每種份身的限權作操,不同份身之間的限權置設用逗号離隔。

    份身類型:u(user)、g(group)、o(others)、a(all)

    作操類型:+(加增限權)、-(删除限權)、=(置設限權)

    限權類型:r(read)、w(write)、x(execute)

    給檔案install.log的全部者予賦讀、寫、行執的限權,同級使用者和非同組使用者予賦讀和行執的限權

    [root@hs-uf21 ~]# chmod u=rwx,go=rxinstall.log

    -rwxr-xr-x  1root   root    59020 Apr 10 20:32 install.log

    給檔案install.log的全部者、同級使用者、非同組使用者予賦讀和寫的限權

    [root@hs-uf21 ~]# chmod a=rwinstall.log

    -rw-rw-rw-  1root   root    59020 Apr 10 20:32 install.log

    取消檔案install.log同級使用者、非同組使用者的寫的限權

    [root@hs-uf21 ~]# chmod go-winstall.log

    注意:如果要給目錄及了目錄下的全部檔案予賦限權,可以應用-R參數。

    四、檔案與目錄的限權

    1.檔案限權的意思

    r(read):可取讀此檔案的現實内容。

    w(write):可以輯編、新增或者是修改該檔案的内容(但可不以删除該檔案)。

    x(execute):該檔案可以被系統行執的限權。

    每日一道理

一個安靜的夜晚,我獨自一人,有些空虛,有些凄涼。坐在星空下,擡頭仰望美麗天空,感覺真實卻由虛幻,閃閃爍爍,似乎看來還有些跳動。美的一切總在瞬間,如同“海市蜃樓”般,也隻是刹那間的一閃而過,當天空變得明亮,而這星星也早已一同退去……

    注意:對于檔案的“rwx”限權,要重都是針對“檔案内容”說來的,與檔案名的存在死心踏地否沒有關系,因為檔案記載的是現實的據數。

    2.目錄限權的意思

    r(read):表現擁有取讀目錄結構表列的限權,即可以查詢該目錄下的檔案名據數。

    w(write):表現擁有動變目錄結構表列的限權,即建新新的檔案與目錄、删除經已存在的檔案與目錄(不論該檔案的限權為何)、将經已存在的檔案或者目錄行進重命名、轉移該目錄内的檔案、目錄、位置。

    x(execute):表現使用者是否進入該目錄成為以後工作目錄。

    在oracle的根目錄下建創一個目錄files,并取該目錄的全部限權:

    [root@hs-uf21 oracle]# mkdir files

    [root@hs-uf21 oracle]# ll

    drwxr-xr-x  2root   root          4096 Apr 20 19:41 files

    [root@hs-uf21 oracle]# chown -R oracle.oinstall files

    drwxr-xr-x  2oracle oinstall      4096 Apr 20 19:41files

    [root@hs-uf21 oracle]# chmod a-rwx files

    d---------  2oracle oinstall      4096 Apr 20 19:41files

    用oracle使用者進入、看查files目錄,以及在files目錄建創新的檔案都市提示限權足不:

    [oracle@hs-uf21 ~]$ oracle

    [oracle@hs-uf21 ~]$ ll

    [oracle@hs-uf21 ~]$ cd files

    -bash: cd: files: Permission denied

    [oracle@hs-uf21 ~]$ ll files

    ls: files: Permission denied

    [oracle@hs-uf21 ~]$ touch ./files/test.txt

    touch: cannot touch `./files/test.txt': Permissiondenied

    給目錄files予賦可行執的限權,此時可以進入該目錄,但是可不以建創新檔案,也可不以ls看查該目錄下的檔案表列:

    [oracle@hs-uf21 ~]$ chmod 100 files

    d--x------  2oracle oinstall      4096 Apr 20 19:41files

    [oracle@hs-uf21 files]$ touch test.txt

    touch: cannot touch `test.txt': Permission denied

    給目錄files予賦可寫和可行執的限權,此時可以行進該目錄,也可以建創新檔案,但可不以應用ls看查該目錄下的檔案表列:

    [oracle@hs-uf21 ~]$ chmod 300 files

    d-wx------  2oracle oinstall      4096 Apr 20 19:41files

    [oracle@hs-uf21 files]$ ls

    ls: .: Permission denied

    給目錄files予賦可讀、可寫和可行執的限權,此時對該目錄下全部檔案行進各種作操:

    [oracle@hs-uf21 ~]$ chmod 700 files

    [oracle@hs-uf21 files]$ ll

    total 0

    -rw-r--r--  1oracle oinstall 0 Apr 20 19:54 test.txt

    五、目錄置配

    FHS(Filesystem Hierarchy Standard)标準個每特定的目錄下該應要放置什麼子樣的據數。

    FHS據依檔案系統應用的頻仍與否與是不是答應使用者意随修改,将目錄定義成四種互動應用的态形,如下:

    1.可分享的:可以分享給其它系統挂載應用的目錄

    2.可不分享的:自己呆闆上行運的裝置檔案或者是與程式有關的socket檔案等。

    3.可動變的:經常變改的據數,例如登入檔案等。

    4.可不動變的:有些據數是不會經常動變的,跟随着distribution面不動變。

    事實上FHS針對目錄樹架構僅定義出三層目錄下該應放置什麼據數,如下:

    1./(root,根目錄):與開機系統相幹;

    2./usr(UNIX Software Resource):與軟體安裝、行執相幹;

    3..var(variable):與系統運作程過相幹。

    根目錄(/)的意思與内容

    根目錄與開機、原還、系統修複等作操有關,其它全部的目錄都是由根目錄衍生出來的,同時目錄(/)全部的分區越小越好,且該應程式所安裝的軟體最好不要與根目錄放在同一個内,如此不但性能較好,根目錄地點檔案系統也不容易生發題問。FHS定義的根目錄下該應存在的了目錄如下:

    [/bin  ]:放置系統行執檔案的目錄

    [/boot ]:放置系統開機會應用的檔案,包括Linux核心檔案以及開機菜單與開機所需置配檔案等

    [/dev  ]:在Linux系統上,任何裝置與接口裝置都是以檔案的式形存在于這個目錄當中的

    [/etc  ]:系統要重的置配檔案幾乎都放置在這個目錄

    [/home ]:系統默許的使用者主檔案夾

    [/lib  ]:放置系統在開機是要需用到的函數庫,以及在/bin或者/sbin面下的令命會調用的函數庫

    [/media]:放置可以删除的裝置,包括盤軟、CD光牒、DVD等裝置都時暫挂載與此。

    [/opt  ]:放置第三方軟體的目錄,也可以放置在/usr/local面下

    [/root ]:系統管理者(root)的主檔案夾

    [/sbin ]:放置系統開機程過中要需的令命,包括開機、修複、原還系統等令命。

    [/srv  ]:可以視為service的縮寫,是一些網絡服務動啟後之,這些服務要需取勝的據數目錄。如www、ftp等。

    [/tmp  ]:一般使用者或者是正在行執的程式時暫寄存檔案的地方,這個目錄任何使用者都可以拜訪。

    [/prod ]:這個目錄是一個虛拟檔案系統,它放置的據數都是在記憶體當中的,例如系統核心、程進、外部裝置的态狀及網絡态狀等。

    [/sys  ]:這個目錄也是一個虛拟檔案系統,平要重記載核心相幹的息信。

    作操系統軟體源資(/usr)的意思與内容

    據依FHS的基本定義,/usr面裡寄存可分享與可不動變的據數是作操系統相幹的軟體,而不使用者的據數,因為系統默許的軟體都放置在/usr面下,這個目錄有點相似windows系統下有“C:\Windows”和“C:\Program files”這兩個目錄。系統剛安裝畢完時,這個目錄占用的空間大最。/usr的子目錄一般如下:

    [/usr/src   ]:放置源代碼

    [/usr/bin   ]:放置一般使用者可以應用的令命,與/bin(開機程過相幹的令命)不同。

    [/usr/lib   ]:包括各應用軟體的函數庫、目标檔案、以及不被一般使用者習用的行執檔案或者本腳。

    [/usr/local ]:系統管理者在本機安裝的第三方軟體

    [/usr/sbin  ]:非系統正常行運所要需的系統令命。

    [/usr/share ]:放置共享檔案

    [/usr/include]:C/C++等程式語言的頭檔案與包括檔案

    [/usr/X11R6 ]:放置XWindow系統要重據數。

    /var的意思與内容

    /var目錄要重放置常态性動變的檔案,包括緩存、登入檔案、以及某些軟體行運程過所生産的檔案。/var目錄見常的子目錄如下:

    [/var/lock ]:放置檔案源資或者裝置的鎖

    [/var/log  ]:放置登入檔案

    [/var/run  ]:某些程式或者服務動啟後,會将它們的IID放置在這個目錄下。

    [/var/spool]:放置一些列隊據數

    [/var/cache]:應用程式本身行運程過生産的一些暫存檔案。

文章結束給大家分享下程式員的一些笑話語錄:

開發時間

  項目經理: 如果我再給你一個人,那可以什麼時候可以完工?程式員: 3個月吧!項目經理: 那給兩個呢?程式員: 1個月吧!

項目經理: 那100呢?程式員: 1年吧!

項目經理: 那10000呢?程式員: 那我将永遠無法完成任務.