主頁 > 作業系統 > Linux 常用命令總結(二)

Linux 常用命令總結(二)

2020-09-24 13:06:30 作業系統

一、系統管理類指令

1、uname(顯示系統訊息)

  用于顯示系統資訊,比如系統型別、主機型號等,

【格式:】
    uname [選項]
注:
    選項:
        -a 或者 --all         顯示全部資訊
        -m 或者 --machine     顯示電腦型號
        -n 或者 --nodename    顯示主機名稱
        -r 或者 --release     顯示作業系統發行編號
        -s 或者 --sysname     顯示系統名稱
        --version            顯示版本資訊

【舉例:】
    [root@localhost test]# uname --all

 

 

 

2、firewall(操作防火墻)

  CentOS 7 使用 firewall 管理防火墻,不使用 iptables 管理,
  使用 firewall-config 可以打開 GUI 圖形界面進行操作,
  使用 firewall-cmd 直接操作命令列,
  使用 man firewall-cmd 可以查看幫助資訊,

【格式:】
    firewall-cmd [選項]
注:
    選項:
        --state                      用于查看 firewall 的狀態
        --reload                     用于重新加載防火墻,不中斷服務
        --permanent                  永久操作
        --add-port                  用于添加埠
        --list-ports                用于查看已開放的埠
        --remove-port               用于移除埠
        --add-service               用于添加服務
        --remove-service            用于移除服務
        --query-service             用于查看服務是否支持
        --get-services               用于查看支持的服務
        --get-active-zones           用于查看已被激活的磁區
        
【常見操作:開啟、關閉防火墻】
    [root@localhost firewalld]# firewall-cmd --state     用于查看防火墻的狀態,一般都為 running,
    或者
    [root@localhost firewalld]# service firewalld status    用于查看防火墻的狀態,
    
    [root@localhost firewalld]# service firewalld start     開啟防火墻
    [root@localhost firewalld]# service firewalld stop      關閉防火墻
    [root@localhost firewalld]# service firewalld restart   重啟防火墻

【常見操作:(開放、關閉 8080 埠,在防火墻開啟時進行)】
    firewall-cmd --state
    firewall-cmd --add-port=8080/tcp
    firewall-cmd --reload
    firewall-cmd --list-port
    firewall-cmd --remove-port=8080/tcp
    
注:
    firewall-cmd --add-port=8080/tcp --permanent 表示永久操作

 

 

 

3、runlevel、systemctl、init(查看、設定系統運行級別)

(1)運行級別分類
  運行級別0:系統關機狀態,默認級別不能設為 0,否則不能正常啟動(一啟動就關機),
  運行級別1:單用戶作業狀態,用于系統維護、找回 root 密碼等,禁止遠程登錄,只能在當前計算機上操作,
  運行級別2:多用戶狀態(無網路服務),
  運行級別3:多用戶狀態(有網路服務),
  運行級別4:作為保留級別,未使用,
  運行級別5:圖形界面狀態,
  運行級別6:系統重啟狀態,默認級別不能設為 6,否則不能正常啟動(一啟動就重啟),

(2)一般運行級別組態檔所在位置(/etc/inittab)
  查看可知 CentOS7 不使用 inittab,即使對該檔案修改,也不會有影響,  
  使用 systemctl 去獲取、設定運行級別,

 

 

 

(3)查看當前運行級別

【方式一:runlevel】
    runlevel
輸出 上一個系統運行級別以及當前系統運行級別,
形如: 
    N 5     N 表示系統未更換過運行級別,5 表示當前系統運行級別為 5
    5 3     5 表示上一次運行級別為 53 表示當前系統運行級別為 3
    
【方式二:】
    who -r
    
【方式三:】
    systemctl get-default
注:
    運行級別對應:
        0          /usr/lib/systemd/system/runlevel0.target -> poweroff.target
        1          /usr/lib/systemd/system/runlevel1.target -> rescue.target
        2          /usr/lib/systemd/system/runlevel2.target -> multi-user.target
        3          /usr/lib/systemd/system/runlevel3.target -> multi-user.target
        4          /usr/lib/systemd/system/runlevel4.target -> multi-user.target
        5          /usr/lib/systemd/system/runlevel5.target -> graphical.target
        6           /usr/lib/systemd/system/runlevel6.target -> reboot.target

 

 

 

 

 

 

(4)修改運行級別(init、systemctl)

【方式一:(切換運行級別,但是不修改默認設定)】
    init 數字
注:
    數字為 0 - 6
    
【方式二:(修改默認運行級別)】
    systemctl set-default xxx.target       設定默認級別為 xxx.target,重啟系統生效
    systemctl isolate xxx.target           不重啟系統,將運行級別切到 xxx.target,等價于 init 

【舉例:】
    [root@localhost system]# systemctl get-default
    [root@localhost system]# systemctl set-default runlevel3.target
    [root@localhost ~]# systemctl isolate runlevel5.target

 

 

 

4、CentOS7 找回丟失的 root 密碼

(1)解決方案:
  開機進入 單用戶 模式(無需密碼登陸),此時設定密碼即可,

(2)安全性:
  由于單用戶模式必須在服務器上直接操作,不能通過遠程操作,既然都能接觸服務器了,說明是內部人操作的,安全性也就可以得到保證,

