1. 程式人生 > 實用技巧 >許可權和指令

許可權和指令

  • 進入目錄需要哪些許可權?在目錄中執行增刪查(cd,touch,ls,rm,mv等)改檔案動作,需要哪些許可權?
  1. 許可權位的含義

  目前Llinux的許可權位有10位(新版本中有些檔案的許可權位最後會有個.,表示該檔案是受SELinux的保護的),每一位都代表著不同的含義

r --read 讀 w --write 寫 x --execute 執行 - --沒許可權

第2-4位:表示檔案所有者(用u表示)的許可權,有字母則由該許可權,-則表示沒有該許可權

第5-7位代表檔案所屬組(用g表示)的許可權,同樣用rwx表示

第8-10位代表其他人(用o表示)的許可權,也用rwx表示

可見,許可權有四種:一種是執行許可權,一種是讀許可權,一種是寫許可權,另一種是無許可權

  1. 進入目錄需要有可執行許可權

初始時刻,file1具有可執行許可權

此時可以,cd進入file1目錄,沒有報錯

  1. 在目錄中執行增刪改查動作需要有執行許可權

總結一下:

目錄的可執行許可權代表了你可否在目錄下執行命令。

如果目錄沒有-x許可權,則無法對目錄執行任何命令,甚至無法cd進入目錄。即使此時目錄仍然有讀寫許可權也無法進入。

而如果目錄具有-x許可權,但沒有讀寫許可權,則使用者仍然可以執行命令,可以cd進入目錄。不過。由於此時目錄沒有讀許可權,所以在該目錄下雖然可以執行ls命令,但無法讀出目錄下的文件。

  • 基本許可權命令
  1. chmod:修改檔案的許可權模式,命令所在路徑為/bin/chmod,所有使用者可執行

格式:chmod 【選項】許可權模式 檔案

選項: -R:遞迴設定許可權,也就是給子目錄中的所有檔案設定許可權

   許可權模式的格式:[ugoa][+ - =][perms],即[使用者身份][賦予方式][許可權]。

   使用者身份:u——所有者(user)

     g——所屬組(group)

     o——其他人(other)

     a——代表全部(all)

   賦予方式: + 加入許可權

     - 減去許可權

     = 設定許可權

eg:chmod u+x file 表示針對file這個檔案給檔案所有者(u)新增執行許可權(x)

chmod g+w,o+w file 同時給多個身份新增相應許可權,中間用逗號隔開

chmod u-x,g-w,o-w file 去除許可權,使用減號

  • 數字許可權

4:同r,讀

2:同w,寫

1:同x,執行

eg:chmod 755 file

  755中的第一位7表示給檔案所有者賦的許可權為4+2+1,即讀寫執行,同理第二位5表示給所屬組賦的許可權為4+1,即讀和執行,最後一位則是給其他人賦予的許可權

數字許可權

使用場景

描述

644

檔案的基本許可權

所有者擁有讀、寫許可權,所屬組和其他只讀

755

檔案的執行許可權和目錄的基本許可權

擁有者讀、寫和執行,所屬組和其他人可讀寫

777

最大許可權

所有人都對該檔案擁有讀寫和執行許可權

  • 修改所有者和所屬組

chown:修改檔案和目錄的所有者和所屬組,命令所在目錄為/bin/chown,所有使用者可執行

   命令格式:chown [選項] 所有者:所屬組 檔案或目錄

選項-R:遞迴設定許可權

注:普通使用者不能修改檔案的所有者,哪怕自己是這個檔案的所有者也不行;普通使用者只可以修改所有者是自己的檔案的許可權(rwx)

新增使用者的時候會建立一個同名的該使用者的初始組,即同時會新增一個名為user1的group

useradd user1

給新加使用者設定密碼:只有root使用者可以在設定密碼時忽略Linux的提示

passwd user1

chgrp:改變檔案或目錄所屬的組

語法:chgrp [選項] group filename

-c或–changes 效果類似”-v”引數,但僅回報更改的部分。

-f或–quiet或–silent  不顯示錯誤資訊。

-h或–no-dereference  只對符號連線的檔案作修改,而不更動其他任何相關檔案。

-R或–recursive  遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。

-v或–verbose  顯示指令執行過程。

–help  線上幫助。

–reference=<參考檔案或目錄>  把指定檔案或目錄的所屬群組全部設成和參考檔案或目錄的所屬群組相同。

–version  顯示版本資訊。

該命令改變指定指定檔案所屬的使用者組。其中group可以是使用者組ID,也可以是/etc/group檔案中使用者組的組名。檔名是以空格分開的要改變屬組的檔案列表,支援萬用字元。如果使用者不是該檔案的屬主或超級使用者,則不能改變該檔案的組。

該命令的各選項含義為:– R 遞迴式地改變指定目錄及其下的所有子目錄和檔案的屬組

eg:chgrp – R book/opt/local /book

改變/opt/local /book/及其子目錄下的所有檔案的屬組為book。

  • 許可權含義的解釋

首先,讀、寫、執行許可權對檔案和目錄的作用是不同的。

許可權對檔案的作用:

  讀(r):對檔案有讀許可權,代表可以讀取檔案中的資料;如果把許可權對應到命令上,那麼一旦對檔案有讀許可權,就可以對檔案執行cat、more、less、head、tail等檔案檢視命令。

  寫(w):對檔案有寫許可權,代表可以修改檔案中的資料。如果把許可權對應到命令上,那麼一旦對檔案有寫許可權,就可以對檔案執行vim、echo等修改檔案資料的命令。

注意:對檔案有寫許可權並不能刪除檔案本身,只能修改檔案中的資料;如果想刪除檔案,則需要對檔案的上級目錄擁有寫許可權。

  執行(x):對檔案有執行許可權,代表檔案可以執行。在Linux中,只要檔案有執行許可權,這個檔案就是執行檔案了。只是這個檔案到底能不能正確執行,不僅需要執行許可權,還要看檔案中的程式碼是不是正確。對檔案來說,執行許可權是最高許可權。

許可權對目錄的作用:

   讀(r):對目錄有讀許可權,代表可以檢視目錄下的內容,也就是可以檢視目錄下有哪些檔案和子目錄。如果把許可權對應到命令上,那麼一旦對目錄有了讀許可權,就可以在目錄下執行ls命令,檢視目錄下的內容。

   寫(w):對目錄有寫許可權,代表可以修改目錄下的資料,也就是可以在目錄中新建、刪除、複製、剪下子檔案或子目錄。對應到命令上,就可以在目錄下執行touch、rm、cp、mv命令。對目錄來說,寫許可權是最高許可權。

   執行(x):目錄是不能執行的,那麼對目錄擁有執行許可權,代表可以進入目錄。對應到命令上就是可以對目錄執行cd命令,進入目錄。

  目錄的可用許可權只有以下3個:

   0:任何許可權都不賦予

    5:基本的目錄瀏覽和進入許可權

   7:完全許可權(讀+寫+進人)

  • umask預設許可權

即新建檔案時賦予檔案的許可權,在/etc/profile中定義。

檢視系統的umask許可權

用八進位制數值顯示umask許可權

說明:上圖表示root使用者新建的檔案對於root使用者有rwx許可權,對於所屬組的其他使用者有rx許可權,對於其他使用者有rx許可權。

根據umask值計算新建檔案或資料夾的初始許可權的演算法如下: