1. 程式人生 > >linux 許可權的設定與檢視 chmod 與 ls -l 等相關命令

linux 許可權的設定與檢視 chmod 與 ls -l 等相關命令

本文為轉載文章 出處:http://blog.csdn.net/sinchb/article/details/11746427

本文著重介紹與Linux檔案許可權相關等問題,比如使用者與使用者組,檔案許可權,檔案預設許可權和檔案特殊許可權等。

        Linux 為什麼需要那麼多的許可權限制呢?其實這些都是為了“安全起見”啊!如果你的Linux系統裡存了你給心上人寫的情書,或者是某亞洲島國的動作大片,你總不希望誰都可以翻翻看吧?!好了,廢話少收,讓我們一起來看看Linux檔案許可權到底是什麼東東!

1.檔案所有者

        對於檔案來說,訪問該檔案的賬號的身份有三類:檔案所有者(owner),檔案所屬的使用者組(group),以及使用者組外的其他人(others)。由於本文著重介紹檔案許可權,這些概念簡單介紹,不做全面闡述。

.1檔案所有者(owner)

        這個就不用解釋了吧?不過還是有些注意點,檔案剛剛建立的時候,檔案所有者是建立檔案的使用者,但是檔案所有者是可以通過chown來改變的!這個後面會介紹到。

2使用者組(group)

        檔案所在使用者組,使用者組的概念請自行百度之!使用者組和使用者的關係好比家庭裡你家人和你的關係。注意,檔案所有者的賬號可能不屬於該使用者組。

.3其他人(others)

        除了使用者組和檔案所有者的之外的其他訪問者統稱為others,也就是你家庭以外的人!

        除了這三種賬號以外,還有就是那個超級賬號root,這是個無所不能的賬號!你可以暫時把他當做你家所在村的村長,管著這個村的各個家庭(group),

2.Linux檔案許可權的概念

.1Linux檔案許可權概念

        Linux系統內檔案的三種身份(擁有者、群組與其他人),知道每種身份都有三種許可權(rwx)、
           有上面介紹我們可以知道一個檔案的訪問者有三種身份:owner(user),group,others。而檔案許可權也有三種,即:可讀,可寫,可執行許可權。簡寫為   r,w,x,分別是read,write,execute的縮寫。那麼排列組合一下,一個檔案就會有多大9種的許可權(實際上更多!後面會介紹!):owner的許可權r,w,x,group的許可權rwx,以及others的許可權rwx。這些許可權分別限制了這三種使用者是否對該檔案擁有可讀和(或)可寫和(或)可執行的許可權。

2.2 檢視Linux檔案的許可權

  1. [[email protected] linux]# touch test  -->建立一個空檔案!  
  2. [[email protected] linux]# ls -al    -->顯示檔案屬性!  
  3. 總用量 8  
  4. drwxr-xr-x.  2 root root 4096 12月 11 22:36 .  
  5. dr-xr-x---. 37 root root 4096 12月 11 22:32 ..  
  6. -rw-r--r--.  1 root root    0 12月 11 22:36 test  

簡短標註:

-rw-r--r--.                    1            root        root             0               12月 11 22:36       test

檔案型別和許可權     i-node連線數    所有者    所屬使用者組    檔案大小     檔案ctime或者mtime      檔名

我們可以看到檔案有非常多的屬性(其實還有很多!)這裡著重介紹第一列,因為他們表示了該檔案的檔案許可權!

我們將第一列表示檔案型別和許可權的十個字元抽出來單獨分析,可以分為三組:

 -                       rw-                           r--                         r--

第一組                           第二組                                           第三組                                 第四組

第一組一個字元,表示檔案的型別,[-]代表是一般檔案,[d]代表是目錄,[l]代表連結檔案。

第二組3個字元,表示檔案所有者的許可權。這3個字元從左到右分別表示該身份對檔案許可權   是否可讀? 是否可寫?是否可執行? 出現rwx相應的字母就表示有相應的許可權,出現   -   則表示沒有相應的許可權。例如,test檔案所有者的許可權是rw-,表示該檔案所有者對檔案具有可讀可寫許可權,但是不具有可執行許可權。