(3)操作步驟:
  Step1:開機,在引導界面使用 上下箭頭切換,阻止默認引導功能,

 

 

 

  Step2:按下 e 鍵,進入編輯界面,如下圖,在行末尾 添加 init=/bin/sh,然后Ctrl + x 進入單用戶模式,

 

 

 

  Step3:切換根目錄,修改 root 用戶的密碼,并重啟虛擬機,
  若出現亂碼,使用 LANG=en_US,修改

chroot /sysroot/          切換根目錄
ll
LANG=en_US                出現亂碼,設定語言
passwd root               修改 root 密碼
touch /.autorelabel       用來使selinux的所有的關聯標簽發生改變,以接受新的ROOT密碼
exit                      離開 /sysroot 目錄
reboot                    重啟 虛擬機

 

 

 

5、行程管理

(1)行程:
  可以理解為 某個正在執行的程式(命令),程式執行時,相關的代碼、屬性加載到記憶體,作業系統給其分配一個 ID,即行程 ID(PID),

(2)行程管理:
  即對系統內正在運行的行程進行管理,
  可以查看當前系統所有正在運行的行程,并以此判斷哪些服務被啟動,哪些非法服務被啟動,
  可以用來殺死行程,停止不正常運行的行程,

(3)一般行程、孤兒行程、僵尸行程:
  一般行程:指正常情況下,子行程由父行程創建,當子行程執行完畢,父行程取得子行程的終止狀態,并回收子行程的資源,

  孤兒行程:指父行程退出了,但其子行程仍在運行,此時這些子行程即為孤兒行程,被行程號 為 1的行程(即 PID = 1,一般為 init 或者 systemd)收養、并執行,執行完畢由 init 回收資源,

  僵尸行程:指的是子行程結束,但父行程沒有回收子行程的資源,從而子行程一致存在于記憶體中,此時子行程即為 僵尸行程,

(4)行程的啟動:
  可以分為 手動啟動、任務調度啟動,

【手動啟動:】
    所謂手動啟動,即用戶通過命令列輸入命令,并執行,
    手動啟動又可分為: 前臺啟動、后臺啟動,
    前臺啟動:通常用于執行耗時較短的命令,此時需等待當前命令執行完畢才可繼續執行下個命令(可以使用快捷鍵 Ctrl + Z 將命令掛起),比如 ls、cd 等命令,
    后臺啟動:通常用于執行耗時較長的命令,此時若用前臺啟動執行,耗時較長,可以將其轉為后臺執行,然后繼續執行其他操作,(格式:命令 &,&前有空格),

【任務調度啟動:】
    所謂任務調度啟動,指的是任務可以在指定時間、指定情況下自動啟動,
    比如:資料庫備份等,

 

6、ps(顯示所有運行行程的資訊)

  用于顯示運行行程的資訊,

【格式:】
    ps [選項]
注:
    選項:
        aux     查看系統的所有行程
        -le     查看系統的所有行程,以及行程的優先級、父行程ID
        -l      查看當前 shell 產生的行程,以長格式顯示
    
    aux 輸出格式:
        USER  PID %CPU %MEM  VSZ  RSS TTY  STAT START   TIME COMMAND
       其中:
           USER           指該行程由哪個用戶產生的,
           PID            指該行程的 ID,
           %CPU           指該行程占用 CPU 資源的百分比,占用越高越耗費資源,
           %MEM           指該行程占用 物理記憶體 的百分比,占用越高越耗費資源,
           VSZ            指該行程占用 虛擬記憶體 的大小,單位為 KB,
           RSS            指該行程占用 實際物理記憶體 的大小,單位為 KB,
           TTY            指該行程在哪個終端上運行, tty1 ~ tty7 表示本地終端, pts/0 ~ pts/255 表示虛擬終端(遠程終端),
           STAT           指的是該行程狀態,
                           D       睡眠狀態,不可被喚醒,
                           S       睡眠狀態,可被喚醒,
                           R       執行緒正在運行狀態,
                           T       執行緒停止狀態,
                           X       執行緒死亡狀態,
                           Z       僵尸行程,行程已終止,但仍有部分程式在記憶體,
                               N       低優先級
                               <       高優先級
                               s       包含子行程
                               +       后臺行程
                               l       指多執行緒
           START          指的是該行程的啟動時間,
           TIME           指的是該行程占用 CPU 的時間(即運行時間),
           COMMAND        指的是該行程的名字,
    
    -le 輸出格式:
        F S  UID  PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY  TIME CMD
        其中:
            F          指的是行程的權限,
                        1 表示行程可以被復制,但是不能被執行,
                        4 表示行程使用管理員權限,
            S          指的是該行程狀態,
                           D       睡眠狀態,不可被喚醒,
                           S       睡眠狀態,可被喚醒,
                           R       執行緒正在運行狀態,
                           T       執行緒停止狀態,
                           X       執行緒死亡狀態,
                           Z       僵尸行程,行程已終止,但仍有部分程式在記憶體,
            UID         指的是運行該行程的用戶的 ID
            PID         指行程的 ID
            PPID        指行程的父行程 ID
            C           指該行程占用 CPU 資源的百分比,占用越高越耗費資源, 
            PRI         priority,指該行程的動態優先級,數值越小,優先級越高,由內核動態調整, PRI(最終值) = PRI(原始值) + NI,
            NI          nice,指該行程的靜態優先級,可手動修改,范圍 -20 ~ 19,數值越小,優先級越高,普通用戶只能調整自己的行程且只能調高 NI, 范圍為 0 ~ 19,
            ADDR        指該行程在記憶體的地址,
            SZ          指該行程占用的記憶體空間,
            WCHAN       指該行程是否運行, - 表示運行,
            TTY         指該行程在哪個終端上運行
            TIME        指的是該行程占用 CPU 的時間(即運行時間),
            CMD         指的是該行程的名字,
            
    
