昨日推薦:天天學一個 Linux 命令(16):mkdirapp
chmod 命令用來變動文件或目錄的權限。socket
文件或目錄權限有讀取、寫入、執行這3種,另外還有3種特殊權限。用戶可使用chmod去設置文件與目錄的權限,設置方式採用文字或數字皆可。連接文件的權限沒法直接變動,若是用戶須要對連接文件修改權限,其真實做用是做用在原始文件上。ui
chmod [選項] [權限] [文件或目錄] chmod [OPTION] [MODE] FILE chmod [OPTION] [MODE] DIRECETORY
u #用戶user,文件或目錄的全部者。 g #用戶組group,文件或目錄所屬組 o #其它用戶others a #全部用戶all,系統默認 + #添加權限 - #取消權限 = #配置文件的權限爲指定的權限 r #可讀權限 w #可寫權限 x #可執行權限 - #沒有權限 x #設置可執行權限 s #設置suid和sgid,可使用「u+s」,「g+s」的方式來設置 t #只有目錄或文件的全部者才能夠刪除目錄下的文件 -c #效果相似「-v」參數 -f #操做過程當中不顯示任何錯誤信息; -R #遞歸處理,將指定目錄下的全部文件及子目錄一併處理; -v或——verbose #顯示命令運行時的詳細執行過程; --reference=<參考文件或目錄> #把指定文件或目錄的所屬組權限設成參考文件或目錄的所屬組同樣; <權限範圍>+<權限設置> #開啓權限範圍的文件或目錄的該選項權限設置; <權限範圍>-<權限設置> #關閉權限範圍的文件或目錄的該選項權限設置; <權限範圍>=<權限設置> #指定權限範圍的文件或目錄的該選項權限設置; --help #顯示幫助信息 --version #顯示版本信息
-rw-r--r-- 1 mingongge mingongge 651 Oct 12 12:53 test.txt # ↑╰┬╯╰┬╯╰┬╯ # ┆ ┆ ┆ ╰┈ 0 其餘人 # ┆ ┆ ╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ g 屬組 # ┆ ╰┈┈┈┈ u 屬組 # ╰┈┈ 第一個字母是文件類型 #d表明的是目錄(directroy) #-表明的是文件(regular file) #s表明的是套字文件(socket) #p表明的管道文件(pipe)或命名管道文件(named pipe) #l表明的是符號連接文件(symbolic link) #b表明的是該文件是面向塊的設備文件(block-oriented device file) #c表明的是該文件是面向字符的設備文件(charcter-oriented device file) r=讀取屬性 =4 w=寫入屬性 =2 x=執行屬性 =1
Linux系統除了正常的讀寫操做權限外,還有Linux特殊權限。包括SET位權限(suid,sgid)和粘滯位權限(sticky)。spa
chmod u+s filename #設置suid位 chmod u-s filename #去掉suid設置 chmod g+s filename #設置sgid位 chmod g-s filename #去掉sgid設置 chmod +t filename #設置粘滯位權限 chmod -t filename #去掉粘滯位權限
若是一個文件被設置了suid或sgid,在其全部者或所屬組權限的可執行位上有明顯的標記,若是文件設置了suid且也設置了x(執行)權限,則在其執行權限位上會顯示一個字母s(小寫)。可是,若是沒有設置x權限,則顯示爲字母S(大寫)。以下:3d
-rwsr-xr-x #設置了suid,且文件全部者也配置了可執行權限 -rwSr--r-- #設置了suid,但文件全部者沒有配置可執行權限 -rwxr-sr-x #設置了guid,且所屬組也配置了可執行權限 -rw-r-Sr-- #設置了guid,但所屬組沒有配置可執行權限
一個文件或目錄若是被設置了粘滯位權限,會在其餘人權限的可執行位上有標記。若是文件設置了sticky還設置了x(執行)位,其餘人權限的可執行位顯示一個字母t(小寫)。可是,若是沒有設置x位,則顯示一個字母T(大寫)。以下:code
-rwsr-xr-t #表示設置了粘滯位且其餘人用戶也配置了可執行權限 -rwSr--r-T #表示設置了粘滯位但其餘人用戶沒有配置可執行權限
$ chmod u+x file #給file的屬主增長執行權限 $ chmod 751 mingongge #給mingongge的屬主分配讀、寫、執行權限 $ chmod u=rwx,g=rx,o=x mingongge #給mingongge屬主分配讀寫執行權限,屬組分配讀執行權限,其它人分配執行權限 $ chmod =r mingongge $ chmod 444 mingongge #爲mingongge的全部者、所屬組、其餘人分配讀權限 $ chmod -R u+r mingongge #遞歸地給mingongge錄下全部文件和子目錄的屬主分配讀的權限 $ chmod 4755 mingongge #設置用戶ID,給屬主分配讀、寫和執行權限,給所屬組和其餘用戶分配讀、執行的權限。