Linux常用基本命令(chmod)

来源:https://www.cnblogs.com/ghostwu/archive/2018/05/09/9017215.html
-Advertisement-
Play Games

chmod命令用來改變文件或者目錄的許可權,只有文件的屬主和超級用戶才能夠執行這個命令 格式: chmod [option] [mode] [file] >常用參數選項 -R : 遞歸修改目錄以及子目錄下麵的所有文件許可權 >模式有兩種格式,一種採用字母方式的表達式,另外一種是數字 1,首先需要瞭解文件 ...


chmod命令用來改變文件或者目錄的許可權,只有文件的屬主和超級用戶才能夠執行這個命令

格式:

chmod [option] [mode] [file]

>常用參數選項 -R : 遞歸修改目錄以及子目錄下麵的所有文件許可權

>模式有兩種格式,一種採用字母方式的表達式,另外一種是數字

1,首先需要瞭解文件的許可權和屬主和屬組。

ghostwu@dev:~/linux/chown$ ls -l
total 4
-rw-rw-r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

-rw-rw-r-- 這個就是文件的許可權, 除去第一位, 一共有9位組成

 第一位表示文件類型,- 表示這個是一個常規文件

後面9位,每3位一組.  第一個3位rw-表示屬主許可權, 第二個3位rw-表示屬組許可權,第三個3位r--表示其他用戶許可權,

後面有2個ghostwu,  第一個ghostwu, 表示屬主, 也就是這個test.txt文件的擁有者是ghostwu

第二個ghostwu,表示屬組,也就是這個test.txt文件可以被ghostwu這個組的用戶 rw-( 可讀,可寫)

2,修改文件許可權

>增加許可權( + )

ghostwu@dev:~/linux/chown$ chmod a+x test.txt 
ghostwu@dev:~/linux/chown$ ls
test.txt
ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxrwxr-x 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

a等價於 用戶(u)+組(g)+其他組( o )。 a+x 就是給用戶,組,其他組都加上x(可執行)許可權

>去掉許可權( - )

ghostwu@dev:~/linux/chown$ chmod a-x test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-rw-rw-r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

>設置許可權( = )

ghostwu@dev:~/linux/chown$ chmod a=r-- test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-r--r--r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

>給屬主加上w( 可寫 ), x( 可執行 ) 許可權

ghostwu@dev:~/linux/chown$ chmod u+wx test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxr--r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

>給組加上wx許可權

ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxr--r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ chmod g+wx test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxrwxr-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

>給其他組加上wx許可權

ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxrwxr-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ chmod o+wx test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxrwxrwx 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

>r( 4 ), w( 2 ), x( 1 )

ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxrwxrwx 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ chmod 444 test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-r--r--r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

ghostwu@dev:~/linux/chown$ ls -l
total 4
-r--r--r-- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ chmod 755 test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxr-xr-x 1 ghostwu ghostwu 20 5月   9 22:55 test.txt

 

許可權詳解:

一、普通文件

可讀r: 讀取/閱讀文件內容的許可權

ghostwu@dev:~/linux/chown$ ls -l
total 4
-rwxr-xr-x 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ chmod 000 test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
---------- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ cat test.txt 
cat: test.txt: Permission denied
ghostwu@dev:~/linux/chown$ chmod 400 test.txt 
ghostwu@dev:~/linux/chown$ ls -l
total 4
-r-------- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ cat test.txt 
this is a test file

 可寫(w):具有新增,修改文件內容的許可權

ghostwu@dev:~/linux/chown$ ls -l test.txt 
-r-------- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ echo 'aaa' > test.txt 
bash: test.txt: Permission denied
ghostwu@dev:~/linux/chown$ chmod u+w test.txt 
ghostwu@dev:~/linux/chown$ ls -l test.txt 
-rw------- 1 ghostwu ghostwu 20 5月   9 22:55 test.txt
ghostwu@dev:~/linux/chown$ echo 'ghostwu' >> 'test.txt' 
ghostwu@dev:~/linux/chown$ cat test.txt 
this is a test file
ghostwu

可執行( x )

1,文件本身要用x許可權

