Linux 文件許可權、系統優化
- 2021 年 12 月 15 日
- 筆記
- linux, Linux 文件許可權、系統優化

Linux 文件許可權、系統優化
1、文件許可權的詳細操作

1、簡介:
許可權就是用戶可以對文件可以進行的操作,例如:可讀,可寫,可執行
2、命令及歸屬:
-
命令:
chmod-
參數:
-c: 若該文件許可權確實已經更改,才顯示其更改動作-f:若該文件許可權無法被更改也不要顯示錯誤訊息-v:顯示許可權變更的詳細資料-R:對目前目錄下的所有文件與子目錄進行相同的許可權變更(即以遞歸的方式逐個變更)
-
-
格式:chmod [參數] [修改許可權文件名]
-
文件許可權的歸屬分為:
u-屬主(Owner)、g-屬組(Group)、o-其他使用者(Other Users)

- 許可權字元及其編號

- 使用字元添加許可權直接
+號就可以添加許可權,-號代表取消許可權,=代表唯一設定許可權
功能一覽表:
| Operator | 說明 |
|---|---|
+ |
為指定的用戶類型增加許可權 |
- |
去除指定用戶類型的許可權 |
= |
設置指定用戶許可權的設置,即將用戶類型的所有許可權重新設置 |
| 模式 | 對應數字 | 描述 |
|---|---|---|
r |
4 | 設置為可讀許可權 |
w |
2 | 設置為可寫許可權 |
x |
1 | 設置為可執行許可權 |
3、許可權對於用戶和目錄的意義

許可權對於用戶的意義:
- 文件屬主和超管可以修改文件或目錄的許可權;
- root用戶是高於許可權;
- 普通用戶是嚴格遵守許可權的;
- 許可權需要重新登才生效(su和su – 都可以);
許可權對於目錄的意義:
**設置最小許可權使文件執行相應的操作**
- 文件可讀,文件所在路徑(文件夾)的最小許可權是必須擁有可執行許可權。
- 文件可寫,文件所在路徑(文件夾)的最小許可權是必須擁有可執行許可權
- 文件可執行,文件所在路徑(文件夾)的最小許可權是必須擁有可讀可執行許可權
4、創建文件/文件夾的默認許可權來源
- 相關文件:/etc/profile
- 在Linux中,常用的文件的許可權是666,目錄的許可權是777
- 創建文件的默認許可權是跟
umask值相減,遇到奇數加一,遇到偶數則不變 - 創建文件夾的許可權只和umask相減
- 創建文件的默認許可權是跟
- 查看profile文件中的umask值,及運算關係
[root@localhost ~]# cat /etc/profile