第三組3個字元表示所屬使用者組的許可權,格式同上。test檔案只具有可讀許可權。

第四組3個字元表示others的許可權,格式同上。test檔案只具有可讀許可權

3.改變檔案許可權和屬性的方法

3.1.改變檔案屬性的方法

chown   [-R]    dir/file      改變檔案的所有者,加上-R則連同子目錄下的所有檔案和目錄都更新

例:將test檔案的檔案所有者從root,改為Cherish

  1. [[email protected] linux]# ll test   
  2. -rw-r--r--. 1 root root 0 12月 11 22:36 test  
  3. [[email protected] linux]# chown Cherish test   
  4. [[email protected] linux]# ll test   
  5. -rw-r--r--. 1 Cherish root 0 12月 11 22:36 test  

chgrp [-R]    dir/file  改變檔案所屬使用者組,加上-R則連同子目錄下的所有檔案和目錄都更新

例:將test檔案的使用者組從root ,改為Cherish

  1. [[email protected] linux]# ll test  
  2. -rw-r--r--. 1 Cherish root 0 12月 11 22:36 test  
  3. [[email protected] linux]# chgrp Cherish test   
  4. [[email protected] linux]# ll test  
  5. -rw-r--r--. 1 Cherish Cherish 0 12月 11 22:36 test  

3.2.改變檔案許可權(chmod)

(1)數字型別許可權

使用數字來代表各個許可權,以便將三種許可權(r,w,x)量化為數字,對照表如下

r -> 4

w->2

x->1

每種身份(owner,group,others)的許可權的數字表示是他擁有的許可權所對應的數字的和。比如,檔案test的檔案擁有者Cherish對該檔案的許可權為  rw-即,可讀可寫,則量化為數字為:4(r) + 2(w) = 6,按照這種演算法,檔案test的許可權如下:

owner = rw- = 4 + 2 = 6

group = r-- = 4 + 0 + 0 = 4

others = r-- = 4 + 0 + 0 = 4

這樣的話,我們就可以用一個三位數來表示一個檔案的許可權啦!例如,test檔案的許可權是644!這樣我們就可以方便的利用數字來設定一個檔案的許可權了。

例如,我們如果想將檔案test分享給所有人,那麼我們可以將該檔案的許可權設定為   rwxrwxrwx,計算數字許可權得  777,那麼我們可以這樣做:

chomd [-R]  abc dir/file  abc就代表那個三位的數字許可權啦!

  1. [[email protected] linux]# chomd [-R] abc dir/file  
  2. [[email protected] linux]# ll test   
  3. -rw-r--r--. 1 Cherish Cherish 0 12月 11 22:36 test  
  4. [[email protected] linux]# chmod 777 test  
  5. [[email protected] linux]# ll test  
  6. -rwxrwxrwx. 1 Cherish Cherish 0 12月 11 22:36 test  
我們發現執行命令chmod 777 test後,檔案test的許可權真的變成了   rwxrwxrwx ,是不是很方便呢!

(2)符號型別許可權

    數字許可權雖然簡潔,但是卻不直觀。Linux給我們提供了另外一種直觀的符號型別許可權設定方法!

    由前面介紹你可以知道,檔案有owner(也就是user),group,others三種身份,我們分別用 u,g,o來分別代表著三種身份,用a同時代表三種身份,用r,w,x代表三種許可權,用+,-,=三種符號分別代表新增,去除以及設定某種或某些許可權的動作。那麼我們就可以用這幾種字元組合來靈活直觀的設定檔案許可權啦!下面這個圖其實是偷了鳥哥的,希望他老人家不要生氣!

chmod u
g
o
a
+(新增)
-(去除)
=(設定)
r
w
x
dir/file

下面我們就舉幾個例子!

將test檔案的檔案許可權設定為rwxrw-r--

  1. [[email protected] linux]# chmod u=rwx,g=rw,o=r test   
  2. [[email protected] linux]# ll test   
  3. -rwxrw-r--. 1 root root 0 12月 12 09:39 test  

