日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux-basic(6)linux的文件权限与目录配置

發布時間:2023/12/3 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux-basic(6)linux的文件权限与目录配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【6.1】用戶與用戶組
1)linux用戶身份與用戶組記錄的文件

/etc/passwd 默認情況下所有系統上的賬號都記錄在該文件;
/etc/shadow 用戶密碼記錄在該文件下;
/etc/group linux的所有組名記錄在該文件下;
注意:這3個文件是 linux系統里面賬號,密碼,用戶組信息的集中地;不要隨便刪除這3個文件;




【6.2】linux文件權限概念
【6.2.1】linux文件屬性
【荔枝】 ls -al

ls 顯示文件的文件名與相關屬性;-al則表示列出所有的文件詳細的權限與屬性,包括隱藏文件,就是文件名第一個字符為 . 的文件;


【荔枝】 drwxrwxr-x.? 2 pacoson pacoson? ? 1024 3月? ?1 07:23 .abrt?
【第一列】

第一個字符代表這個文件是『目錄、文件或鏈接文件等等』:
當為[ d ]則是目錄,例如上表檔名為『.gconf』的那一行;
當為[ - ]則是文件,例如上表檔名為『install.log』那一行;
若是[ l ]則表示為連結檔(link file);
若是[ b ]則表示為裝置文件里面的可供儲存的接口設備(可隨機存取裝置);
若是[ c ]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。


其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。 要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。

【第二列】表示有多少文件名連結到此節點(i-node);
【第三列】表示這個文件(或目錄)的『擁有者賬號』,即所有者賬號;
【第四列】表示這個文件的所屬用戶組;
【第五列】表示文件容量大小,單位為B;
【第六列】表示文件的創建日期或者最近修改日期;


【荔枝】ls -l
1)ls -l --full-time:顯示出完整的時間格式;


2)使用 LANG=en_US 來修改語言;


3)想要讓系統默認的語言變成英文的話,你可以修改系統配置文件 /etc/sysconfig/i18n ;



【第七列】為該文件的文件名;


【補充】
1)man ls 或 info ls 可以查看ls命令的基礎用法;




【補充】ls命令(列出所有子目錄與文件)??https://blog.csdn.net/xingpidong/article/details/53505468


