1、使用者与群组
文件拥有者:
Linux有这么多的使用者,还分什么么群组?有什么用?
作用:起到安全防护的作用
群组概念:
作用:群组内共享资源,群组外起到安全防护作用。
例如:一家三兄弟,他们有各自的房间(拥有,使用者),和公共的客厅(群组)
其他人概念:另一家的三兄弟,即为相对于上文这一家的others
2、Linux文件权限概念
2.1、Ls –al
文件属性示意图:
圖
第一栏代表这个问件的类型与权限(Premission):
第一个字符代表这个文件是“目录、档案或连接符等”:
- 當為[ d ]則是目錄,例如上表檔名為『.config』的那一行;
- 當為[ - ]則是檔案,例如上表檔名為『initial-setup-ks.cfg』那一行;
- 若是[ l ]則表示為連結檔(link file);
- 若是[ b ]則表示為裝置檔裡面的可供儲存的周邊設備(可隨機存取裝置);
- 若是[ c ]則表示為裝置檔裡面的序列埠設備,例如鍵盤、滑鼠(一次性讀取裝置)。
接下来的字符,以三个为一组,且均为【rwx】的三个参数的组合。【r】=read,【w】=write,【x】=execute。
2.2、改变文件属性和权限
Chgrp:改变文件所属群组
Chown:改变文件拥有者
Chmod:改变档案的权限,suid,sgid,sbit等特性。
改变属性:数字类型改变文件权限:
R=4
W=2
X=1
符号类型改变文件权限:
U=user
G=group
O=other
chmod | u | +(加入) | r | 檔案或目錄 |
2.3、权限对文件的重要性
Windows下文件是否具有可执行能力是由“后缀名”决定,如:exe,bat,com等。
Linux下文件是否具有可执行能力是由【x】权限来决定的,跟文件名没有半毛钱关系。
【x】代表使用者能否进入该目录成为工作目录的用途。
如:
例題:
有個目錄的權限如下所示:
drwxr--r-- 3 root root 4096 Jun 25 08:35 .ssh
系統有個帳號名稱為vbird,這個帳號並沒有支援root群組,請問vbird對這個目錄有何權限?是否可切換到此目錄中?
答:
vbird對此目錄僅具有r的權限,因此vbird可以查詢此目錄下的檔名列表。因為vbird不具有x的權限,亦即 vbird 沒有這個抽屜的鑰匙啦!因此vbird並不能切換到此目錄內!(相當重要的概念!)
使用者操作功能与权限:
假设有两个文件夹名:
- /dir1/file1
- /dir2
账号要对文件进行一下操作,分别需要哪些最小权限:
操作動作 | /dir1 | /dir1/file1 | /dir2 | 重點 |
讀取 file1 內容 | x | r | - | 要能夠進入 /dir1 才能讀到裡面的文件資料! |
修改 file1 內容 | x | rw | - | 能夠進入 /dir1 且修改 file1 才行! |
執行 file1 內容 | x | rx | - | 能夠進入 /dir1 且 file1 能運作才行! |
刪除 file1 檔案 | wx | - | - | 能夠進入 /dir1 具有目錄修改的權限即可! |
將 file1 複製到 /dir2 | x | r | wx | 要能夠讀 file1 且能夠修改 /dir2 內的資料 |
Linux文件的后缀名的作用:
如上所述,Linux不同于Windows,文件是否可执行与后缀名无关。
但是使用文件后缀名可帮助我们区分文件是哪种类型:
- *.sh : 腳本或批次檔 (scripts),因為批次檔為使用shell寫成的,所以副檔名就編成 .sh 囉;
- *Z, *.tar, *.tar.gz, *.zip, *.tgz: 經過打包的壓縮檔。這是因為壓縮軟體分別為 gunzip, tar 等等的,由於不同的壓縮軟體,而取其相關的副檔名囉!
- *.html, *.php:網頁相關檔案,分別代表 HTML 語法與 PHP 語法的網頁檔案囉! .html 的檔案可使用網頁瀏覽器來直接開啟,至於 .php 的檔案, 則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運算後的網頁結果呢!
3、Linux的目录配置
FHS(filessystemHierarchy Standard),目的是:让使用者可以了解到已安装的软件通常放置在那个目录下。
3.1、目录树架构示意图
3.2、相对路径与绝对路径
1、绝对路径:有根目录(/)开始写起的文件夹名或目录名称,如/home/robust/.bashrc
2、相对路径:相对于目前路径的文件夹名写法。如:./home./robust、../、../home/robust等,反正开头不是(/),就属于相对路径写法
相对路径中:
- . :代表當前的目錄,也可以使用 ./ 來表示;
- .. :代表上一層目錄,也可以 ../ 來代表。
重点回顾:
- Linux的每個檔案中,可分別給予擁有者、群組與其他人三種身份個別的 rwx 權限;
- 群組最有用的功能之一,就是當你在團隊開發資源的時候,且每個帳號都可以有多個群組的支援;
- 利用ls -l顯示的檔案屬性中,第一個欄位是檔案的權限,共有十個位元,第一個位元是檔案類型, 接下來三個為一組共三組,為擁有者、群組、其他人的權限,權限有r,w,x三種;
- 如果檔名之前多一個『 . 』,則代表這個檔案為『隱藏檔』;
- 若需要root的權限時,可以使用 su - 這個指令來切換身份。處理完畢則使用 exit 離開 su 的指令環境。
- 更改檔案的群組支援可用chgrp,修改檔案的擁有者可用chown,修改檔案的權限可用chmod
- chmod修改權限的方法有兩種,分別是符號法與數字法,數字法中r,w,x分數為4,2,1;
- 對檔案來講,權限的效能為:
- r:可讀取此一檔案的實際內容,如讀取文字檔的文字內容等;
- w:可以編輯、新增或者是修改該檔案的內容(但不含刪除該檔案);
- x:該檔案具有可以被系統執行的權限。
- 對目錄來說,權限的效能為:
- r (read contents in directory)
- w (modify contents of directory)
- x (access directory)
- 要開放目錄給任何人瀏覽時,應該至少也要給予r及x的權限,但w權限不可隨便給;
- 能否讀取到某個檔案內容,跟該檔案所在的目錄權限也有關係 (目錄至少需要有 x 的權限)。
- Linux檔名的限制為:單一檔案或目錄的最大容許檔名為 255 個英文字元或 128 個中文字元;
- 根據FHS的官方文件指出, 他們的主要目的是希望讓使用者可以瞭解到已安裝軟體通常放置於那個目錄下
- FHS訂定出來的四種目錄特色為:shareable, unshareable, static, variable等四類;
- FHS所定義的三層主目錄為:/, /var, /usr三層而已;
- 絕對路徑檔名為從根目錄 / 開始寫起,否則都是相對路徑的檔名。