將test檔案的others的 r 許可權去掉!
  1. [[email protected] linux]# chmod o-r test   
  2. [[email protected] linux]# ll test   
  3. -rwxrw----. 1 root root 0 12月 12 09:39 test  

我們看到test的others的r許可權真的消失了!

我們再來將test 檔案的  x 許可權賦予所用身份:

  1. [[email protected] linux]# chmod a+x test   
  2. [[email protected] linux]# ll test   
  3. -rwxrwx--x. 1 root root 0 12月 12 09:39 test  
這個命令在給可執行檔案設定許可權的時候很有用!

另外還有其他靈活的設定方式,如:

  1. [[email protected] linux]# chmod u=--- test  
  2. [[email protected] linux]# ll test  
  3. ----rwx--x. 1 root root 0 12月 12 11:41 test  
  4. [[email protected] linux]# chmod g= test  
  5. [[email protected] linux]# ll test  
  6. ---------x. 1 root root 0 12月 12 11:41 test  

4.檔案的預設許可權和許可權掩碼

4.1檔案的預設許可權

    檔案和目錄建立的時候,都會有一個預設的許可權。

    如果建立的是檔案, 那麼預設許可權為   rw-rw-rw

    如果建立的是目錄,則預設許可權為 rwxrwxrwx

    我們可以建立一個檔案看看:

  1. [[email protected] linux]# touch  test1  
  2. [[email protected] linux]# ll test1  
  3. -rw-r--r--. 1 root root 0 12月 12 10:09 test1  
  4. [[email protected] linux]# mkdir testdir  
  5. [[email protected] linux]# ll -d testdir  
  6. drwxr-xr-x. 2 root root 4096 12月 12 10:09 testdir  
    什麼?為啥跟預設許可權對不上號呢?你忽悠我呢?彆著急,這裡還有一個umask的問題!我們知道要得到一個ip地址所在的網段,必須要將ip和子網掩碼(netmask)相與才可以得到。這裡類似ip的子網掩碼,檔案預設許可權也有一個許可權掩碼(unmask),預設許可權只有經過unmask的處理後,才能得到真正的預設許可權,讓我們來看看這個unmask吧!

4.2檔案許可權掩碼(unmask)

  1. [[email protected] linux]# umask -->掩碼的數字表示,我們只關注後三位數,第一位數後面會講到!  
  2. 0022  
  3. [[email protected] linux]# umask -S  -->掩碼的字元表示(<span style="font-family:新細明體, 'Times New Roman', serif;font-size: 15px;">Symbolic</span>)  
  4. u=rwx,g=rx,o=rx  

注意,umask 並沒有給出真正的預設許可權,檔案預設許可權要經過umaks的處理才行!umask的意義就是遮蔽掉預設許可權中的某些許可權。

4.2.1數字形態的掩碼

數字形態的掩碼告訴我們要去掉的許可權。比如上面的022(暫時只關注後三位數)代表檔案預設許可權需要拿掉group和others的w許可權(因為w許可權的數字表示是2!):

檔案:預設許可權(rw-rw-rw)       -      許可權掩碼(----w--w-)                =   真正的預設許可權(rw-r--r--)

明白了嗎?目錄的處理方式也一樣,請讀者自行計算。這裡我們也可以採用類似二進位制相或的處理方式  (rw-rw-rw) || (----w--w-) = (110110110) || (000010010) = 110100100 = rw-r--r--

4.2.2字元形態的掩碼

    看了數字形態的掩碼後,讀者是不是可以猜到字元形態的掩碼的意義?字元型態的掩碼意義,其實就是預設許可權應該保留的許可權,有點暈?沒關係,我們舉個例子就明白了。比如字元掩碼中owner(user)的許可權是u=rwx,這代表預設許可權中的user如果有r許可權,則保留;如果沒有則不保留。檔案的user的預設許可權為  rw-,那麼根據掩碼,保留rw,由於沒有x許可權,則不保留。那麼檔案的user的最終預設許可權為rw-,明白了嗎?若果還是不明白,那就來個二進位制相與吧!

檔案:rw-rw-rw)  && (rwxr-x-r-x) = 110110110 && 111101101= 110100100 = rw-r--r--