功能:ls是英文單詞list的簡寫,其功能為列出目錄的內容。這是用戶最常用的一個命令之一,因為用戶需要不時地查看某個目錄的內容。該命令類似于DOS下的dir命令。
語法:ls [選項] [目錄或是文件]?
對于每個目錄,該命令將列出其中的所有子目錄與文件。對于每個文件,ls將輸出 其文件名以及所要求的其他信息。默認情況下,輸出條目按字母順序排序。當未給出目錄名或是文件名時,就顯示當前目錄的信息。
參數:
  • - a 顯示指定目錄下所有子目錄與文件,包括隱藏文件。?
  • - A 顯示指定目錄下所有子目錄與文件,包括隱藏文件。但不列出“.”和 “..”。
  • - b 對文件名中的不可顯示字符用八進制逃逸字符顯示。
  • - c 按文件的修改時間排序。?
  • - C 分成多列顯示各項。
  • - d 如果參數是目錄,只顯示其名稱而不顯示其下的各文件。往往與l選項一起使 用,以得到目錄的詳細信息。
  • - f 不排序。該選項將使lts選項失效,并使aU選項有效。
  • - F 在目錄名后面標記“/”,可執行文件后面標記“*”,符號鏈接后面標記 “@”,管道(或FIFO)后面標記“|”,socket文件后面標記“=”。?
  • - i 在輸出的第一列顯示文件的i節點號。?
  • - l 以長格式來顯示文件的詳細信息。這個選項最常用。
  • 每行列出的信息依次是: 文件類型與權限 鏈接數 文件屬主 文件屬組 文件大小 建立或最近修改的時間 名字
  • 對于符號鏈接文件,顯示的文件名之后有“—〉”和引用文件路徑名。?
  • 對于設備文件,其“文件大小”字段顯示主、次設備號,而不是文件大小。
  • 目錄中的總塊數顯示在長格式列表的開頭,其中包含間接塊。?
  • - L 若指定的名稱為一個符號鏈接文件,則顯示鏈接所指向的文件。
  • - m 輸出按字符流格式,文件跨頁顯示,以逗號分開。?
  • - n 輸出格式與l選項相同,只不過在輸出中文件屬主和屬組是用相應的UID號和 GID號來表示,而不是實際的名稱。
  • - o 與l選項相同,只是不顯示擁有者信息。
  • - p 在目錄后面加一個“/”。
  • - q 將文件名中的不可顯示字符用“?”代替。?
  • - r 按字母逆序或最早優先的順序顯示輸出結果。?
  • - R 遞歸式地顯示指定目錄的各個子目錄中的文件。?
  • - s 給出每個目錄項所用的塊數,包括間接塊。?
  • - t 顯示時按修改時間(最近優先)而不是按名字排序。若文件修改時間相同,則 按字典順序。修改時間取決于是否使用了c或u選頂。缺省的時間標記是最后一次修 改時間。
  • - u 顯示時按文件上次存取的時間(最近優先)而不是按名字排序。即將-t的時間 標記修改為最后一次訪問的時間。
  • - x 按行顯示出各排序項的信息。
  • -----------------------------------------------------------------------------------------------------
  • 用ls - l命令顯示的信息中,開頭是由10個字符構成的字符串,其中第一個字符表示文件類型,它可以是下述類型之一:
  • - 普通文件
  • d 目錄?
  • l 符號鏈接
  • b 塊設備文件
  • c 字符設備文件
  • 后面的9個字符表示文件的訪問權限,分為3組,每組3位。
  • 第一組表示文件屬主的權限,第二組表示同組用戶的權限,第三組表示其他用戶的權限。每一組的三個字 符分別表示對文件的讀、寫和執行權限。?
  • 各權限如下所示:
  • r 讀?
  • w 寫?
  • x 執行。對于目錄,表示進入權限。
  • s 當文件被執行時,把該文件的UID或GID賦予執行進程的UID(用戶ID)或GID(組 ID)。
  • t 設置標志位(留在內存,不被換出)。如果該文件是目錄,在該目錄中的文件只能被超級用戶、目錄擁有者或文件屬主刪除。如果它是可執行文件,在該文件執行后,指向其正文段的指針仍留在內存。這樣再次執行它時,系統就能更快地裝入該文件。?
  • - 沒有設置權限。
【6.2.2】如何改變文件屬性與權限
1)幾個常用于用戶組,所有者,各種身份的權限的修改的命令:

  • chgrp:改變文件所屬用戶組;被改變的組名必須在 /etc/group 文件中有記錄才行;
  • chown:改變文件所有者;
  • chmod:改變文件的權限;
【荔枝】chgrp [-R] dir/file , 其中-R遞歸持續更改,連同其子目錄下的所有文件和目錄;



分析)可以看到 chgrp 沒有-R參數的話,只改變目錄的組所有者;


【荔枝】chgrp -R 目錄 可以改變目錄的子目錄或文件的組所有者;


【荔枝】

chown [-R] 賬號名稱 文件或目錄
chown [-R] 賬號:組名 文件或目錄
-R表示遞歸更改,即連同子目錄下的所有文件都更改;

【補充】事實上,chown與可以使用 chown user.group file; chown 也可以單純的修改所屬用戶組, 如 chown .sshd install.log 就是修改用戶組,即那個小數點的用途;

2)什么時候使用 chown 或 chgrp 呢?
由于復制行為cp 會復制執行者的屬性與權限,所以需要修改文件的所有者與用戶組;

3)改變權限chmod
3.1)數字類型改變文件權限

linux文件的基本權限有9個,分別是 owner, group, others 3個身份都有 read, write, execute 權限;數字表示 r=4, w=2, x=1;

每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為: [-rwxrwx---] 分數則是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

【荔枝】chmod [-R] xyz 文件或目錄
選項與參數:

  • xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
  • -R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更。


