主頁 > 作業系統 > 快速上手Linux核心命令(十一):Linux用戶相關命令

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

2023-05-07 09:34:12 作業系統

目錄
  • 前言
  • useradd 創建用戶
  • usermod 修改用戶資訊
  • userdel 洗掉用戶
  • groupadd 創建新的用戶組
  • groupdel 洗掉用戶組
  • passwd 修改用戶密碼
  • chage 修改用戶密碼有效期
  • 批量更新用戶密碼
  • su 切換用戶
  • visudo 編輯sudoers檔案
  • sudo 以另一個用戶身份執行命令
  • id 顯示用戶與用戶組資訊
  • w 顯示已登錄用戶資訊
  • 顯示已登錄用戶資訊
  • users 顯示已登錄用戶
  • whoami 顯示當前登錄的用戶
  • last 顯示用戶登錄串列
  • lastb 顯示用戶登錄失敗的記錄
  • lastlog 顯示所有用戶最近登錄記錄

前言

上一篇中已經預告,我們這篇主要說一說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核心命令(十二):磁盤與檔案系統相關命令(博主正在玩命更新中)

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

標籤:Linux

上一篇:Linux 記憶體管理 pt.2

下一篇:返回列表

標籤雲
其他(158603) Python(38118) JavaScript(25404) Java(18023) C(15222) 區塊鏈(8262) C#(7972) AI(7469) 爪哇(7425) MySQL(7171) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5336) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4566) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1965) Web開發(1951) HtmlCss(1932) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1874) .NETCore(1857) 谷歌表格(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
最新发布
  • 快速上手Linux核心命令(十一):Linux用戶相關命令

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

    uj5u.com 2023-05-07 09:34:12 more
  • Linux 記憶體管理 pt.2

    哈嘍大家好我是咸魚,在《Linux 記憶體管理 pt.1》中我們學習了什么是物理記憶體、虛擬記憶體,了解了記憶體映射、缺頁例外等內容 那么今天我們來接著學習 Linux 記憶體管理中的多級頁表和大頁 多級頁表&大頁 在《Linux 記憶體管理 pt.1》中我們知道了內核為每個行程都維護了一張頁表,這張頁表用來記 ......

    uj5u.com 2023-05-05 09:49:41 more
  • Linux 記憶體管理 pt.2

    哈嘍大家好我是咸魚,在《Linux 記憶體管理 pt.1》中我們學習了什么是物理記憶體、虛擬記憶體,了解了記憶體映射、缺頁例外等內容 那么今天我們來接著學習 Linux 記憶體管理中的多級頁表和大頁 多級頁表&大頁 在《Linux 記憶體管理 pt.1》中我們知道了內核為每個行程都維護了一張頁表,這張頁表用來記 ......

    uj5u.com 2023-05-05 09:48:50 more
  • 聊聊開關和CPU之間故事

    作者:小牛呼嚕嚕 | https://xiaoniuhululu.github.io 大家好,我是呼嚕嚕,在先前的一篇文章計算機中數值和字串怎么用二進制表示?中,我們知道了計算機為什么會采用 0 和 1 組成的二進制,來表示所有的資訊,比如機器指令、數字、字串、聲音、圖片、視頻等等。 我們本篇文 ......

    uj5u.com 2023-04-28 13:04:16 more
  • 快速上手Linux核心命令(九):檔案備份與壓縮

    (檔案備份與壓縮) 這期呢主要說一說Linux中檔案備份與壓縮命令,一共6個命令。這6個命令都是平常作業中非常非常常用的。 tar 打包備份 1、簡介 tar 可以將多個檔案壓縮打包、壓縮。是作業中經常用到的命令 2、語法格式 tar [引數選項] [檔案或目錄] 3、引數說明 | 引數 | 引數說 ......

    uj5u.com 2023-04-28 13:03:24 more
  • 聊聊開關和CPU之間故事

    作者:小牛呼嚕嚕 | https://xiaoniuhululu.github.io 大家好,我是呼嚕嚕,在先前的一篇文章計算機中數值和字串怎么用二進制表示?中,我們知道了計算機為什么會采用 0 和 1 組成的二進制,來表示所有的資訊,比如機器指令、數字、字串、聲音、圖片、視頻等等。 我們本篇文 ......

    uj5u.com 2023-04-28 12:50:59 more
  • 快速上手Linux核心命令(九):檔案備份與壓縮

    (檔案備份與壓縮) 這期呢主要說一說Linux中檔案備份與壓縮命令,一共6個命令。這6個命令都是平常作業中非常非常常用的。 tar 打包備份 1、簡介 tar 可以將多個檔案壓縮打包、壓縮。是作業中經常用到的命令 2、語法格式 tar [引數選項] [檔案或目錄] 3、引數說明 | 引數 | 引數說 ......

    uj5u.com 2023-04-28 12:38:53 more
  • 明解STM32—GPIO應用設計篇之API函式及配置使用技巧

    一、前言 本篇開始對STM32的GPIO在實際開發設計中的使用配置和技巧進行探討,可以先去回顧下之前介紹的GPIO的相關理論基礎知識包括基本結構,作業模式和暫存器原理。 了解過STM32的GPIO相關的理論知識,這樣在應用GPIO開發程序中,能更好的理解GPIO的特點,應用起來會更加的得心應手。 后 ......

    uj5u.com 2023-04-27 10:02:09 more
  • Linux查看各用戶硬碟占用大小

    Linux查看各用戶硬碟占用大小 在Linux中,如果要統計各用戶占用硬碟的大小,可以執行如下的命令 du -sh /home/* 這條命令會以K、M、G等單位輸出 /home 下各用戶目錄占用硬碟的總大小,例如下面這樣: [root@localhost ~]# du -sh /home/* 24K ......

    uj5u.com 2023-04-27 10:01:31 more
  • 快速上手Linux核心命令(六):Linux的文本編輯器vi和vim

    @(Linux的文本編輯器) 前言 上一篇中已經預告,我們這篇主要說Linux中vi/vim 編輯器。它是我們使用Linux系統不可缺少的工具,學會了,你就可以在Linux世界里暢通無阻,學廢了,常用操作你也會了,也是夠用了,O(∩_∩)O 簡介 vi是Linux系統下標準編輯器,就相當于Windo ......

    uj5u.com 2023-04-27 10:00:55 more