這下明白了吧!

4.2.3.修改umask

    很簡單umask後面直接接上修改後的值就可以了,這個值可以是數字形態的,也可以是字元形態的!

  1. [[email protected] linux]# umask 077  
  2. [[email protected] linux]# umask   
  3. 0077  
  4. [[email protected] linux]# umask u=rwx,g=rwx,o=rwx  
  5. [[email protected] linux]# umask   
  6. 0000  
  7. [[email protected] linux]# umask -S  
  8. u=rwx,g=rwx,o=rwx  

最後還有個有趣的現象,留給讀者自己思考!

  1. [[email protected] linux]# chmod +x test  
  2. [[email protected] linux]# ll test  
  3. -rwxr-xr-x. 1 root root 0 12月 12 11:46 test  
  4. [[email protected] linux]# chmod +w test  
  5. [[email protected] linux]# ll test  
  6. -rwxr-xr-x. 1 root root 0 12月 12 11:46 test  
  7. [[email protected] linux]# chmod a+w test  
  8. [[email protected] linux]# ll test  
  9. -rwxrwxrwx. 1 root root 0 12月 12 11:46 test  

5.檔案許可權的意義

        說了那麼多檔案許可權相關的問題,那麼,到底這些許可權代表了什麼意義呢?下面我們來分析下。

5.1檔案許可權對檔案的意義

        這個不用太多解釋你也明白,可讀,可寫,可執行。也就不羅嗦了。

5.2檔案許可權對目錄的意義

        這個非常重要!一定要仔細理解!那到底r w x 對目錄有什麼意義呢?         r:對於目錄來說,具有r許可權的身份可以利用ls檢視該目錄下的檔名列表,不能檢視檔案的詳細資訊         w:具有w許可權的身份可以更改目錄的內部結構,也就是說,你可以刪除、新增、移動、重新命名檔案等         x:具有x許可權的身份可以利用cd進入該目錄作為自己的工作目錄,在這個目錄中,你可以訪問、修改你有許可權的檔案,前提是你知道這個檔案的檔名。         明白了吧?!下面我們用一些例子來說明。我用root賬號新建四個檔案,分別給others身份r,rx,w,wx許可權。然後用cherish賬號登陸,來看看我們用cherish這個身份都能對這些檔案進行哪些操作!
  1. [[email protected] ~]$ ll -d /tmp/tesdir_*  
  2. dr--r--r--. 3 root root 4096 12月 12 14:05 /tmp/tesdir_r       #只給others r許可權  
  3. dr-xr-xr-x. 3 root root 4096 12月 12 14:05 /tmp/tesdir_rx      #給rx許可權  
  4. d-w-----w-. 3 root root 4096 12月 12 14:05 /tmp/tesdir_w       #給w許可權  
  5. d-wx--x-wx. 3 root root 4096 12月 12 14:10 /tmp/tesdir_wx      #給wx許可權  
  6. [[email protected] ~]$ ll /tmp/tesdir_r       -->只能檢視檔名,詳細資訊不能看哦!  
  7. ls: 無法訪問/tmp/tesdir_r/testfile: 許可權不夠  
  8. 總用量 0  
  9. d????????? ? ? ? ?            ? testfile  
  10. [[email protected] ~]$ ll /tmp/tesdir_rx/    -->終於可以檢視詳細資訊了!當然,你也可以用cd進入這個檔案!  
  11. 總用量 4  
  12. drwxr-xr-x. 2 root root 4096 12月 12 14:05 testfile  
  13. [[email protected] ~]$ mkdir /tmp/tesdir_w/chenbin     -->有w許可權是不夠的,必須同時具有x許可權才可以修改目錄內的結構!記住了!  
  14. mkdir: 無法建立目錄"/tmp/tesdir_w/chenbin": 許可權不夠  
  15. [[email protected] ~]$ mkdir /tmp/tesdir_wx/chenbin    -->可以建立啦!  
  16. [[email protected] ~]$ cd /tmp/tesdir_r  
  17. tesdir_r/  tesdir_rx/   
  18. [[email protected] ~]$ cd /tmp/tesdir_r  
  19. -bash: cd: /tmp/tesdir_r: 許可權不夠  

        一開始接觸這些東西的確讓人很感覺很坑爹!但是多多練習多多揣摩後悔發現,Linux真的很強大!學會了這些,你就不用像在windows下面一樣,想隱藏某些檔案的時候,還要用拙劣的“隱藏檔案”,或者大動干戈的下個神馬檔案加密軟體。在Linux下面只要一兩條命令就搞定了,是不是很強大呢?!