3.2)符號類型改變文件權限
分別用 u, g, o 表示 user, group, others 3種身份;此外 a代表全部身份;權限矩陣如下:


【荔枝】通過符號設置權限



【補充】增加或減少權限:? 也可以通過 + - 來設置權限, 如: chmod a+w 文件或目錄; chmod a-x 文件或目錄;


【6.2.3】目錄與文件的權限意義
1)權限對文件的重要性

文件是實際含有數據的地方,包括一般文本文件、數據庫內容文件、二進制可執行文件(binary program)等等。
在Linux底下,我們的文件是否能被執行,則是藉由是否具有『x』這個權限來決定的!跟檔名是沒有絕對的關系的!

2)權限對目錄的重要性
文件是存放實際數據的所在,那么目錄主要是儲存啥玩意啊?目錄主要的內容在記錄文件名列表,文件名與目錄有強烈的關連啦!?

2.1)所以如果是針對目錄時,那個 r, w, x 對目錄是什么意義呢?
  • r: 讀取目錄下文件列表的權限;即利用ls命令 顯示目錄結構列表;
  • w: 具有更改該目錄結構列表的權限;如:
  • 建立新的文件與目錄;
  • 刪除已經存在的文件與目錄(不論該文件的權限為何!)
  • 將已存在的文件或目錄進行更名;
  • 搬移該目錄內的文件、目錄位置。
  • x: 目錄的x代表的是用戶能否進入該目錄成為工作目錄的用途! 工作目錄表示你目前所在的目錄;變換目錄的命令是cd;
注意1:如果你在某目錄下不具有x的權限, 那么你就無法切換到該目錄下,也就無法執行該目錄下的任何指令,即使你具有該目錄的r的權限。
注意2:要開放目錄給任何人瀏覽時,應該至少也要給予r及x的權限,但w權限不可隨便給! 為什么w不能隨便給,我們來看下一個例子:

【荔枝】目錄的w權限不能隨便給
1)一般用戶的讀取權限?


上面的練習我們知道了只有r確實可以讓用戶讀取目錄的文件名列表,不過詳細的信息卻還是讀不到的, 同時也不能將該目錄變成工作目錄(用 cd 進入該目錄之意)。


2)目錄所有者的讀取權限


透過上面這個簡單的步驟,你就可以清楚的知道, x 在目錄當中是與『能否進入該目錄』有關, 至于那個 w 則具有相當重要的權限,因為他可以讓使用者刪除、更新、新建文件或目錄, 是個很重要的參數啊!這樣可以理解了嗎?! ^_^

【6.2.4】linux文件種類與擴展名
1)文件種類

  • 普通文件, 純文本文件,二進制文件,數據格式文件;
  • 目錄;
  • 連接文件;
  • 設備與設備文件:塊設備文件,字符設備文件,套接字,管道;
  • linux文件擴展名:
  • linux
2)擴展名:?底下有數種常用的擴展名:
  • *.sh : 腳本或批處理文件 (scripts),因為批處理文件為使用shell寫成的,所以擴展名就編成 .sh ;
  • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 經過打包的壓縮文件。這是因為壓縮軟件分別為 gunzip, tar 等等的,由于不同的壓縮軟件,而取其相關的擴展名啰!
  • *.html, *.php:網頁相關文件,分別代表 HTML 語法與 PHP 語法的網頁文件啰! .html 的文件可使用網頁瀏覽器來直接開啟,至于 .php 的文件, 則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運算后的網頁結果呢!
3)linux文件長度限制:?在Linux底下,使用預設的Ext2/Ext3文件系統時,針對文件的檔名長度限制為:
  • 單一文件或目錄的最大容許文件名為 255 個字符;
  • 包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個字符。
