## 查看文件/目錄權限
命令:`ls [-lhda] [filename/dirname]`
功能:列出指定目錄下的所有文件及目錄
權限:所有用戶均可執行
~~~
選項:
-l 長格式顯示,顯示詳細信息
-h 人性化顯示,文件大小會被按大小轉成 KB、MB、GB 等
-a 顯示全部,包括隱藏文件
-d 顯示目錄本身屬性,而并非目錄下的目錄及文件信息
-i 顯示 i-node 節點信息
參數:需要顯示的目錄路徑,默認為當前目錄
~~~
參數:需要顯示的目錄路徑,默認為當前目錄
使用 `ls -la` 命令之后,會看見類似以下結果
~~~
[root@localhost ~]# ls -la
總用量 76
dr-xr-x---. 2 root root 4096 7月 5 11:14 .
dr-xr-xr-x. 25 root root 4096 7月 21 05:48 ..
-rw-------. 1 root root 1272 7月 4 09:15 anaconda-ks.cfg
-rw-------. 1 root root 196 7月 21 09:21 .bash_history
-rw-r--r--. 1 root root 18 5月 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 5月 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 9月 23 2004 .bashrc
-rw-r--r--. 1 root root 100 9月 23 2004 .cshrc
-rw-r--r--. 1 root root 27338 7月 4 09:15 install.log
-rw-r--r--. 1 root root 7572 7月 4 09:14 install.log.syslog
-rw-r--r--. 1 root root 129 12月 4 2004 .tcshrc
[root@localhost ~]#
~~~
可以看出,這個結果一共有 9 列,分別如下:
~~~
-rw-r--r--. 1 root root 7572 7月 4 09:14 install.log.syslog
[ 1 ] [2][ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
~~~
1. 權限控制區,權限控制區一共有 11 位
* 第1 位是表示的是文件的類型
* d 表示是目錄
* \- 表示是文件
* l 表示是鏈接文件(linkfile)
* b 表示設備文件里可供存儲的接口設備
* c 表示設備文件里的串型端口設備
* 第 2-10 位為用戶權限,按順序每隔三位,分別為:所有者、所屬組、其它人的權限,此權限分為“`r`”(讀取)、“`w`”(寫)、“`x`”(執行)
* 第 11 位:當文件或者文件夾只使用了selinux context的屬性會是一個點“.”,只要設置了acl,就是那個setacl設置的,后面將是一個加號“+”
2. 第 2 列表示引用次數,就是有多少個鏈接指向這個文件
3. 第 3 列表示的是文件的所有者
4. 第 4 列表示文件的所屬組
5. 第 5 列表示文件/目錄的大小,默認單位為 `kb`
6. 第 6 列表示文件的創建或最后一次修改時間
7. 第 7 列表示的是文件名,文件名前面有一個小點“.”的,是隱藏文件
>[danger] 如果當前用戶有權限,就有權限字母"r(讀)"、“w(寫)”、“x(執行)”來表示,沒有相應權限,就用小橫杠“-”表示
如果目錄中,該用戶組只有`r`權限的話,那么該用戶組的用戶是無法進入該目錄的
## 修改文件/目錄所屬用戶組
命令:`chgrp [-R] [groupName] [filename/dirname]`
功能:修改文件/目錄的所屬用戶組
權限:超級用戶
~~~
選項:
-R 可選,遞歸修改,也就是說還會將該目錄下所有的子目錄及文件一起改掉
參數:
groupName 新的用戶組名稱
filename/dirname 需要修改的文名或目錄名
~~~
>[danger] 需要注意的是,新的用戶組必須是**已經存在**的,否則是無法修改成功的
如果需要遞歸修改,參數`R`是大寫
## 修改文件/目錄的所有者
命令:`chown [-R] [username] [filename/dirname]`
功能:修改文件/目錄的所有者
權限:超級用戶
~~~
選項:
-R 可選,遞歸修改,也就是說還會將該目錄下所有的子目錄及文件一起改掉
參數:
username 新的用戶名
filename/dirname 需要修改的文名或目錄名
~~~
如果需要所有者及所屬組一起修改,可以用 `chown username:groupname filename` 的方式修改
如 `chown root:root install.log`
>[danger] 需要注意的是,新的用戶名必須是**已經存在**的,否則是無法修改成功的
如果需要遞歸修改,參數`R`是大寫
## 修改文件/目錄權限
>[info]修改權限使用`chmod`命令,但修改方式有兩種,分別可以使用數字或者符號來對權限進行修改
#### 一、數字類型修改文件權限
命令:`chmod [-R] xyz filename/dirname`
選項: -R 遞歸修改,也就是說還會將該目錄下所有的子目錄及文件一起改掉
參數:x 所有者的權限數字表示
y 所屬組的權限數字表示
z 其它人的權限數字表示
Linux 的文件基本權限一共有 9 位,分別是“所有者(owner)”、“所屬組(group)”、“其它人(other)”三部分各占三位,這三位分別是“讀(r)”、“寫(w)”、“執行(x)”三種權限,我們可以用數字來表示各種權限,權限對應如下表
r = 4
w = 2
x = 1
如果擁有多個權限,則可以用數字累加,如果當前權限為 `[-rwxr--r--]`,那么,去掉第一位的文件類型表示,后面的 9 位分別拆開為
`owner=rwx = 4+2+1 = 7`
`gruoup=r-- = 4+0+0 = 4`
`other=r-- = 4+0+0 = 4`
即,上面的權限可以用數字 `744` 表示
如果想將權限設置為 `[-rw-r-x-r--]`,拆開分別是`rw-` 即4+2+0=6、`r-x`即 4+0+1=5、`r--`即 4+0+0=4,所以應該為 654,可以使用命令 `chmod 654 filename`
如果想將權限設置為 `[-rwxrwxrwx]`,那么,可以使用命令 `chmod 777 filename`
#### 二、符號類型修改文件權限
使用符符號修改法,可以使用 +、-、=來設置,加號(+),顧名思義就是給加上權限,而減號(-)就是減去某項權限,而等號(=)就是用來直接設置權限,會覆蓋以前的權限,而權限的分組有三個,即 所有者 `user(u)`、所屬組 `group(g)`和其它人 `other(o)`,分別用 `u`、`g`、`o`來表示相應的權限組,如果要一起設置以上三個所有權限組,可以用 `a` 表示,即`all`
示例:
~~~
[root@localhost test]# ls -lh
-rw-r--r--. 1 root root 0 7月 21 22:06 howie.txt
[root@localhost test]# chmod g+w howie.txt
# 給用戶組加上 寫入的權限
[root@localhost test]# ls -lh
-rw-rw-r--. 1 root root 0 7月 21 22:06 howie.txt
# 這里可以看到,該文件所屬用戶組已經有了 w 的權限
[root@localhost test]# chmod ug-w,o-r howie.txt
# 給所有人及所屬組減去寫(w)的權限,給其它人減去讀(r)的權限
[root@localhost test]# ls -lh
-r--r-----. 1 root root 0 7月 21 22:06 howie.txt
# 此時我們可以看到,相應的權限已經被減掉了
[root@localhost test]# chmod u=rwx,go=r howie.txt
# 設置所有者權限為 rwx,設置所屬組及其它人權限為 r
[root@localhost test]# ls -lh
-rwxr--r--. 1 root root 0 7月 21 22:06 howie.txt
# 此時可以看到,已經設置成為我們想要的權限了
[root@localhost test]# chmod a=r howie.txt
# 給所有權限組設置為只有 r 的權限
[root@localhost test]# ls -lh
-r--r--r--. 1 root root 0 7月 21 22:06 howie.txt
# 已經正確的設置成功了
[root@localhost test]#
~~~
>[danger] 如果一次給多個權限組相同的操作,多個權限組可以直接寫在一起,例如 ug+w 表示同時給所有者及所屬組都加上讀(w)的權限
如果一次給多個權限組不同的權限操作,可以用逗號分隔,例如 ug+w,o-r 表示給所有者及所屬組增加寫(w)權限的同時又給其它人減去讀(r)的權限,需要注意的是,加號(+)、減號(-)、等號(=)、逗號(,)的前后不允許有空格
- 序言
- Linux 的安裝
- VMware 的安裝
- VMware 的配置
- CentOS 下載與虛擬機硬件配置
- Linux 的分區
- ContOS 安裝
- 虛擬機網絡配置
- 遠程連接工具安裝
- 基礎(舊)
- Linux 和 Windows 的區別
- 目錄結構
- 注意事項
- Linux的常用命令
- 用戶及用戶組
- 文件及權限
- 目錄與文件權限的意義
- 文件及目錄管理相關
- 常用命令
- 系統安裝
- Linux的簡介
- Linux 各發行版介紹
- CentOS的部署
- 基礎
- 文件和用戶管理
- Linux目錄結構
- 文件管理相關
- cd 切換目錄
- pwd 顯示當前位置
- ls 列出目錄下的文件和子目錄
- touch 創建文件
- mkdir 創建目錄
- cp 復制文件/目錄
- mv 移動或改名文件/目錄
- rm 刪除文件/目錄
- chattr 改變文件屬性
- lsattr 顯示文件屬性
- 用戶管理
- useradd 添加用戶
- passwd 修改用戶密碼
- id 查看用戶ID信息
- userdel 刪除用戶
- usermod 修改用戶信息
- groupadd 創建用戶組
- groupdel 刪除用戶組
- su 切換用戶帳號
- sudo 以管理員的身份執行命令
- 權限管理
- chmod 修改文件/目錄權限
- chown 修改文件擁有者或所屬組
- chgrp 修改文件所屬組
- setfacl 設置文件權限列表
- getfacl 查看文件權限列表
- vim的使用
- 進程管理
- ps 查看進程
- top 動態顯示進程
- kill 殺死進程
- nice 修改進程優先級
- jobs 顯示后臺任務列表及任務狀態
- fg 將后臺運行的進程調整至前臺運行
- bg 將在后臺暫停進行繼續執行
- 磁盤管理
- lsblk 列出塊設備信息
- fdisk 磁盤分區
- partprobe 重新讀取分區表
- mkfs 建立文件系統(格式化)
- mont 掛載設備
- df 查看磁盤使用情況
- unount 卸載掛載設備
- 交換空間 swap
- free 查看內存使用狀態
- mkswap 設置交換分區
- swapon 激活交換空間
- LVM邏輯卷管理
- LMV的工作原理
- pvcreate 創建物理卷
- pvs 查看物理卷
- pvscan 查看每個PV的信息
- pvdisplay 顯示物理卷詳細信息
- vgcreate 創建卷組
- vgs 查看卷組
- vgscan 查看每個VG的信息
- vgdisplay 顯示卷組詳細信息
- lvcreate 創建邏輯卷
- vgextend 擴展卷組空間
- lvextend 擴展邏輯卷空間
- resize2fs 調整文件系統大小
- RAID
- 文件查找和壓縮
- which 命令查找
- find 根據文件名查找文件
- locate 查找文件
- tar 文件打包
- 軟件安裝
- RPM包管理
- yum 安裝軟件
- rpm 安裝軟件
- 源碼包管理
- 計劃任務
- at 一次性計劃任務
- cron 循環任務
- 日志系統
- 網絡管理
- ip 顯示或設置網絡設備
- OSI簡介