ghostwu@dev:~/linux/chown$ ls -l test.txt 
-rw------- 1 ghostwu ghostwu 28 5月   9 23:20 test.txt
ghostwu@dev:~/linux/chown$ ./test.txt
bash: ./test.txt: Permission denied
ghostwu@dev:~/linux/chown$ chmod u+x test.txt 
ghostwu@dev:~/linux/chown$ ls -l test.txt 
-rwx------ 1 ghostwu ghostwu 28 5月   9 23:20 test.txt
ghostwu@dev:~/linux/chown$ ./test.txt 
./test.txt: line 1: this: command not found
./test.txt: line 2: ghostwu: command not found
ghostwu@dev:~/linux/chown$ echo 'ls /' > test.sh
ghostwu@dev:~/linux/chown$ ls -l
total 8
-rw-rw-r-- 1 ghostwu ghostwu  5 5月   9 23:22 test.sh
-rwx------ 1 ghostwu ghostwu 28 5月   9 23:20 test.txt
ghostwu@dev:~/linux/chown$ ./test.sh
bash: ./test.sh: Permission denied
ghostwu@dev:~/linux/chown$ chmod u+x test.sh
ghostwu@dev:~/linux/chown$ ls -l test.sh 
-rwxrw-r-- 1 ghostwu ghostwu 5 5月   9 23:22 test.sh
ghostwu@dev:~/linux/chown$ ./test.sh 
bin    dev   initrd.img  lost+found  opt   run     srv  usr
boot   etc   lib     media         proc  sbin  sys  var
cdrom  home  lib64     mnt         root  snap  tmp  vmlinuz

 普通用戶需要擁有r許可權, 然後x許可權 才能執行

ghostwu@dev:~/linux/chown$ ls -l test.sh
-rwxrw-r-- 1 ghostwu ghostwu 5 5月   9 23:22 test.sh
ghostwu@dev:~/linux/chown$ chmod u-r test.sh 
ghostwu@dev:~/linux/chown$ ls -l test.
ls: cannot access 'test.': No such file or directory
ghostwu@dev:~/linux/chown$ ls -l test.sh 
--wxrw-r-- 1 ghostwu ghostwu 5 5月   9 23:22 test.sh
ghostwu@dev:~/linux/chown$ ./test.sh 
bash: ./test.sh: Permission denied

root用戶不需要r許可權,只要有x許可權就能執行

root@dev:/home/ghostwu/linux/chown# ls -l test.sh 
--wxrw-r-- 1 ghostwu ghostwu 5 5月   9 23:22 test.sh
root@dev:/home/ghostwu/linux/chown# ./test.sh 
bin    dev   initrd.img  lost+found  opt   run     srv  usr
boot   etc   lib     media         proc  sbin  sys  var
cdrom  home  lib64     mnt         root  snap  tmp  vmlinuz
root@dev:/home/ghostwu/linux/chown# chmod a-x test.sh
root@dev:/home/ghostwu/linux/chown# ls -l test.sh 
--w-rw-r-- 1 ghostwu ghostwu 5 5月   9 23:22 test.sh
root@dev:/home/ghostwu/linux/chown# ./test.sh
-su: ./test.sh: Permission denied
root@dev:/home/ghostwu/linux/chown# chmod o+x test.sh
root@dev:/home/ghostwu/linux/chown# ls -l test.sh 
--w-rw-r-x 1 ghostwu ghostwu 5 5月   9 23:22 test.sh
root@dev:/home/ghostwu/linux/chown# ./test.sh
bin    dev   initrd.img  lost+found  opt   run     srv  usr
boot   etc   lib     media         proc  sbin  sys  var
cdrom  home  lib64     mnt         root  snap  tmp  vmlinuz

 

二、目錄許可權

可讀r: 具有瀏覽目錄下麵文件及其子目錄的許可權,即:ls 目錄

ghostwu@dev:~/linux$ ls -l
total 12
drwxrwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ ls chown
test.sh  test.txt
ghostwu@dev:~/linux$ chmod u-r chown
ghostwu@dev:~/linux$ ls -l chown
ls: cannot open directory 'chown': Permission denied
ghostwu@dev:~/linux$ ls -l
total 12
d-wxrwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown

沒有x許可權,不能cd切換到目錄

ghostwu@dev:~/linux$ ls -l
total 12
d-wxrwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ cd chown
ghostwu@dev:~/linux/chown$ ls
ls: cannot open directory '.': Permission denied
ghostwu@dev:~/linux/chown$ cd ..
ghostwu@dev:~/linux$ ls -l
total 12
d-wxrwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ chmod u-x chown
ghostwu@dev:~/linux$ ls -l
total 12
d-w-rwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ cd chown
-su: cd: chown: Permission denied

w: 具有增加,刪除或者修改目錄內文件名的許可權,需要x許可權配合