4)linux文件名限制
由于Linux在文字接口下的一些指令操作關系,一般來說,你在設定Linux底下的文件名時, 最好可以避免一些特殊字符比較好!例如底下這些:
* ? > < ; & ! [ ] | \ ' " ` ( ) { }
因為這些符號在文字接口下,是有特殊意義的!另外,文件名的開頭為小數點『.』時, 代表這個文件為『隱藏檔』喔!同時,由于指令下達當中,常常會使用到 -option 之類的選項, 所以你最好也避免將文件檔名的開頭以 - 或 + 來命名啊!

【6.3】linux目錄配置
1)Filesystem Hierarchy Standard (FHS)標準的出爐了:
主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個目錄下, 所以他們希望獨立的軟件開發商、操作系統制作者、以及想要維護系統的用戶,都能夠遵循FHS的標準。

2)事實上,FHS是根據過去的經驗一直再持續的改版的,FHS依據文件系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:


3)我們要了解的是,什么是那四個類型?
  • 可分享的:可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據, 是能夠分享給網絡上其他主機掛載用的目錄;
  • 不可分享的:自己機器上面運作的裝置文件或者是與程序有關的socket文件等, 由于僅與自身機器有關,所以當然就不適合分享給其他主機了。
  • 不變的:有些數據是不會經常變動的,跟隨著distribution而不變動。 例如函式庫、文件說明文件、系統管理員所管理的主機服務配置文件等等;
  • 可變動的:經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等。
4)事實上,FHS針對目錄樹架構僅定義出三層目錄底下應該放置什么數據而已,分別是底下這三個目錄的定義:?
  • / (root, 根目錄):與開機系統有關;
  • /usr (unix software resource):與軟件安裝/執行有關;
  • /var (variable):與系統運作過程有關。
5)所以在FHS的要求方面,他希望根目錄不要放在非常大的分割槽內, 因為越大的分割槽妳會放入越多的數據,如此一來根目錄所在分割槽就可能會有較多發生錯誤的機會。
因此FHS標準建議:根目錄(/)所在分割槽應該越小越好, 且應用程序所安裝的軟件最好不要與根目錄放在同一個分割槽內,保持根目錄越小越好。 如此不但效能較佳,根目錄所在的文件系統也較不容易發生問題。

6)FHS定義出根目錄(/)底下應該要有底下這些次目錄的存在才好:
/bin 因為/bin放置的是在單人維護模式下還能夠被操作的指令。 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。


/boot? linux內核文件等開機所需配置文件等; linux kernel 常用文件名為 vmlinuz, 如果使用 grub 引導裝載程序,還會存在 /boot/grub 這個目錄;


/dev 在Linux系統上,任何裝置與接口設備都是以文件的型態存在于這個目錄當中的。
?你只要透過存取這個目錄底下的某個文件,就等于存取某個裝置啰~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等


/etc 配置文件;


/home 系統默認的用戶主文件夾;


/lib 函數庫;尤其重要的是/lib/modules/這個目錄, 因為該目錄會放置核心相關的模塊(驅動程序)喔!


/media 這個/media底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD等等裝置都暫時掛載于此。常見的檔名有:/media/floppy, /media/cdrom等等。
/mnt?
/opt 這個是給第三方軟件放置的目錄;
/root 系統管理員root的主文件夾;

/sbin? 放在/sbin底下的為開機過程中所需要的,里面包括了開機、修復、還原系統所需要的指令。 至于某些服務器軟件程序,一般則放置到/usr/sbin/當中。至于本機自行安裝的軟件所產生的系統執行文件(system binary), 則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。?


/srv service的縮寫;是一些網絡服務啟動之后,這些服務所需要取用的數據目錄。 常見的服務例如WWW, FTP等等。

/tmp 臨時文件暫時放置的目錄;
/lost+found 這個目錄是使用標準的ext2/ext3文件系統格式才會產生的一個目錄,目的在于當文件系統發生錯誤時, 將一些遺失的片段放置到這個目錄下。
/proc? 這個目錄本身是一個『虛擬文件系統(virtual filesystem)』喔!他放置的數據都是在內存當中, 例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的數據都是在內存當中, 所以本身不占任何硬盤空間啊!比較重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。


/sys 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與核心相關的信息。 包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等。這個目錄同樣不占硬盤容量喔!



