快速上手Linux核心命令(十一):Linux用戶相關命令

来源:https://www.cnblogs.com/xiezhr/archive/2023/05/07/17343430.html
-Advertisement-
Play Games

(Linux用戶相關命令) 前言 上一篇中已經預告,我們這篇主要說一說Linux中用戶相關的命令。 可能各位小伙伴用的Windows會比較多一點,在Windows操作系統中,我們知道有Administrator用戶,Administrator 是Windows系統中的管理員用戶,有著最高的許可權。 用 ...


目錄

前言

上一篇中已經預告,我們這篇主要說一說Linux中用戶相關的命令。
可能各位小伙伴用的Windows會比較多一點,在Windows操作系統中,我們知道有Administrator用戶,Administrator 是Windows系統中的管理員用戶,有著最高的許可權。
用戶登錄Administrator後可以創建Gust等用戶,修改密碼並且給Gust用戶分配相應的許可權。
同樣的在Linux中,root就相當於Administrator用戶,具有著最高許可權。登錄root 用戶可以創建用戶、修改用戶密碼、給用戶分配角色等等。
下麵思維導圖中列出了我們需要掌握的19個命令
在這裡插入圖片描述

useradd 創建用戶

1、簡介

useradd 命令用戶創建新的用戶或者更改用戶信息

2、原理
在這裡插入圖片描述

3、語法格式

useradd [參數選項] [用戶名]
或
useradd -D [參數選項]

4、參數說明
① 不加選項-D參數

參數選項 參數說明
-c comment 加上備註信息,會保存到passwd備註欄中(第五列)
-d home_dir 新用戶每次登錄時使用的家目錄
-e expire_date 用戶終止日期
-f inactive_days 用戶過期幾日後永久停權
-g initial_group 指定用戶對應的用戶組。用戶組必須是系統現在已存在的名詞
-G group,[...] 定義此用戶為多個不同組的成員。每個用戶組使用逗號(,)分割
-m 用戶目錄如不存在則自動建立
-M 不建立家目錄,優先於、etc/login.defs文件設定。【創建虛擬用戶時一般不需要建立家目錄,部署應用服務時則需要創建虛擬用戶】
-n 預設情況下用戶的用戶組和用戶名稱是相同的。通過該參數,就不會生成與用戶名一樣的用戶組了
-s shell 用戶登錄後使用的Shell名稱。預設不填寫,系統會使用配置文件(/etc/default/useradd)中的預設值
-u uid 用戶ID值。這個值是唯一的

② 加-D選項參數

參數選項 參數說明
-b defalut_home 定義用戶家目錄的基本目錄,當用戶家目錄不存在時,此目錄將作為家目錄生效
-e defalut_expire_date 用戶賬號停止日期
-f defalut_inactive 用戶過期幾日後停權
-g defalut_group 新用戶起始用戶組名或ID。用戶組名必須為現已存在的名稱
-s default_shell 用戶登錄後使用Shell名稱

5、實踐操作
① 不加任何參數添加用戶

# 創建xiezhrspace 用戶
[root@xiezhr ~]# useradd xiezhrspace
# /home/ 路徑下新生成一個xiezhrspace 目錄。這個就是xiezhrspace用戶的家目錄
[root@xiezhr ~]# ls -ld /home/xiezhrspace
drwx------ 2 xiezhrspace xiezhrspace 4096 Aug 29 23:05 /home/xiezhrspace

在前面我們說過創建一個新用戶會在/etc/shadow、/etc/group 和/etc/gshsdow 文件中生成相關信息,具體是不是這樣的呢?
我們去看一看(●'◡'●)

# 在創建用戶時候沒有指定密碼,但是shadow還是生成了一行信息
[root@xiezhr ~]# grep -w xiezhrspace /etc/shadow
xiezhrspace:!!:19233:0:99999:7:::

# 創建用戶時,預設會創建與用戶名同名的用戶組
[root@xiezhr ~]# grep -w xiezhrspace /etc/group
xiezhrspace:x:1002:

#組密碼文件中也會增加一條信息
[root@xiezhr ~]# grep -w xiezhrspace /etc/gshadow
xiezhrspace:!::

② 創建一個組,並將新建用戶歸於這個組