ghostwu@dev:~/linux$ ls -l
total 12
d-w-rwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ cd chown
-su: cd: chown: Permission denied
ghostwu@dev:~/linux$ chmod u+x chown
ghostwu@dev:~/linux$ ls -l
total 12
d-wxrwxr-x 2 ghostwu ghostwu 4096 5月   9 23:22 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ cd chown
ghostwu@dev:~/linux/chown$ ls -l
ls: cannot open directory '.': Permission denied
ghostwu@dev:~/linux/chown$ touch a.txt
ghostwu@dev:~/linux/chown$ ls -l .
ls: cannot open directory '.': Permission denied
ghostwu@dev:~/linux/chown$ ls -l a.txt
-rw-rw-r-- 1 ghostwu ghostwu 0 5月   9 23:34 a.txt

如果父目錄沒有w許可權,是不能刪除目錄下麵的文件的

ghostwu@dev:~/linux/chown$ ls -l a.txt
-rw-rw-r-- 1 ghostwu ghostwu 0 5月   9 23:34 a.txt
ghostwu@dev:~/linux/chown$ rm -f a.txt
ghostwu@dev:~/linux/chown$ ls -l a.txt
ls: cannot access 'a.txt': No such file or directory
ghostwu@dev:~/linux/chown$ touch a.txt
ghostwu@dev:~/linux/chown$ cd ..
ghostwu@dev:~/linux$ ls -l
total 12
d-wxrwxr-x 2 ghostwu ghostwu 4096 5月   9 23:35 chown
drwxr-xrwx 6 root    root    4096 5月   7 22:38 cp
drwxrwxr-x 3 ghostwu ghostwu 4096 5月   8 23:01 rename
ghostwu@dev:~/linux$ chmod u-w chown
ghostwu@dev:~/linux$ ls -l chown/a.txt
-rw-rw-r-- 1 ghostwu ghostwu 0 5月   9 23:35 chown/a.txt
ghostwu@dev:~/linux$ rm -f chown/a.txt
rm: cannot remove 'chown/a.txt': Permission denied

x: 具有進入目錄的許可權:如cd dir

>沒有r無法列表

>沒有w無法新建文件

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引言 程式員或者伺服器運維人員在日常工作中,經常會遇到很多台伺服器需要管理的情況,如果伺服器多了,一般的做法都是通過一個ssh客戶端工具來管理,例如:securityCRT、Xshell、putty等遠程工具,這類工具有兩個特點:1.可以將伺服器存儲成一個列表,配置一次伺服器信息之後,下次直接雙擊就 ...
  • 問題重述: 當我們使用天河機進行並行程式實驗的時候,都會使用到yhrun/srun命令。在超算環境下,yhrun 命令用來進行提交互動式作業,有屏幕輸出。但是容易受到網路波動影響導致斷網或者關閉視窗最終導致作業中斷。 思考: 為了,能夠更好地使用yhrun/srun 命令來進行提交作業。我們首先要保 ...
  • Linux系統初學第一課 虛擬機安裝CentOS6.5以及Root密碼找回 虛擬機安裝CentOS6.5 一.安裝虛擬機 1-1.安裝虛擬機VMware Station,新建虛擬機,選擇典型配置。 1-2.選擇稍後安裝操作系統。 1-3.客戶機操作系統選擇linux,版本選擇CentOS 6.5 6 ...
  • Kali自帶Wireshark,但一般的Linux系統是不帶的,需要自行下載,並且過程略複雜 而純字元界面的Linux系統無法使用Wireshark 但是,所有Linux系統都會安裝TCPDUMP:一種基於命令行的抓包工具 註意事項:預設只抓68位元組,能夠獲得基本信息,但無法做到完整分析 1:開始抓 ...
  • 1 /* 2 CHECKER4.C -- Mouse Hit-Test Demo Program No.4 3 (c) Charles Petzold, 1998 4 */ 5 6 #include <Windows.h> 7 8 #define DIVISIONS 5 9 10 LRESULT C ...
  • 安裝JDK 1. 更新apt-get: $ sudo apt-get update 2. 安裝jdk: $ sudo apt-get install openjdk-8-jdk 部分eclipse現只支持jdk8,且安裝jdk9會有error,詳見: https://askubuntu.com/qu ...
  • 1. 什麼是PXE PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支持工作站通過網路從遠端伺服器下載映像,並由此支持通過網路啟動操作系統,在啟動過程中,終端要求伺服器分配IP地址,再 ...
  • 文章鏈接:https://blog.csdn.net/qq_38646470/article/details/80159630 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...