root用戶舉例,示例如下:
# 查看uid
[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
# uid <199,第一步為假了
[root@localhost test]# /usr/bin/id -gn
root
[root@localhost test]# /usr/bin/id -un
root
# 執行結果相同,為真
# False && True = False,所以root的umask = 022
# 那麼我們在root用戶下創建的用戶默認許可權就可以計算了,文件許可權666和目錄許可權777與umask相減來驗證
# 1、文件默認許可權驗證
666的每位與022相減:
6-0 =6 # 偶數不用變
6-2 =4 # 偶數不用變
6-2 = 4 # 偶數不用變
# 所以root下創建文件的默認許可權為644---->rw-r--r--
# 實際創建驗證
[root@localhost test]# touch a.txt
[root@localhost test]# ll -i
total 0
1423023 -rw-r--r--. 1 root root 0 Dec 15 15:48 a.txt
# 2、目錄默認許可權驗證
777的每位與022直接相減,不需要判斷奇偶
7 - 0 = 7
7 - 2 = 5
7 - 2 = 5
# 所以root下創建的目錄的默認許可權為755 ----> rwxr-xr-x
# 實際創建驗證
[root@localhost ~]# mkdir test
[root@localhost ~]# ll -i
1423022 drwxr-xr-x. 2 root root 19 Dec 15 15:48 test
5、修改文件許可權案例
案例:a.txt為例,修改文件ugo的許可權
[root@localhost test]# ll -ia
1423023 -rw-r--r--. 1 root root 0 Dec 15 15:48 a.txt
# 現在ugo的許可權為讀寫,可讀,可讀,把ugo的許可權擴大,改為讀寫執行
[root@localhost test]# chmod ugo+rwx a.txt
或
[root@localhost test]# chmod 777 a.txt
[root@localhost test]# ll -i
total 0
1423023 -rwxrwxrwx. 1 root root 0 Dec 15 15:48 a.txt
# 將a.txt ugo的讀寫執行許可權都去掉
[root@localhost test]# chmod ugo-rwx a.txt
或
[root@localhost test]# chmod -777 a.txt
[root@localhost test]# ll -i
total 0
1423023 ----------. 1 root root 0 Dec 15 15:48 a.txt
# 分別給a.txt 的u讀寫執行,g添加讀寫,o添加讀許可權
[root@localhost test]# chmod u+rwx,g+rw,o+r a.txt
或
[root@localhost test]# chmod 764 a.txt
[root@localhost test]# ll -i
total 0
1423023 -rwxrw-r--. 1 root root 0 Dec 15 15:48 a.txt
# 分別給a.txt 的u讀寫,g執行,o沒有任何許可權
[root@localhost test]# chmod u+rw,g+x a.txt
或
[root@localhost test]# chmod 610 a.txt
[root@localhost test]# ll -i
total 0
1423023 -rw---x---. 1 root root 0 Dec 15 15:48 a.txt
案例:以test文件夾為例,分配許可權
# 查看test文件夾文件的許可權
[root@localhost test]# ll
total 0
----------. 1 root root 0 Dec 15 15:48 a.txt
----------. 1 root root 0 Dec 15 16:25 b.txt
# 沒有任何許可權,下面給test文件下的所有文件添加讀寫執行許可權
[root@localhost ~]# chmod -R 777 test
[root@localhost ~]# ll test
total 0
-rwxrwxrwx. 1 root root 0 Dec 15 15:48 a.txt
-rwxrwxrwx. 1 root root 0 Dec 15 16:25 b.txt
# 將test目錄下所有文件的屬組的執行許可權,其他使用者的寫和執行許可權去掉
[root@localhost ~]# chmod -R g-x,o-wx test/
[root@localhost ~]# ll test/
total 0
-rwxrw-r--. 1 root root 0 Dec 15 15:48 a.txt
-rwxrw-r--. 1 root root 0 Dec 15 16:25 b.txt
ps:若用 chmod 4755 filename 可使此程式具有 root 的許可權。
2、系統優化
系統資訊查看方法
-
查看系統名稱資訊:
# cat /etc/redhat-release CentOS release 7.5.1804 -
查看系統內核版本
# uname -r 3.10.0-862.el7.x86_64 -
查看系統硬體位數
# uname -m x86_64
系統基礎優化
添加系統普通用戶
-
添加系統普通用戶:
useradd [用戶名]- 參數 :
-a
[root@localhost ~]# uname Linux [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux - 參數 :
-
設置用戶密碼 :
passwd [用戶名]- 免交互模式:
echo [密碼]|passwd --stdin [用戶名](一般用在腳本文件中)
- 免交互模式:
-
切換用戶資訊:
su和su -- 二者區別就是
su是切換用戶,但是切換後的用戶缺少相應的文件或環境變數;su -相當於重新登錄,切換後的用戶攜帶環境變數或相應文件 - 通過
pwd和echo $PATH兩個命令查看超管和普通用戶切換後的區別 - root用戶切換到普通用戶不需要輸入密碼
- 普通用戶切換到root用戶需要輸入密碼
- 二者區別就是
用戶切換原理圖:

-
查看當前登錄用戶資訊:
whoami命令[root@localhost ~]# whoami root -
查看當前用戶登錄系統的終端 :
who命令[root@localhost ~]# who root tty1 2021-12-15 08:50 root pts/0 2021-12-15 15:14 (192.168.15.1) root pts/2 2021-12-15 16:52 (192.168.15.1) # tty和pts的含義 tty ---- 代表虛擬機開的窗口 pts ---- 代表此時Xshell開的窗口
命令提示資訊優化
- 通過
echo $PS1命令修改顯示命令行提示符格式資訊
臨時切換提示
-
大寫方式
[root@localhost ~]# echo $PS1 [\u@\h \W]\$ # 大寫方式只能顯示路徑基名,不顯示完全路徑 [root@localhost ~]#cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# -
小寫方式
[root@localhost ~]# PS1='[\u@\h \w]\$' # 通過小寫方式這樣就能顯示完整路徑了 [root@localhost ~]#cd /etc/sysconfig/network-scripts/ [root@localhost /etc/sysconfig/network-scripts]#
永久設置切換提示
- 相關文件:
/etc/profile- 在profile文件內添加
export PS1='[\u@\h \w]\$ ' - 重載文件命令:
source - 重載文件:
source /etc/profile,設置成功+
- 在profile文件內添加

【待續】