【舉例:】
    [root@localhost test]# ps aux | grep pts/*
    [root@localhost test]# ps -le | grep pts/*
    [root@localhost test]# ps -l

 

 

 

7、pstree(以樹形結構顯示行程間的關系)

【格式:】
    pstree [選項] PID/用戶名
注:
    選項:
        -p         樹的節點上顯示 PID

【舉例:】
    [root@localhost test]# pstree -p

 

 

 

8、top(動態查看行程的運行狀態)

  提供一個互動界面,可以方便查看行程的運行狀態,

【格式:】
    top [選項]
注:
    選項:
        -d 秒數          指定每個幾秒 更新一次 top,默認 3-n 次數          指定 top 執行的次數
        -b              批處理輸出,一般與 -n 連用,將 top 內容重定向到檔案
        -p PID          查看指定 PID 的行程
        -u 用戶名        查看指定 用戶 的行程

【舉例:】
    [root@localhost test]# top -p 1,2 -b -n 2 > test.txt &

 

 

 

  top 輸出分析:

 

 

 

【top 輸出第一行:(顯示系統資訊)】
    top - 14:41:14 up 1 day, 23:00,  1 user,  load average: 0.00, 0.01, 0.05
注:
    14:41:14                          表示當前系統時間
    up 1 day, 23:00                   表示當前系統運行時間
    1 user                            表示當前登錄系統的用戶總數為 1
    load average: 0.00, 0.01, 0.05    表示系統在前 1 分鐘、5 分鐘、15分鐘的平均負載,
    
【top 輸出第二行:(顯示行程資訊)】
    Tasks:   2 total,   0 running,   2 sleeping,   0 stopped,   0 zombie
注:
    2 total                 表示當前查詢到的行程總數為 2
    0 running               表示正在運行的行程數為 0
    2 sleeping              表示正在睡眠的行程數為 2
    0 stopped               表示正在停止的行程數為 0
    0 zombie                表示僵尸行程數為 0
    
【top 輸出第三行:(顯示 CPU 資訊,網上白嫖的,不太明白具體含義,混個眼熟)】
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
注:
    0.0 us               表示用戶模式占用 0%
    0.0 sy               表示系統模式占用 0%
    0.0 ni               表示改變過優先級的行程占用 0%
    100.0 id             表示空閑 CPU 占用 100.0%
    0.0 wa               表示等待輸入、輸出行程占用 0%
    0.0 hi               表示硬中斷請求服務占用 0%
    0.0 si               表示軟中斷請求服務占用 0%
    0.0 st               表示虛擬時間百分比
    
【top 輸出第四行:(顯示物理記憶體資訊)】
    KiB Mem :  3861364 total,  2133256 free,   935192 used,   792916 buff/cache
注:
    3861364 total              物理記憶體總量  
    2133256 free               空閑記憶體量
    935192 used                已使用記憶體量
    792916 buff/cache          緩沖、快取記憶體量
注:
    buff      緩沖,向硬碟寫資料時,將資料先放置在緩沖區,再一次寫入,提高資料寫入的性能,
    cache     快取,從記憶體中讀資料時,將資料先放置在快取區,再一次讀入,挺高資料讀取的性能,

【top 輸出第五行:(顯示交換磁區資訊)】
    KiB Swap:  2097148 total,  2097148 free,        0 used.  2622372 avail Mem
注:
    2097148 total              交換磁區總量  
    2097148 free               空閑交換磁區量
    0 used                     已使用交換磁區量
    2622372 avail Mem          可用磁區量