# 創建一個gid 為808 的用戶組
[root@xiezhr ~]# groupadd -g 808 xiezhrgroup
# 創建一個uid為908的用戶xietest,並將用戶歸於xiezhrgroup組
[root@xiezhr ~]# useradd -g xiezhrgroup -u 908 xietest
# 查看用戶信息
[root@xiezhr ~]# id xietest
uid=908(xietest) gid=808(xiezhrgroup) groups=808(xiezhrgroup)

③ -M -s參數的使用(在生產環境中部署Nginx、MySQL等服務經常使用

# -M 不創建見目錄
# -s 指定登錄後的Shell
# /sbin/nologin  表示禁止登陸
[root@xiezhr ~]# useradd -M -s /sbin/nologin xiaofang
[root@xiezhr ~]# ls -ld /home/xiaofang
ls: cannot access /home/xiaofang: No such file or directory
[root@xiezhr ~]# grep -w xiaofang /etc/passwd
xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin

/etc/passwd 文件說明

xiaofang x 1003 1003 /home/xiaofang /sbin/nologin
用戶名稱 賬號密碼 賬號UID 賬號組GID 用戶說明 用戶家目錄 shell解釋器

usermod 修改用戶信息

1、簡介

usermod 命令用於修改系統已經存在的用戶賬號信息

2、語法格式

usermod [參數選項] [用戶名]

3、參數選項

參數 參數說明
-c comment 修改用戶password文件中用戶的說明欄,與useradd -c 功能相同
-d home_dir 修改用戶的家目錄 與useradd -d 功能相同
-e expire_date 修改用戶終止日期 與useradd -e 功能相同
-f inactive_days 修改用戶過期後幾日永久停權 與useradd -f 功能相同
-g initial_group 修改用戶對應的用戶組 與useradd -g 功能相同
-G group,[......] 修改此用戶為多個不同組的成員 與useradd -G功能相同
-m 用戶目錄如果不存在則自動建立
-M 不建立用戶家目錄。一般創建虛擬用戶時不建立家目錄。不是nginx、redis等服務是需要創建虛擬用戶
-n 預設情況下,用戶的用戶組與用戶的名稱相同
-s shell 修改用戶登入後使用的Shell名稱 與useradd -s 功能相同
-u uid 修改用戶的ID值 與useradd -u 功能相同
-a 追加用戶到用戶組 僅與-G參數連用
-l 修改用戶賬號名稱
-L 鎖定用戶密碼,不讓用戶改密碼
-U 解除密碼鎖定

4、實踐操作
將前面創建的xiezhr 用戶的用戶註釋修改為“測試用戶”,UID 修改為888,歸屬修改為用戶組root、xiezhr 成員,其Shell類型為/sbin/nologin,設置家目錄為/home/xiezhr 用戶過期時間為2022-10-02 ,過期後15天停權

[root@xiezhr ~]# usermod -u 888 -s /sbin/nologin -c "測試用戶" -G root -e "2022/10/02" -f 30 -d /home/xiezhr xiezhr
[root@xiezhr ~]# grep -w xiezhr /etc/passwd
xiezhr:x:888:1001:測試用戶:/home/xiezhr:/sbin/nologin
[root@xiezhr ~]# id xiezhr
uid=888(xiezhr) gid=1001(xiezhr) groups=1001(xiezhr),0(root)
[root@xiezhr ~]# grep -w xiezhr /etc/shadow
xiezhr:!!:19233:0:99999:7:30:19267:
[root@xiezhr ~]# chage -l xiezhr
Last password change                                    : Aug 29, 2022
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Oct 02, 2022
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

userdel 刪除用戶

1、簡介

userdel 命令用戶刪除指定的用戶及與該用戶相關的文件

2、語法格式

userdel [參屬選項] [用戶名]

3、參數選項

參數 參數說明
-f 強制刪除用戶,即使用戶當前登錄
-r 刪除用戶的同時,刪除與用戶相關的所有文件

4、實踐操作
① 不加參數刪除用戶

[root@xiezhr home]# tail -4 /etc/passwd
xiezhr:x:888:1001:測試用戶:/home/xiezhr:/sbin/nologin
xiezhrspace:x:1002:1002::/home/xiezhrspace:/bin/bash
xietest:x:908:808::/home/xietest:/bin/bash
xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin
[root@xiezhr home]# ll /home/xietest/ -ld
drwx------ 2 xietest xiezhrgroup 4096 Aug 29 23:16 /home/xietest/
[root@xiezhr home]# userdel xietest 
[root@xiezhr home]# grep -w xietest /etc/passwd
[root@xiezhr home]# ll /home/xietest/ -ld
drwx------ 2 908 xiezhrgroup 4096 Aug 29 23:16 /home/xietest/

② 加 -r 參數刪除用戶及加目錄

[root@xiezhr home]# ls -ld /home/xiezhr001/
drwx------ 2 xiezhr001 xiezhr001 4096 Sep  4 19:50 /home/xiezhr001/
[root@xiezhr home]# grep -w xiezhr001 /etc/passwd
xiezhr001:x:1005:1005::/home/xiezhr001:/bin/bash
[root@xiezhr home]# userdel -r xiezhr001 
[root@xiezhr home]# grep -w xiezhr001 /etc/passwd
[root@xiezhr home]# ls -ld /home/xiezhr001/
ls: cannot access /home/xiezhr001/: No such file or directory

註意

  • 在實際工作中,儘量不要使用userdel刪除用戶,只需要在/etc/passwd里註釋用戶就可以了。
  • 在使用-r參數一定要慎重,-r參數會將家目錄下所有文件和目錄都刪除,該過程是不可逆的

groupadd 創建新的用戶組

1、簡介

groupadd 用於創建新的用戶組。實際工作中一般也不用,因為useradd命令在創建用戶的時候也會創建一個同名的用戶組

2、語法格式

groupadd [參數選項] [用戶組]

3、參數選項

參數 參數說明
-g gid 指定用戶組的gid,除非接-o參數,否則ID值唯一且不為負,如果不指定-g參數,則gid從500開始
-f 新增一個賬戶,強制覆蓋一個已存在的組賬號

4、實踐操作
指定gid添加用戶組

# 添加GID為123的test1用戶組
[root@xiezhr ~]# groupadd -g 123 test
[root@xiezhr ~]# tail -l /etc/group
test:x:123:
[root@xiezhr ~]# tail -l /etc/gshadow
test:!::

groupdel 刪除用戶組

1、簡介

groupdel 命令用戶刪除指定的用戶組,一般不用

2、語法格式

groupdel [用戶組]

3、實踐操作
刪除test用戶組

[root@xiezhr ~]# groupdel test 
[root@xiezhr ~]# grep -w test /etc/group

passwd 修改用戶密碼

1、簡介

passwd 命令用於修改用戶密碼及密碼過期使勁啊等,工作中會經常用到。
普通用戶和超級用戶都可以運行passwd命令,普通用戶只能更改自身密碼,超級用戶root則可以設置或修改所有用戶的密碼

2、語法格式

passwd [參數選項] [用戶名]

3、參數選項

參數 參數說明
-k 為密碼已經過期的用戶更新有效期
-l 鎖定用戶,被鎖定的用戶不能登錄。僅root用戶有此許可權
--stdin 從標準輸入讀取密碼字元串
-u 解除對用戶的鎖定,僅root用戶有此許可權
-d 刪除用戶密碼,使密碼為空。僅root用戶有此許可權
-e 是用戶密碼立即過期,將用戶下次登錄時強制要求用戶修改密碼。僅root用戶有此許可權
-n 設置修改該密碼的最短天數 。僅root用戶有此許可權
-x 設置修改密碼的最長天數。僅root用戶有此許可權
-w 設置用戶在密碼過期前收到警告信息的天數。僅root用戶有此許可權
-i 設置密碼過期多少天後禁用賬戶。僅root用戶有此許可權
-S 顯示用戶密碼相關的簡單描述。僅root用戶有此許可權

4、實踐操作
① 修改用戶自身密碼

[root@xiezhr ~]# passwd                # 修改root用戶自身密碼
Changing password for user root.      
New password:                          # 輸入修改的密碼,系統不會顯示
Retype new password:                   # 再次輸入密碼
passwd: all authentication tokens updated successfully.       # 設置成功了

② 設置及修改普通用戶密碼

[root@xiezhr ~]# passwd xiezhr
Changing password for user xiezhr.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

③ 顯示賬號密碼信息

[root@xiezhr ~]# passwd -S xiezhr
xiezhr PS 2022-09-05 0 99999 7 30 (Password set, MD5 crypt.)

④一條命令修改密碼

[root@xiezhr ~]# echo "123456"|passwd --stdin xiezhr
Changing password for user xiezhr.
passwd: all authentication tokens updated successfully.

⑤ 設置xiezhr用戶7天內不能更改密碼,60天以後必須修改密碼,過期10天通知用戶,過期30天後禁止用戶登錄

[root@xiezhr ~]# passwd -n 7 -x 60 -w 10 -i 30 xiezhr
Adjusting aging data for user xiezhr.
passwd: Success

chage 修改用戶密碼有效期

1、簡介

chage 命令用於查看或修改用戶密碼有效期

2、語法格式

chage [參數選項] [用戶名]

3 、參數選項

參數 參數說明
-d 設置上一次密碼更改的日期
-E 賬號過期的日期。日期格式:YYYY-MM-DD
-I 設置密碼過期多少天後禁用賬戶
-l 顯示賬號有效期信息
-m 密碼可更改的最小天數。預設為0,即任何時候都可以修改
-M 密碼保持有效的最大天數
-W 密碼到期前,提前收到警告信息天數
4、實踐操作
設置xiezhr用戶7天內不能更改密碼,60天以後必須修改密碼,過期10天通知xiezhr 用戶,過期30天後禁止用戶登錄
[root@xiezhr ~]# chage -m 7 -M 60 -W 10 -I 30 xiezhr

批量更新用戶密碼

1、簡介

chpasswd 命令用於從標準輸入中讀取一定格式的用戶名、密碼來批量更新用戶的密碼,格式為“用戶名:密碼“

2、語法格式

chpasswd [參數選項]

3、參數選項

參數 參數說明
-c 預設格式是明文密碼,使用-e參數則需要加密的密碼
4、實踐操作
批量修改密碼
[root@xiezhr ~]# chpasswd   # 輸入chpasswd後,回車
xiezhr:123456               # 格式為用戶名:密碼
testxiezhr:123456           # 一行一個
	                        # 新行按Ctrl+D 結束

su 切換用戶

1、簡介

su 命令用戶將當前用戶切換到指定用戶或以指定用戶的身份執行命令或程式

2、語法格式

su [參數選項] [用戶名]

3、參數選項

參數 參數說明
-, -l, --login 切換用戶的同時,將用戶的家目錄/系統環境等重新按切換後的用戶初始化
-c 向Shell 傳遞單個命令

4、實踐操作
① 切換到普通用戶

# 切換到testxiezhr用戶,不用輸入密碼即可切換
[root@xiezhr ~]# su - testxiezhr

②切換到root用戶

# 雖然已經切換到了root用戶,但是家目錄還是testxiezhr。環境變數還是testxiezhr用戶的,**這種切換問題很嚴重**
[testxiezhr@xiezhr ~]$ su root
Password:                          # 普通用戶切換到root用戶需要輸入密碼
[root@xiezhr testxiezhr]# pwd
/home/testxiezhr
# 正確切換方式
[root@xiezhr testxiezhr]# exit
exit
[testxiezhr@xiezhr ~]$ su - root
Password:                                               # 需要輸入密碼
Last login: Mon Sep  5 21:13:39 CST 2022 on pts/3
[root@xiezhr ~]# pwd
/root

註意:
[x] "su 用戶名" 雖然能切換到對應用戶,但切換後的環境變數信息還是切換之前用戶的
[√] ** ”su - 用戶名“ 不但可以切換到對應用戶,還能將環境變數一起切換**

visudo 編輯sudoers文件

1、簡介

visudo命令是專門用來編輯 /etc/sudoers這個文件的,同時提供語法檢查等功能。 /etc/sudoers文件是sudo命令的配置文件。sudo命令在下一個命令你會看到。而為什麼不用vi/vim來直接編輯/etc/sudoers文件呢? 因為如果使用vim 編輯sudoer文件時沒有語法校驗,編輯錯了會導致授權無法生效

2、語法格式

visudo [參數選項]

3、參數選項

參數 參數說明
-c 手動執行語法檢查

4、實踐操作
①將xiezhr用戶提權為root身份,testxiezhr 用戶具有添加和刪除用戶的許可權

# 以下命令相當於 vim /etc/sudoers    進行編輯sudoers文件
[root@xiezhr ~]# visudo

#在/etc/sudoers 文件中添加如下許可權
xiezhr ALL=(ALL)        ALL                                     # 此行時將xiezhr用戶提權為root身份
testxiezhr ALL=(ALL)     /usr/sbin/useradd, /usr/sbin/userdel   # 授予可以以root身份添加和刪除用戶許可權

上面操作說明

待授權的用戶或組 機器=(授權角色) 可以執行的命令
testxiezhr ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel

② 通過-c參數校驗語法是否正確
通過① 我們已經對xiezhr用戶和testxiezhr用戶做了不同的授權,那麼怎麼判斷授權的語法是否正確呢

[root@xiezhr ~]# visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/90-cloud-init-users: parsed OK

直接root用戶下操作不就可以了麽?為什麼要通過sudo授權呢?
我們希望一個用戶具有root許可權去幹活,但是又不希望這個用戶威脅系統安全。

sudo 以另一個用戶身份執行命令

1、簡介

sudo 命令可以讓普通用戶擁有超級用戶的許可權去執行指定的命令或程式。普通用戶不需要知道root密碼就可以得到授權,授權我們在上面已經說過

2、語法格式

sudo [參數選項]

3、參數選項

參數 參數說明
-l 列出當前用戶可以執行的命令。只有在sudoers 文件里的用戶才能使用該選項
-h 列出使用方法,並退出
-H 將環境變數中的HOME(家目錄)指定為要變更身份的使用者家目錄
-V 顯示版本信息,並退出
-v sudo在第一次執行時,或者在N分鐘內沒有執行,則會詢問密碼,參數用於重新做一次確認
-u 以指定用戶的身份執行命令
-k 清除時間戳上的實踐,下次再次使用sudo時要再此輸入密碼
-K 與k類似,同時還刪除時間戳文件
-b 在後臺執行指定命令
-p 更改詢問密碼時的提示語
-e 不執行命令,而是修改文件,相當於sudo edit

4、sudo 工作原理
sudo工作原理

5、實踐操作
創建一個testuser 用戶,並對testuser進行sudo授權管理。授權完成後sudo操作

# 1、創建testuser 用戶
[root@xiezhr ~]# useradd testuser
# 2、將testuser 用戶密碼修改為******
[root@xiezhr ~]# passwd testuser
Changing password for user testuser.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
# 3、執行以下命令後添加 `testuser ALL=(ALL)        ALL  ` 對testuser用戶進行sudo授權 參照下圖
[root@xiezhr ~]# visudo
testuser ALL=(ALL)        ALL
# 4、登錄testuser 用戶,查看 當前用戶被授予的sudo許可權集合
[testuser@xiezhr ~]$ sudo -l
Matching Defaults entries for testuser on xiezhr:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User testuser may run the following commands on xiezhr:
    (ALL) ALL

# 5、登錄testuser用戶,執行ls /root 發現時沒有許可權的
[testuser@xiezhr ~]$ ls /root
ls: cannot open directory /root: Permission denied
# 6、當加上sudo 後 再執行ls /root (第一次需要輸入testuser用戶密碼,上面原理圖介紹過),發現可以訪問/root 路徑了,此時testuser 具有了
[testuser@xiezhr ~]$ sudo ls /root

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for testuser: 
bdcdb84c414c2493e5856597b89be9f0.gif

6、 sudo 小結

  • 對用戶進行sudo授權後,所有用戶執行命令 格式為 sudo + [命令]
  • sudo - l 命令可以查看當前用戶被授予的sudo許可權集合
  • 當我們在授權用戶下執行sudo時,如果需要輸入密碼。此時輸入密碼是當前用戶的密碼

id 顯示用戶與用戶組信息

1、簡介

id 命令可以顯示指定用戶的ID(UID)和組ID(GID)等有效信息

2、語法格式

id [參數選項] [用戶名]

3、參數選項

參數 參數說明
-g 顯示用戶所屬群組的ID
-G 顯示用戶所屬附加群組的ID
-n 顯示用戶,所屬群組或附加群組的名稱
-r 顯示實際ID
-u 顯示用戶ID

4、實踐操作
顯示用戶的UID和GID

# id 後不跟用戶,預設時當前登錄用戶
[root@xiezhr home]# id
uid=0(root) gid=0(root) groups=0(root)
# 顯示指定用戶信息
[root@xiezhr home]# id testxiezhr
uid=1006(testxiezhr) gid=1006(testxiezhr) groups=1006(testxiezhr)
# 顯示當前登錄用戶名稱
[root@xiezhr home]# id -gn
root
# 顯示當前登錄用戶GID
[root@xiezhr home]# id -g
0
# 顯示當前登錄用戶UID
[root@xiezhr home]# id -u
0

w 顯示已登錄用戶信息

1、簡介

w命令可以顯示已經登錄系統的用戶,並顯示用戶正在執行的命令

2、語法格式

w [參數選項] [用戶]

3、參數選項

參數 參數說明
-h 不顯示前兩行標題信息
-u 忽略執行程式的名稱以及CPU時間信息
-s 使用短輸出格式

4、實踐操作
① 顯示已登錄用戶信息

[testuser@xiezhr ~]$ w
 21:21:42 up 609 days, 7 min,  4 users,  load average: 2.66, 2.99, 3.17
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    39.130.60.62     20:33   48:22   0.02s  0.02s -bash
root     pts/1    39.130.60.62     20:55   13:10   0.07s  0.02s -bash
root     pts/2    39.130.60.62     21:04   16:54   0.02s  0.02s -bash
root     pts/3    39.130.60.62     21:21    6.00s  0.04s  0.00s w

w命令執行結果說明

  • 第一行依次顯示當前的系統時間、系統從啟動到現在已經運行的時間、登錄到系統中的用戶數和系統平均負載
列名 含義
USER 登錄系統的用戶
TTY 用戶使用的TTY名稱
FROM 用戶從哪裡登錄進來,一般顯示遠程登錄主機的IP地址或主機名
LOGIN@ 用戶登錄的日期和時間
IDLE 顯示終端空閑的時間
JCPU 表示該終端上的所有進程及子進程使用系統的總時間
PCPU 當前活動進程使用的系統時間
WHAT 當前用戶執行的進程名稱和選項

② -h 參數

[root@xiezhr ~]# w -h
root     pts/0    39.130.60.62     20:33    1:04m  0.02s  0.02s -bash
root     pts/1    39.130.60.62     20:55   28:55   0.07s  0.02s -bash
root     pts/2    39.130.60.62     21:04   32:39   0.02s  0.02s -bash
root     pts/3    39.130.60.62     21:21   15:51   0.04s  0.02s -bash
root     pts/4    39.130.60.62     21:37    3.00s  0.02s  0.00s w -h

顯示已登錄用戶信息

1、簡介

who 命令用於顯示已經登錄系統的用戶,以及系統的啟動時間等信息

2、語法格式

who [參數選項]

3、參數選項

參數 參數說明
-a 顯示所有信息
-b 顯示系統啟動時間
-d 顯示已結束的進程
-H 顯示標題,預設是不顯示的
-l 顯示登錄進程

4、實踐操作
① 不帶參數顯示所有信息

[root@xiezhr ~]# who
root     pts/0        2022-09-11 20:33 (39.130.60.62)
root     pts/1        2022-09-11 20:55 (39.130.60.62)
root     pts/2        2022-09-11 21:04 (39.130.60.62)
root     pts/3        2022-09-11 21:21 (39.130.60.62)
root     pts/4        2022-09-11 21:37 (39.130.60.62)
root     pts/5        2022-09-11 22:19 (39.130.60.62)

② 顯示系統啟動時間

[root@xiezhr ~]# who -b
         system boot  2021-01-10 21:14

③ 顯示已結束的進程

[root@xiezhr ~]# who -d

④ 顯示標題

[root@xiezhr ~]# who -H
NAME     LINE         TIME             COMMENT
root     pts/0        2022-09-11 20:33 (39.130.60.62)
root     pts/1        2022-09-11 20:55 (39.130.60.62)
root     pts/2        2022-09-11 21:04 (39.130.60.62)
root     pts/3        2022-09-11 21:21 (39.130.60.62)
root     pts/4        2022-09-11 21:37 (39.130.60.62)
root     pts/5        2022-09-11 22:19 (39.130.60.62)

⑤ 顯示帶標題的所有信息

 [root@xiezhr ~]# who -H -a
NAME       LINE         TIME             IDLE          PID COMMENT  EXIT
           system boot  2021-01-10 21:14
           run-level 3  2021-01-10 21:14
LOGIN      ttyS0        2021-01-10 21:14              1009 id=tyS0
LOGIN      tty1         2021-01-10 21:14              1008 id=tty1
root     + pts/0        2022-09-11 20:33 01:50       23396 (39.130.60.62)
root     + pts/1        2022-09-11 20:55 01:15       27638 (39.130.60.62)
root     + pts/2        2022-09-11 21:04 01:19       29660 (39.130.60.62)
root     + pts/3        2022-09-11 21:21 01:02         405 (39.130.60.62)
root     + pts/4        2022-09-11 21:37 00:46        3587 (39.130.60.62)
root     + pts/5        2022-09-11 22:19   .         11675 (39.130.60.62)

以上顯示的各項含義

名稱 [狀態] 線路 時間 [活動] [進程標識] (主機名)

列名 說明
NAME 名稱: 用戶登錄名
狀態:表示線路對用戶是否都是可寫的
LINE 線路: pts/0 pts/1等等
TIME 時間:用戶登錄系統的時間
IDLE 活動:某用戶最後一次活動到現在的時間;. 表示一分鐘內線路活動
PID 進程表示:用戶進程id
COMMENT 主機名

users 顯示已登錄用戶

1、簡介

users 命令用於顯示已經登錄的用戶。一個用戶登錄多次則會顯示多次

2、實踐操作

[root@xiezhr ~]# users
root root root root root root

whoami 顯示當前登錄的用戶

1、簡介

whoami 命令用於顯示當前登錄的用戶。是英文who am i 的簡寫

2、實踐操作

[root@xiezhr ~]# whoami
root
[root@xiezhr ~]# su - testuser
Last login: Sun Sep 11 21:21:40 CST 2022 on pts/3
[testuser@xiezhr ~]$ whoami
testuser

last 顯示用戶登錄列表

1、簡介

last命令用於顯示最近登錄的用戶列表

2、語法格式

last [參數選項]

3、參數選項

參數 參數說明
- num 指定顯示結果的行數

4、實踐操作
① 不加參數顯示

[root@xiezhr ~]# last
root     pts/6        39.130.60.62     Sun Sep 11 22:42   still logged in   
root     pts/0        39.130.60.62     Sun Sep 11 22:37   still logged in 
root     pts/1        39.130.60.29     Sun Nov 29 09:09 - down   (01:02)    
root     pts/0        39.130.60.29     Sun Nov 29 08:49 - down   (01:23)    
root     pts/0        112.112.17.172   Fri Nov  6 12:50 - 15:45  (02:55)    

wtmp begins Fri Nov  6 12:50:41 2020

② -num 參數,顯示指定顯示行數

[root@xiezhr ~]# last -5
root     pts/6        39.130.60.62     Sun Sep 11 22:42   still logged in   
root     pts/0        39.130.60.62     Sun Sep 11 22:37   still logged in   
root     pts/5        39.130.60.62     Sun Sep 11 22:19   still logged in   
root     pts/4        39.130.60.62     Sun Sep 11 21:37   still logged in   
root     pts/3        39.130.60.62     Sun Sep 11 21:21   still logged in   

wtmp begins Fri Nov  6 12:50:41 2020

lastb 顯示用戶登錄失敗的記錄

1、簡介

lastb命令用於顯示用戶登錄失敗的記錄

2、語法格式

lastb [參數選項]

3、參數說明

參數 參數說明
-num 指定顯示結果的行數
4、實踐操作
[root@xiezhr ~]# lastb -5
         ssh:notty    159.75.56.103    Sun Sep 11 21:18 - 21:18  (00:00)    
ltecl4r0 ssh:notty    45.141.84.126    Sun Sep 11 20:33 - 20:33  (00:00)    
ltecl4r0 ssh:notty    45.141.84.126    Sun Sep 11 20:33 - 20:33  (00:00)    
1admin0  ssh:notty    45.141.84.126    Sun Sep 11 20:32 - 20:32  (00:00)    
1admin0  ssh:notty    45.141.84.126    Sun Sep 11 20:32 - 20:32  (00:00)    

btmp begins Thu Sep  1 03:31:03 2022

lastlog 顯示所有用戶最近登錄記錄

1、簡介

lastlog 命令用於顯示用戶最近登錄的記錄,便於查看系統是否異常

2、實踐操作

[root@xiezhr ~]# lastlog
Username         Port     From             Latest
root             pts/6                     Sun Sep 11 22:45:57 +0800 2022
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
test                                       **Never logged in**
testxiezhr       pts/0                     Thu Sep  8 21:53:58 +0800 2022
testuser         pts/6                     Sun Sep 11 22:42:24 +0800 2022

註意:
當有從不登錄的用戶突然登錄系統了,就要考慮是不是有用戶入侵系統了

這期內容就到這,下期根據思維導圖就到Linux磁碟與文件系統相關命令的使用了。
涉及到的命令有: fdisk、df、mount、dd、unmount、sync、等等
敬請期待哦(●’◡’●)

專欄目錄:快速上手Linux核心命令專欄目錄

上一篇:快速上手Linux核心命令(十一):Linux安裝軟體
下一篇:快速上手Linux核心命令(十二):磁碟與文件系統相關命令(博主正在玩命更新中)


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

-Advertisement-
Play Games
更多相關文章
  • MATLAB 備忘清單 MATLAB是美國MathWorks公司出品的商業數學軟體,用於數據分析、無線通信、深度學習、圖像處理與電腦視覺、信號處理、量化金融與風險管理、機器人,控制系統等領域。 MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室),軟體主要面對科 ...
  • 一、項目簡介 隨著互聯網迅速發展,人們的生活已經越來越離不開互聯網,人們足不出戶就可以工作、買賣、學習等。對於在校學生,通過網路教育不僅可以隨時進行網路學習,也可以根據學習的情況自我檢測,有利於學生高效、快捷地掌握所學的知識。 本系統預設計的基於網路的學生自測系統將實現多種用戶(包括學生、教師)同時 ...
  • 重要聲明-針對攻擊者 網站pljzy.top被某人攻擊 ZY知識庫 首先 說我網站抄襲,文章抄襲,ok,你列舉一下我有那幾篇文章是抄的別人的?自己眼睛不看的是吧,但凡我參考的別人的文章我都會放原文地址。 先放幾張圖片,真搞不懂我抄誰了,下麵全是我自己電腦的md文件,我抄誰的了?全是我自己做的筆記。 ...
  • 概述 預處理器指令 指導編譯器在實際編譯之前對信息進行預處理。 所有預處理指令以#開始。並由於預處理器指令不是語句,所以沒有分號作為結尾。 一個預處理器指令,一定是這一行的唯一指令。 預處理指令列表 |預處理器指令|描述| | | | |#define|將其後的一系列 成為符號| |undef|取消 ...
  • 最近有群友問,.NET有哪些微服務框架?.NET的微服務框架還真不多,一般企業都會自己搭建微服務框架,或者基於其它框架搭建微服務(比如abp)。本文將介紹幾種微服務框架,供大家學習參考。 一、Service Fabric 簡介: Service Fabric 是一個微服務框架,它由微軟開發並托管在 ...
  • 在Winform的分頁控制項裡面,我們提供了很多豐富的功能,如常規分頁,中文轉義、導出Excel、導出PDF等,基於DevExpress的樣式的分頁控制項,我們在其上面做了不少封裝,以便更好的使用,其中就包括集成保存用戶列表顯示欄位及寬度調整設置。本篇隨筆介紹這個實現的過程,通過在當前程式中序列化方式存... ...
  • 哈嘍大家好,我是鹹魚 不知道小伙伴們在寫 Bash 腳本或者說看別人的 Bash 腳本的時候有沒有註意過腳本的第一行 #!/bin/bash Bash 腳本的第一行往往以 #! 開頭,這一行稱作 shebang 行 在 類 UNIX 系統中,shebang 行用來指定腳本的解釋器路徑,通常出現在第一 ...
  • 1.什麼是信號: 信號的種類很多,不同的控制項觸發不同的特定信號 例如button的信號:(在父類中可以找到)信號與槽同時是通過關聯使用的。 2.什麼是槽? 槽:用於關聯某一個控制項的信號,信號觸發的時候將會執行槽函數(槽函數的關聯分為手動關聯和自動關聯) 槽的自動關聯; 在前面板選中對應的控制項 右擊- ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...