相關推薦

linux 許可權設定檢視 chmod ls -l 相關命令

本文為轉載文章 出處:http://blog.csdn.net/sinchb/article/details/11746427 本文著重介紹與Linux檔案許可權相關等問題,比如使用者與使用者組,檔案許可權,檔案預設許可權和檔案特殊許可權等。         Linux

Linux - 常用日誌文字檢視工具應用技巧

主要參考 Linux more命令 | 菜鳥教程 Linux less命令 | 菜鳥教程 主要介紹Linux終端中head、tail、cat、more和less工具用於檢視日誌文字時的基礎功能與特性區別。 head使用說明 head用於將檔案或標準輸入的頭部(預設前10行)輸出到

linux-許可權設定

為什麼需要許可權管理 計算機資源有限,我們需要合理的分配計算機資源。 Linux是一個多使用者系統,對於每一個使用者來說,個人隱私的保護是十分重要的。由於Linux的一切皆檔案的基本思想,對於許可權的管理更多的則體現在管理檔案許可權上。為了方便的指派許可權,在Linux中定義了檔案

Linux許可權設定方法

1、舉例說明 修改某個目錄下的所有檔案的許可權,包括子目錄中的檔案,例子如下: chmod 777 /home/user 注:僅把/home/user目錄的許可權設定為rwxrwxrwx chmod -R 777 /home/user 注:表示將整個/home/user

Linux許可權詳解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

許可權簡介Linux系統上對檔案的許可權有著嚴格的控制,用於如果相對某個檔案執行某種操作,必須具有對應的許可權方可執行成功。Linux下檔案的許可權型別一般包括讀,寫,執行。對應字母為 r、w、x。Linux下許可權的粒度有 擁有者 、群組 、其它組 三種。每個檔案都可以針對

linux -許可權不夠時,考慮是否用了sudo這個命令

安裝Python-Markdown時,出現提示錯誤:無法在/usr/local/lib/Python2.7/下面建立markdown 資料夾。提示說這個要求被拒絕了。自己手動建立也無法解決這個問題。後來用sudo mkdir markdown 即解決了問題。 建立好資料夾

linux系統中的11選5源碼搭建相關命令

AR 指定路徑 and 需要 目的 The 相關 打包 基本操作 linux目錄結構(1)返回上級目錄:cd .. 進入你的home目錄:cd ~ 使用pwd獲取當前路徑:pwd (2)linux文件中11選5源碼搭建基本操作:企 娥:217 1793 408①新建空

linux安裝mysql以及修改密碼和重啟mysql相關命令 Linux啟動/停止/重啟Mysql資料庫的方法

Linux/UNIX 上安裝 MySQL Linux平臺上推薦使用RPM包來安裝Mysql,MySQL AB提供了以下RPM包的下載地址: MySQL - MySQL伺服器。你需要該選項,除非你只想連線執行在另一臺機器上的MySQL伺服器。 MySQL-client - MySQL 客戶端程式,

linux 用vi命令的使用以及vi編輯後的後續儲存退出相關命令的使用

作業系統:centos6.5 使用軟體:Xshell5 一、首先用vi命令打卡要編輯的檔案: 注意:vi命令的使用如下 開啟或新建檔案,並將游標至於第一行首:[[email protected] /]# vi /etc/my.cnf 開啟檔案,並將游標移至最

linux下目錄許可權檢視修改以及檔案和目錄訪問許可權設定