【top 輸出第七行:】
        PID USER  PR  NI  VIRT  RES  SHR S  %CPU %MEM   TIME+ COMMAND
        其中
            PID        指行程 ID
            USER       指行程所屬的用戶
            PR         指行程動態優秀級
            NI         指行程靜態優先級
            VIRT       指行程占用的虛擬記憶體大小
            RES        指行程占用的物理記憶體大小
            SHR        指行程占用的共享記憶體大小
            S          指行程狀態(stat%CPU       指行程占用 CPU 百分比
            %MEM       指行程占用 記憶體 百分比
            TIME+      指行程占用 CPU 的時間
            COMMAND    指行程名

    互動界面常用按鍵:
        Q           退出 top ,(Ctrl + C 也行)
        P           按照 CPU 占用率降序排序(默認, %CPU),
        M           按照 記憶體 使用率降序排序(%MEM),
        N           按照 PID 降序排序(PID),
        T           按照 占用 CPU 時間排序(TIME+),

 

9、lsof(顯示行程打開的檔案)

【格式:】
    lsof [選項]
注:
    -c 字串       列出以字串開頭的行程打開的檔案
    -u 用戶名       列出某用戶的行程打開的檔案
    -p PID         列出某行程打開的檔案
    +d 檔案路徑     列出某個目錄下打開的檔案
        
【舉例:】
    [root@localhost test]# lsof +d  /usr/bin

 

 

 

10、kill、killall、pkill(終止行程)

  kill 向作業系統發送一個信號和行程PID,作業系統根據該信號型別對行程處理,
  kill 指令不一定能終止行程,只有系統接收終止信號并成功處理才會終止行程,
  kill 只能根據 PID 去終止行程,
  killall 通過行程名去終止一系列行程,
  pkill 通過行程名去終止一系列行程,可以用于踢出登陸的用戶,

kill 格式:】
    kill [信號] PID
注:
    常用信號:
        -1       重啟行程
        -2       結束行程,并不強制,比如 Ctrl + C
        -9        強制終止行程
        -15       默認信號,正常結束行程         

【killall 格式:】
    killall [選項] [信號] 行程名
注:
    選項:
        -i         提示資訊
        -l         忽略行程名大小寫

【pkill 格式:】
    pkill [信號]  行程名         
    pkill [-t 終端號(TTY)]
     

【舉例:】
    [root@localhost ~]# kill -9 7777
    [root@localhost ~]# killall -9 sshd
    [root@localhost ~]# pkill -9 sshd
    [root@localhost ~]# kill -9 -t pts/1

 

11、jobs、fg、bg(后臺命令管理)

  對于一些執行時間較長的命令,如果使用前臺互動的方式,則需要等待很長時間,一般將其放到后臺處理,這樣前臺可以操作其他命令,提高作業效率,
  在命令后添加" &",&前有空格,則該命令將轉為后臺執行,并回傳一個行程 PID,但是如果命令有輸出,仍會輸出到螢屏,一般可以將輸出重定向到某個檔案,
  使用快捷鍵 Ctrl + Z 可以掛起行程,后臺可見,
  使用快捷鍵 Ctrl + C 可以終止行程,
  使用命令 jobs 可以查看當前終端放入后臺的行程,
  使用命令 bg 可以將后臺行程在后臺執行,
  使用命令 fg 可以將后臺行程轉為前臺執行,

【后臺命令格式:】
    命令 &

【jobs 格式:】
    jobs [選項]
注:
    選項:
        -l              列出所有行程并列出行程的 PID
        -p              只列出行程的 PID
        -r             只列出運行中的行程
        -s             只列出停止的行程

【bg 格式:】
    bg %N
注:
        使用命令 bg %N 可以使掛起的第 N 個執行緒在后臺運行,若沒有 %N,則表示執行最后一個行程,

【fg 格式:】
    fg %N           
注:    
    使用命令 fg %N 可以使掛起的第 N 個執行緒在前臺運行,若沒有 %N,則表示執行最后一個行程,
  
  注:
      對于后臺運行的行程,仍會將結果輸出到控制臺,干擾作業,
      所以如果后臺執行的行程有大量輸出,可以將其重定向到某個檔案,
      比如:
          想要后臺執行 find / -name "*" ,
          可以寫成  find / -name "*" > test.txt &  
          檔案名可以任意取,但是最好不要與目錄下的檔案重名,
 
【舉例:】
    [root@localhost test]#  find / -name "*" > test.txt &

 

 

 

12、crontab(設定定時任務調度)

  任務調度指的是系統在某個時間執行特定的命令或程式,
  可以查看組態檔 /etc/crontab.

 

 

 

【格式:】
    crontab [選項]
注:
    選項:
        -e       編輯定時任務,會打開一個空檔案,與 vim 操作一致,
        -l       查詢定時任務
        -r       洗掉當前用戶所有定時任務

    編輯格式說明:
        * * * * * 命令
        其中:
            第一個 * 號表示 分鐘(0 - 59),
            第二個 * 號表示 小時(0 - 13),
            第三個 * 號表示 月中的天數(1 - 31),
            第四個 * 號表示 月(1 - 12),
            第五個 * 號表示 星期(0 - 7, 其中 07 均表示星期天),
         
         時間可以用特殊符號組合:
             逗號 , 表示不連續的時間,比如 "1, 3, 7 * * * * 命令",表示每小時的 137 分鐘執行一次,
             減號 - 表示連續時間,比如 "1-3 * * * * 命令",表示每小時的 13 分鐘執行一次命令,
             除號 / 表示每隔多久執行一次,比如 "*/3 * * * * 命令",表示每隔 3 分鐘執行一次命令,
         
         注意事項:
             最小有效時間為 分鐘,最大有效時間為 月,即不能指定秒、年去執行,
             5個時間以及命令不可省,不確定時間可以使用 * 表示任意時間,
             日期與星期盡量不要同時設定,容易出錯,

【舉例:】
    [root@localhost ~]# crontab -e
    [root@localhost ~]# crontab -l
    * * * * * /usr/bin/ll >> /root/test/hello.txt

 

 

 

  若出現無法執行 crontab 任務的情況,排查錯誤,
  Step1:查看語法是否正確,是否添加任務成功,
    使用 crontab -e 編輯后,一般存放于 /var/spool/cron/用戶名 下,

* * * * * ll >> /root/test/hello2.txt

 

 

 

  Step2:查看 crond 任務是否正常啟動,(一般開機自啟動,可選操作)
    crond 服務是 crontab 的守護執行緒,

service crond status               查看 crond 的狀態
service crond start/stop/restart   啟動/停止/重啟 crond 服務 

 

 

 

  Step3:查看任務日志是否正確執行,(出現錯誤會發送郵件 Mail)

【查看任務執行日志】
    tail -f /var/log/cron          可以不停的監聽檔案的變化
    
【查看郵箱:】
    tail -f /var/spool/mail/root 

 

 

 

  Step4:修改錯誤即可,

[root@localhost test]# crontab -e
* * * * * /usr/bin/ls >> /root/test/hello2.txt
[root@localhost test]# crontab -l

 

 

 

  Step5:如果執行沒效果,也沒有收到郵件,可以查看郵件是否配置有問題,找到 /etc/postfix/main.cf,修改里面的內容,

【編輯檔案:】
    vim /etc/postfix/main.cf

【修改內容:】
    inet_interfaces = all
    inet_protocols = all

 

 

 

  Step6:重啟 postfix 服務

service postfix restart

service postfix status      

 

  Step7: 可能存在重啟 postfix 失敗的情況(視情況分析)
    我遇到的情況是 缺少 libmysqlclient.so.18 依賴,查找 find / -name "*libmysqlclient.so.18*" , 確實不存在該檔案,
    裝 mysql 的時候漏了,mysql-community-libs-compat-8.0.11-1.el7.x86_64.rpm,下載安裝后,成功解決,

 

二、用戶、用戶組管理

  用于管理用戶,對于服務器而言,是由一個團隊進行維護,而不同的用戶所對應的權限應該是不同的,這樣可以提高安全性,

1、用戶、用戶組

(1)用戶
  Linux 是多用戶多任務的作業系統,即 Linux 支持多個用戶同一時間登陸,
  不同的用戶具備不同的操作權限,在權限內完成相應的任務,從而達到多用戶多任務的性能,
  想要登陸 Linux,需要向系統管理員申請一個用戶名,這個用戶名是唯一的(UID號唯一),每個用戶分別對應自己的家目錄(家目錄一般為 /home/用戶名),

(2)用戶組
  用戶組是具有相同特征的用戶的集合,可以簡化用戶的管理,
舉例:
  對于某個檔案,某些用戶只有讀的權限,現在需要給用戶添加寫的權限,如何做?
  方式一:可以一個用戶一個用戶的添加權限,但是如果用戶過于龐大,這樣效率太低,
  方式二:可以增加一個用戶組,這個組對該檔案有寫的權限,將用戶歸于這個組,則用戶就擁有了寫的權限,之后通過操作用戶組,可以很方便的修改多個用戶的權限,

(3)用戶、用戶組之間的關系
  一對一:即一個用戶對應一個用戶組,該用戶具備該組的權限,
  一對多:即一個用戶對應多個用戶組,該用戶具備多個組的權限,
  多對一:即多個用戶對應一個用戶組,這些用戶具備同一個組的權限,
  多對多:即一個用戶可以存在多個用戶組中,一個用戶組可以存在多個用戶,

(4)UID、GID
  UID 指的是用戶 ID,即 User ID,用于指明用戶,
  GID 指的是組 ID,即 Group ID,用于指明用戶所屬的組,

2、組態檔

(1)/etc/passwd
  是系統用戶的組態檔,存盤了系統中所有用戶的基本資訊,且所有用戶對其都有讀的權限,

【格式:】
    用戶名:密碼:UID:GID:描述資訊:主目錄:默認shell
    
注:
    :   
        表示分隔符,沒有實際意義,
    
    用戶名:
        指代表用戶身份的字串,
    
    密碼:
        x  表示用戶設有密碼,密碼存放在 /etc/shadow,
      
    UID:
        即用戶 ID,范圍 0 ~ 65535.
        0 表示系統管理員,
        1 ~ 499 系統用戶,
        500 ~ 65535 普通用戶,
        
    GID:
        即初始組 ID,用于標識當前用戶存在于哪個組,
        初始組:用戶創建的同時創建的組,
        附加組:用戶切換的組(非初始組),
        比如:
            root 用戶創建時產生一個 root 組,手動增加一個 user 組,并將 root 用戶添加到 user 組中,
            那么 root 組即為初始組,user 組為附加組,
        
    描述資訊:(可選)
        描述用戶,
        
    主目錄:
        即用戶的家目錄,比如 root 的家目錄為 /root,普通用戶的家目錄為 /home/用戶名,
        
    默認 shell :
        shell 是 Linux 的命令解釋器(默認 bash),即將命令轉換成機器語言,從而被計算機執行,
        /bin/bash       相當于正常用戶,可以使用命令列敲命令,
        /sbin/nologin   不能正常登陸系統,不可以使用命令列,
        
【舉例:】
    [root@localhost ~]# cat /etc/passwd | grep root
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

 

 

(2)/etc/shadow
  用戶保存用戶的密碼,只有 root 用戶擁有讀權限,其余用戶不行,
  若忘記 root 密碼,可以通過單用戶模式,利用 passwd 去修改密碼,

【格式:】
    用戶名:加密的密碼:最后一次修改的時間:最小修改時間間隔:密碼有效期:密碼變更前的警告天數:密碼過期的寬限時間:賬號失效時間:保留欄位
注:
    :   
        表示分隔符,沒有實際意義,
    
    用戶名:
        指代表用戶身份的字串,
        
   加密的密碼:
       采用 SHA512 散列加密,* 或者 !! 表示需要密碼登陸,
       
   最后一次修改的時間:
       指的是從 1970年1月1日開始計算的天數,
       
   最小修改時間間隔:
       指的是密碼修改時間間隔,若為 0 表示隨時可以修改,若為 10 表示 10 天后才可修改,
   
   密碼有效期:
       默認為 99999 天,相當于長期有效,
   
   密碼變更前的警告天數:
       距離密碼過期的前 n 天,發送變更密碼的訊息,
   
   密碼過期的寬限時間:
       即密碼失效后,在 n 天內仍可以登陸,但之后就不能登陸了,
       
   賬號失效時間:
       從 1970年1月1日,開始計算,超過時間則賬號不能使用,
   
   保留欄位:
       保留,     
    
【舉例:】
    [root@localhost ~]# cat /etc/shadow | grep root
    root:$6$6GJnWVfg$Nu15dt6dcFscJ.HOPeHeh50aUiKjzqqQgSiTHwequ7AIWEidI5UyFvPXymyMXfLolT.czNsSEHnLYcABVnhes1:18346:0:99999:7:::

 

 

(3)/etc/group
  用于存放組的資訊,

【格式:】
    組名:密碼:GID:用戶串列(附加組)
注:
    :   
        表示分隔符,沒有實際意義,
    
    組名:
        用戶組名稱,
        
    密碼:
        x 表示密碼,存放于 /etc/gshadow 中,
        
    GID:
        用戶組 ID,
        
    用戶串列:
        列出每個組包含的用戶,若為初始組,則不顯示,

【舉例:】
    [root@localhost ~]# cat /etc/group | grep root
    root:x:0:

 

 

(4)/etc/gshadow
  用于存放組的密碼,

 

【格式:】
    組名:加密密碼:組管理員:組用戶串列

注:
    :   
        表示分隔符,沒有實際意義,
        
    組名:
        用戶組名稱,
        
    加密密碼:
        為 空 表示沒有密碼(通常沒有密碼),
        
    組管理員:
        用于管理組(基本不用),
        
    組用戶串列:
        顯示用戶,

【舉例:】
    [root@localhost ~]# cat /etc/gshadow | grep root
    root:::

 

 

3、useradd(添加用戶)

  用戶添加用戶,

【格式:】
    useradd [選項] 用戶名
注:
    默認情況下, useradd 使用了很多選項內容,不用專門指定,
    選項:
        -g 組名   指定初始組,
        -G 組名   指定附加組,
        -u UID    指定用戶 ID,
        -d /目錄   指定用戶家目錄(指明絕對路徑),
        -s shell  指定默認的shell(默認 /bin/bash),
        
【舉例:】
    [root@localhost ~]# useradd jack
    [root@localhost ~]# cat /etc/passwd | grep jack
    [root@localhost ~]# cat /etc/shadow | grep jack
    [root@localhost ~]# cat /etc/group | grep jack
    [root@localhost ~]# cat /etc/gshadow | grep jack

 

 

4、passwd(修改用戶密碼)

  用于指定用戶密碼、修改用戶密碼,

【格式:】
    passwd [選項] 用戶名
 注:
     選項:
         -S   用于查看用戶密碼狀態,僅 root 用戶可用,
         -l   用于鎖定用戶(即密碼失效),不準用戶登錄,僅 root 用戶可用,
         -u   用于解鎖用戶(與 -l 對應),僅 root 用戶可用,

【舉例:】
    [root@localhost ~]# passwd jack
    [root@localhost ~]# passwd -S jack

 

 

5、id、whoami、who am i(查詢用戶資訊)

  id 用于顯示當前用戶、用戶組、以及組資訊,
  whoami 用于顯示當前操作的用戶的名稱,
  who am i 用于顯示當前登錄用戶的名稱,

id 格式:】
    id [選項] 用戶名
注:
    選項:
        -un    顯示用戶名
        -g     顯示用戶組 ID

【whoami 格式:(等價于 id -un)】
    whoamiwho am i 格式:】
    who am i

【舉例:】
    [root@localhost ~]# id root
    [root@localhost ~]# whoami
    [root@localhost ~]# who am i

 

 

6、userdel(洗掉用戶)

  用于洗掉用戶、用戶家目錄,
  洗掉 /etc/passwd 等組態檔中相關資訊,

【格式:】
    userdel [選項] 用戶名
注:
    選項:
        -r         表示洗掉用戶的同時洗掉用戶家目錄,

【舉例:】
    [root@localhost ~]# find / -user jack
    [root@localhost ~]# userdel jack

 

 

7、su(切換用戶)

  用于實作多個用戶間來回切換,權限高的用戶切換到權限低的用戶,不需要密碼,反之需要,
  使用 exit 退出切換的用戶,

【格式:】
    su [選項] 用戶名
注:
    選項:
        -   切換用戶,且同時切換作業環境(環境變數改變),

【舉例:】
    [root@localhost ~]# su - lyh
    [lyh@localhost ~]$ exit

 

 

8、usermod(修改用戶資訊)

  用于修改用戶、用戶組的相關資訊,
  基本與 useradd 類似,是對 useradd 的一個補充,

【格式:】
    usermod [選項] 用戶名
注:
    選項:
        -c     修改用戶描述資訊,修改 /etc/passwd 檔案,
        -d     修改用戶的主目錄,修改 /etc/passwd 檔案,
        -u     修改用戶的用戶ID,修改 /etc/passwd 檔案,
        -g 組名    修改用戶的初始組,修改 /etc/passwd 檔案,
        -G 組名    修改用戶的附加組,即相當于將用戶加入其他組,修改 /etc/group 檔案,每次修改會覆寫掉之前的修改,
        -s    修改用戶的默認shell,
    
【舉例:】
    [root@localhost ~]# usermod -G root lyh

 

 

9、groupadd(添加用戶組)

【格式:】
    groupadd [選項] 組名
注:
    選項:
        -g GID   指定用戶組 GID
        -r       創建系統用戶組

【舉例:】
    [root@localhost ~]# groupadd testGroup1
    [root@localhost ~]# groupadd -g 1010  testGroup2
    [root@localhost ~]# groupadd -r testGroup3
    [root@localhost ~]# cat /etc/group | grep testGroup*

 

 

10、groupdel(洗掉用戶組)

  慎用,隨意洗掉用戶組可能導致系統不能正常運行,

【格式:】
    groupdel 用戶組名
    
【舉例:】
    [root@localhost ~]# groupdel testGroup1

 

 

11、groupmod(修改用戶組)

【格式:】
    groupmod [選項] 組名
注:
    -g GID            修改組 ID
    -n 新組名          修改組名
    
【舉例:】
    [root@localhost ~]# groupmod -g 1010 testGroup1
    [root@localhost ~]# groupmod -n testGroup2 testGroup1

 

 

12、gpasswd(管理用戶組)

  gpasswd 可以管理用戶組,交換控制權限、移除添加用戶等,
  usermod 可以修改用戶的附加組,但每次修改都會移除上一次的修改記錄,但是使用 gpasswd 不會,

【格式:】
    gpasswd [選項] 組名
注:
    選項:
        -A user1,user2...       將組控制權限給 user1...等用戶,僅 root 操作
        -M user1,,user2...      將 user1,user2... 加入組中
        -a user                 將用戶加入組
        -d user                 將用戶從組中移除

【舉例:】
    [root@localhost /]# gpasswd -M jack1,jack2 testGroup2

 

 

三、檔案權限管理

  所謂檔案權限管理,即針對不同的用戶設定不同的檔案訪問權限(讀、寫、執行),
比如:
  一臺服務器由一個團隊在維護,如果每個人都用 root 權限,那么刪庫跑路等亂搞系統的事情難免發生,應該對不同的用戶,設定不同的檔案訪問權限,這樣才可以防止進行一些誤操作,

1、檔案權限分析

(1)可以使用 ls - l 查看檔案權限,

【格式:】
    檔案型別、權限   目錄個數或者硬鏈接個數  用戶名  組名   檔案、目錄大小  最后修改日期   檔案、目錄名
     
【舉例:】
    drwxr-xr-x. 2 root root   53 3月  24 17:38 test
分析:
    drwxr-xr-x    指的是檔案型別、權限,由 10 個字符組成,
    其中
       第一個字符:  d 指的是  檔案型別(d 為目錄, - 為檔案, l 為鏈接,還有 b ,c, s等)
      第二 ~ 四字符:  rwx 指的是檔案擁有者的權限,即 User 的權限,r 表示可讀、w 表示可寫、x 表示可執行,
      第五 ~ 七字符:  r-x 指的是檔案所在組的權限,即 Group 的權限,
      第八 ~ 十字符:  r-x 指的是組外其他用戶對該檔案的權限,即 Other 的權限,         

 

 

(2)檔案權限詳細分析:

檔案權限分三個部分,每個部分分別由三個字符組成(r, w, x),
    rwx    r-x     r-x
        
    rwx 對于目錄來說
        r 表示可查看目錄(ls),
        w 表示可創建、洗掉、重命名目錄,
        x 表示可以進入該目錄,
        - 表示沒有該權限,
        
   rwx 對于檔案來說
        r 表示可查看、讀取檔案,
        w 表示可修改檔案,但不一定能洗掉(只有目錄有 w 權限后才能洗掉),
        x 表示可以執行該檔案,
        - 表示沒有該權限,
        
    可以通過數字表示檔案權限,
        r = 4w = 2, x = 1.
       rwx    r-x     r-x   可以表示為  7 5 5,
       
檔案權限三部分分別為 : 
    檔案所屬用戶的權限   
    檔案所屬組的權限(也即組內其他用戶的權限)  
    組外其他用戶對該檔案的權限
    
【舉例:】
    現有一個檔案夾 java,三個用戶 jack1, jack2, jack3,兩個組 testGroup1, testGroup2.
    其中 jack1,jack2 屬于 testGroup1 組,jack3 屬于testGroup2 組,
    
    修改 java 檔案夾用戶、用戶組,使檔案夾所屬用戶為 jack1,所屬用戶組為 testGroup1,
    修改 java 檔案夾權限為 750,即 rwx r-x ---
    則 jack1 擁有 rwx 權限,因為jack1 屬于檔案所屬用戶,
    jack2 擁有 r-x 權限,因為 jack2 不屬于檔案所屬用戶,但屬于 testGroup1 檔案組,
    jack3 擁有 --- 權限,因為 jack3 既不屬于檔案所屬用戶,也不屬于 testGroup1 檔案組,屬于其他用戶,
    
    [root@localhost test]# useradd -g testGroup1 jack1
    [root@localhost test]# useradd -g testGroup1 jack2
    [root@localhost test]# useradd -g testGroup2 jack3
    [root@localhost test]# mkdir java
    [root@localhost test]# chmod 750 java
    [root@localhost test]# chown jack1:testGroup1 java

 

 

2、chgrp(修改檔案、目錄所屬的用戶組)

  用于改變檔案、目錄所屬的用戶組,
  用戶組不存在時會報錯,

【格式:】
    chgrp [選項]  用戶組  檔案、目錄名
注:
    選項:
        -v   顯示執行程序,
        -R   用于遞回處理,將目錄下的子目錄、檔案一起處理,

【舉例:】
    [root@localhost test]# touch test.txt
    [root@localhost test]# groupadd testGroup1
    [root@localhost test]# chgrp -v testGroup1 test.txt
    [root@localhost test]# ll

 

 

3、chown(修改檔案、目錄所屬的用戶、用戶組)

  可以用于修改檔案、目錄所屬的用戶,也可以修改用戶組,

【格式:】
    chown [選項] 用戶 檔案名
    chown [選項] 用戶:用戶組 檔案名
注:
    選項:
        -v      顯示處理流程,
        -R      表示遞回處理子目錄、檔案,

【舉例:】
    [root@localhost test]# touch test.txt
    [root@localhost test]# chown lyh:testGroup1 test.txt 
    [root@localhost test]# chown root test.txt 
    [root@localhost test]# ll

 

 

4、chmod(修改檔案、目錄的權限)

  手動修改檔案、目錄的權限,

【格式一:(數字形式)】
    chmod [選項] 數字權限值 檔案
注:
    選項:
        -v      顯示處理流程,
        -R      表示遞回處理子目錄、檔案,
    
    數字權限值:
        rwx     4 + 2 + 1 = 7
       r-x     4 + 0 + 1 = 5
       r       4 + 0 + 0 = 4
       
【格式二:(字母形式)】
    chmod [選項] 字母[+-=]權限字串 檔案
注:
    選項:
        -v      顯示處理流程,
        -R      表示遞回處理子目錄、檔案,
    
    字母:
        u       指 user,檔案所有者
        g       指 group,檔案所在組
        o       指 other,其他組的用戶
        a       指 all,所有用戶
     
     [+-=]: 
        +        指增加權限
        -        指洗掉權限
        =        指設定權限
        
      權限字串:
          rwx      r-x     r      
        
【舉例:】
    [root@localhost test]# touch test.txt
    [root@localhost test]# chmod -v 711 test.txt
    [root@localhost test]# chmod -v u-x,go+r test.txt

 

 

5、umask(修改檔案、目錄默認權限)

  Linux 創建新的檔案、目錄時,會有一個默認的權限,使用 umask 可以獲取并修改,
    對于 root 用戶,用戶默認權限為 0022,
    對于 普通用戶,用戶默認權限為 0002,
    對于檔案,最大默認權限為 666,即 rw- rw- rw-,默認任何用戶不能執行檔案,
    對于目錄,最大默認權限為 777,即 rwx rwx rwx,
  而計算公式一般為
    檔案目錄默認權限 = (檔案、目錄最大的權限) - (用戶默認權限)
  注:
    此處 - 表示 移除,
  舉例:
    root 用戶,默認權限為 0022,即 --- -w- -w-,
    此時創建的檔案默認權限為 (rw- rw- rw-) - (--- -w- -w-) = rw- r-- r--
    此時創建的目錄默認權限為 (rwx rwx rwx) - (--- -w- -w-) = rwx r-x r-x

【格式:】
    unmask               用于獲取當前用戶的默認創建權限值
    unmask 權限值         用于設定當前用戶默認創建的權限值,重啟虛擬機失效,可在組態檔 /etc/profile 中修改,使其永久生效,
    
【舉例:】
    [root@localhost test]# umask

 

 

6、lsattr(查看檔案、目錄的隱藏屬性)

  用于顯示檔案、目錄的隱藏屬性,

【格式:】
    lsattr [選項] 檔案、目錄名
注:
    選項:
        -a         用于顯示當前目錄下的檔案、目錄的隱藏屬性,包括隱藏檔案,不顯示子目錄
        -d         用于顯示當前目錄的隱藏屬性,
        -R         用于顯示當前目錄的子目錄的隱藏屬性,
        
【舉例:】
    [root@localhost test]# lsattr -a java/
    [root@localhost test]# lsattr -d java/
    [root@localhost test]# lsattr -R java/

 

 

7、chattr(設定檔案、目錄的隱藏屬性)

  root 用戶使用,
  用于改變檔案的隱藏屬性,使檔案不可刪、不可修改等,

【格式:】
    chattr [+-=][選項] 檔案、目錄
注:
    +-=:
        +    指添加
        -    指移除
        =    指設定
    選項:
         i       作用于檔案,則檔案不可被修改,作用于目錄,目錄下不可增刪檔案,但可以修改檔案,
        a       作用于檔案,檔案只能追加資料,不能洗掉、修改資料,作用于目錄,只允許在目錄下創建、修改檔案,不能洗掉檔案,

【舉例:】
    [root@localhost test]# chattr +i test.txt
    [root@localhost test]# lsattr test.txt

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/119072.html

標籤:Linux

上一篇:【原創】(六)Linux行程調度-實時調度器

下一篇:wget命令之用戶密碼cookies斷點續傳指定型別整站下載

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more