【補充】這五個目錄千萬不可與根目錄分開在不同的分區:


  • /usr 是 UNIX Software Resource 的縮寫;即unix 操作系統軟件資源所放置的目錄,而不是用戶數據;因為是所有系統默認的軟件(distribution發布者提供的軟件)都會放置到/usr底下,因此這個目錄有點類似Windows 系統的『C:\Windows\ + C:\Program files\』這兩個目錄的綜合體,系統剛安裝完畢時,這個目錄會占用最多的硬盤容量。
  • /usr/bin/? 絕大部分的用戶可使用指令都放在這里!
  • /usr/include/? c/c++等程序語言的檔頭(header)與包含檔(include)放置處,當我們以tarball方式 (*.tar.gz 的方式安裝軟件)安裝某些數據時,會使用到里頭的許多包含檔喔!
  • /usr/lib/? 包含各應用軟件的函式庫、目標文件(object file),以及不被一般使用者慣用的執行檔或腳本(script)。??
  • /usr/local/? 系統管理員在本機自行安裝自己下載的軟件(非distribution默認提供者),建議安裝到此目錄, 這樣會比較便于管理。
  • /usr/sbin/? 非系統正常運作所需要的系統指令。最常見的就是某些網絡服務器軟件的服務指令(daemon)啰!
  • /usr/share/? 放置共享文件的地方,在這個目錄下放置的數據幾乎是不分硬件架構均可讀取的數據, 因為幾乎都是文本文件嘛!在此目錄下常見的還有這些次目錄:
  • /usr/share/man:聯機幫助文件
  • /usr/share/doc:軟件雜項的文件說明
  • /usr/share/zoneinfo:與時區有關的時區文件;
  • /usr/src/? 一般源碼碼建議放置到這里,src有source的意思。至于內核源碼碼則建議放置到/usr/src/linux/目錄下。
  • /var? ?因為/var目錄主要針對常態性變動的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運作所產生的文件, 包括程序文件(lock file, run file),或者例如MySQL數據庫的文件等等。常見的次目錄有:
    • /var/cache/ 程序運行時產生的臨時文件放置的目錄;
    • /var/lib/ 程序執行需要使用的數據文件放置的目錄;
    • /var/lock/? 一些裝置或者是文件資源一次只能被一個應用程序所使用,如果同時有兩個程序使用該裝置時, 就可能產生一些錯誤的狀況,因此就得要將該裝置上鎖(lock),以確保該裝置只會給單一軟件所使用。
    • /var/log/? 登錄文件放置的目錄; 比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登入者的信息)等。
    • /var/mail/? 放置個人電子郵件信箱的目錄,不過這個目錄也被放置到/var/spool/mail/目錄中! 通常這兩個目錄是互為鏈接文件啦!
    • /var/run/? 某些程序或者是服務啟動后,會將他們的PID放置在這個目錄下喔!
    • /var/spool/? 這個目錄通常放置一些隊列數據,所謂的『隊列』就是排隊等待其他程序使用的數據啦!

【6.3.2】目錄樹
1)特性如下:

目錄樹的啟始點為根目錄 (/, root);
每一個目錄不止能使用本地端的 partition 的文件系統,也可以使用網絡上的 filesystem 。舉例來說, 可以利用 Network File System (NFS) 服務器掛載某特定目錄等。
每一個文件在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。

2)selinux目錄比較特殊:?這個目錄的內容數據也是在內存中的信息, 同樣的不會占用任何的硬盤容量。這個/selinux是Secure Enhance Linux(SELinux)的執行目錄, 而SELinux是Linux核心的重要外掛功能之一,他可以用來作為具體權限的控管,主要針對程序(尤其是網絡程序)的訪問權限來限制。


【補充】整體目錄樹


【6.3.4】centos的查看
1) 當前distribution使用的是哪個linux標準;如下:

uname -r 命令進行查看;
lsb == linux standard base , Linux標準庫?



總結

以上是生活随笔為你收集整理的linux-basic(6)linux的文件权限与目录配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。