檢視檔案許可權的語句:   在終端輸入: ls -l xxx.xxx (xxx.xxx是檔名)   那麼就會出現相類似的資訊,主要都是這些: -rw-rw-r--   一共有10位數   其中: 最前面那個 - 代表的是型別   中間那三個 rw- 代表的是所有者(user

第十三章 Linux 賬號管理 ACL 許可權設定

Linux 的賬號與群組 Linux 是如何辨別每一個使用者的呢? 使用者識別碼 UID 和 GID 每一個檔案都具有【擁有人與擁有群組】的屬性,每個登入的使用者都至少會擁有兩個 ID ,一個是使用者 ID (User ID) 和一個群組 ID (Group ID)。 使用者

shell命令以及執行原理、檢視或修改掩碼(umask)、Linux許可權管理、Linux設定檔案訪問許可權chmod)、粘滯位、修改檔案的擁有者(chown)、修改檔案的所屬組(chgrp)

shell命令以及執行原理:   Linux嚴格意義上說的是一個作業系統,我們稱之為”核心”,但是我們普通使用者,不能直接使用核心,而是通過核心的”外殼”程式,也就是所謂的shell,來與核心溝通。   Linux中的命令大多數都是可執行程式。但其實捕捉我們

Linux 賬號管理 ACL 許可權設定

Linux 的賬號與群組 每個登入Linux的使用者至少都會取得兩個 ID ,一個是使用者 ID (User ID ,簡稱 UID),一個是群組 ID (Group ID ,簡稱 GID)。 使用者賬號 Linux 系統上面的使用者登入主機以取得 shell 的

Linux許可權控制之chmodchown命令

chmod 用於配置檔案/目錄許可權 命名格式:chmod [選項] 檔案/目錄名 . 許可權類別: r 讀取 可用數字4表示 w 寫入 可用數字2表示 x 執行 可用數字1表示 . 歸屬類別: u 屬主 g 屬組 o 其它 a 所有人 . 操作符: + 給指定類別新增指定許可權(例如+x或a+x表

Linux的帳號管理ACL許可權設定

使用者在終端介面通過login介面,輸入帳號密碼後,linux系統做了什麼? 先找尋 /etc/passwd 裡面是否有你輸入的賬號?如果沒有則跳出,如果有的話則將該賬號對應的 UID 與GID (在 /etc/group 中) 讀出來,另外,該賬號的家目錄

linux下core檔案設定檢視

程式異常退出時,核心會生成一個core檔案(是記憶體映像以及除錯資訊)。可以通過使用gdb來檢視core檔案,指示出導致程式出錯的程式碼所在的檔案和行數。  1、檢視系統中core檔案生成的開關是否開啟     1)使用ulimit -c命令可檢視core檔案的生成開

20.Linux 賬號管理 ACL 許可權設定

Linux 登入大致過程: 1. 先尋找 /etc/passwd 裡面是否有你輸入的賬號,如果沒有跳出;如果有的話將該賬號對應的UID 和 GID(在 /etc/group 中)讀出來,另外,該賬號的主資料夾與 shell 設定也一併讀出。

Linux 學習“Linux賬號管理ACL許可權設定

每個登入的使用者會獲得至少兩個ID,一個是UID,一個是GID;linux登入步驟,先找尋在/etc/passwd中是否有你的賬號,沒有跳出,有就去/etc/group中將賬號對應的UID與GID讀出,另外將該張海的主資料夾與shell設定一併讀出,接下來核對密碼錶進入/etc/shadow;linux中ro

設定檢視Linux系統中的環境變數

大家好,我是良許。 大家都知道,在 Linux 系統中,有**環境變數**和 **Shell 變數**這兩種變數。 環境變數是在程式及其子程式中全域性可用的,常常用來儲存像預設的文字編輯器或者瀏覽器,以及可執行檔案的路徑等等這樣的資訊。而 Shell 變數僅在當前 Shell 中可用,可以用來儲存當前使用

linuxchmodchown兩個命令詳解

In 第一個 ID 利用 root chown 資料 後綴 沒有 在linux系統中chmod,chown命令都可以來設置權限了,但它們也是有區別的,下文小編為各位介紹chmod與chown兩個命令用法與區別介紹。 今天要分享的2個命令也是我們平時常用的,chmod與cho