Linux 文件權限、系統優化(初識)



image


Linux 文件權限、系統優化

1、文件權限的詳細操作

image


1、簡介:

權限就是用戶可以對文件可以進行的操作,例如:可讀,可寫,可執行

2、命令及歸屬:

  • 命令:chmod

    • 參數:

      -c : 若該文件權限確實已經更改,才顯示其更改動作

      -f :若該文件權限無法被更改也不要顯示錯誤訊息

      -v :顯示權限變更的詳細資料

      -R :對目前目錄下的所有文件與子目錄進行相同的權限變更(即以遞歸的方式逐個變更)

  • 格式:chmod [參數] [修改權限文件名]

  • 文件權限的歸屬分為:u-屬主(Owner)g-屬組(Group)o-其他使用者(Other Users)

image

  • 權限字符及其編號

image


  • 使用字符添加權限直接+號就可以添加權限,-號代表取消權限,=代表唯一設定權限

功能一覽表:

Operator 說明
+ 為指定的用戶類型增加權限
- 去除指定用戶類型的權限
= 設置指定用戶權限的設置,即將用戶類型的所有權限重新設置

模式 對應數字 描述
r 4 設置為可讀權限
w 2 設置為可寫權限
x 1 設置為可執行權限

3、權限對於用戶和目錄的意義

image

權限對於用戶的意義:

  • 文件屬主和超管可以修改文件或目錄的權限;
  • root用戶是高於權限;
  • 普通用戶是嚴格遵守權限的;
  • 權限需要重新登才生效(su和su - 都可以);

權限對於目錄的意義:

**設置最小權限使文件執行相應的操作**

  • 文件可讀,文件所在路徑(文件夾)的最小權限是必須擁有可執行權限。
  • 文件可寫,文件所在路徑(文件夾)的最小權限是必須擁有可執行權限
  • 文件可執行,文件所在路徑(文件夾)的最小權限是必須擁有可讀可執行權限

4、創建文件/文件夾的默認權限來源

  • 相關文件:/etc/profile
  • 在Linux中,常用的文件的權限是666,目錄的權限是777
    • 創建文件的默認權限是跟umask值相減,遇到奇數加一,遇到偶數則不變
    • 創建文件夾的權限只和umask相減
  • 查看profile文件中的umask值,及運算關系
[root@localhost ~]# cat /etc/profile

image

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 :Linux命令,用於顯示當前操作系統名稱

  • -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
    
  • -r:顯示linux操作系統內核版本號

    # uname -r
    3.10.0-862.el7.x86_64
    
  • -m:查看系統硬件位數

    # uname -m
    x86_64
    

系統基礎優化

添加系統普通用戶

  • 添加系統普通用戶:useradd [用戶名]

  • 設置用戶密碼 :passwd [用戶名]

    • 免交互模式:echo [密碼]|passwd --stdin [用戶名] (一般用在腳本文件中)
  • 切換用戶信息:susu -

    • 二者區別就是su是切換用戶,但是切換后的用戶缺少相應的文件或環境變量;su -相當於重新登錄,切換后的用戶攜帶環境變量或相應文件
    • 通過pwdecho $PATH兩個命令查看超管和普通用戶切換后的區別
    • root用戶切換到普通用戶不需要輸入密碼
    • 普通用戶切換到root用戶需要輸入密碼

用戶切換原理圖:

image


  • 查看當前登錄用戶信息: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,設置成功+

image


【待續】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM