mycpen

Mycpen

记录学习历程与受益知识
github
telegram
bilibili

15_Linux基礎-使用者與群組2

一。練習#

1.1 如何知道一個用戶是否在 linux 系統裡存在?#

1、如何知道一個用戶是否在linux系統裡存在?
cat /etc/passwd
或者 id命令

1.2 如何禁用一個用戶登錄 linux 系統#

2、如何禁用一個用戶登錄linux系統
使用usermod -L 鎖定用戶
usermod -s /sbin/nologin root

1.3 如何知道一個用戶屬於哪些組#

3、如何知道一個用戶屬於哪些組
使用id命令查看
使用groups命令查看
查看/etc/group裡用戶所屬的組

1.4 如何知道哪些用戶現在已經登錄在 linux 裡? 哪些用戶曾經登錄過 linux 系統?#

4、如何知道哪些用戶現在已經登錄在linux裡? 哪些用戶曾經登錄過linux系統?
使用w命令查看用戶登錄情況
使用last命令查看曾經登錄過的用戶
示例:w  who  看當前登錄的用戶
#注:w看的更詳細些
[root@localhost ~]# w
 09:37:40 up  8:32,  5 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      四09    6:28   0.09s  0.09s -bash
root     pts/3    192.168.136.1    09:29    4.00s  0.05s  0.03s w
[root@localhost ~]# who
root     tty1         2020-11-05 09:31
root     pts/3        2020-11-06 09:29 (192.168.136.1)

1.5 如何給用戶重新設置密碼#

5、如何給用戶重新設置密碼
passwd

1.6 linux 的 root 密碼忘記了怎麼辦#

6、linux的root密碼忘記了怎麼辦
	  進入單用戶模式
      1、開機,按任意鍵停住啟動界面,然後選擇對應的內核,按 e 進行編輯
      2、找到linux16這一行,在最後輸入 rd.break
      3、按 Ctrl-x 啟動,然後按照以下操作破解 root 密碼
示例:忘記root用戶密碼怎麼辦?
答:進入單用戶模式

https://blog.csdn.net/qq_37960324/article/details/84589565
https://www.cnblogs.com/jsjrj01/p/10301603.htm

1.7 如何將已經登錄在系統裡的用戶踢出去?並且防止它再次登錄?#

7、如何將已經登錄在系統裡的用戶踢出去?並且防止它再次登錄?
1.踢出可疑的root登錄用戶,馬上修改密碼 
2.sshd---》/etc/hosts.deny hosts.allow -->ip 
3./etc/ssh/sshd_config -->DenyUsers -->用戶

1.8 怎麼把普通用戶變成 root 用戶#

8、怎麼把普通用戶變成root用戶
1.(不推薦)修改 /etc/passwd 文件,找到要修改的普通用戶,把用戶ID修改為 0
2.sudo 權限

1.9#

·  創建目錄/tech/cali和/tech/sanle,分別用於保存個項目組中用戶帳號的宿主目錄;
·  為兩個項目組添加組帳號cali、sanle,GID號分別為1001、1002;為技術部添加組帳號tech,GID號為200;
·  添加2個用戶,分別為b1、b2,要求他們的基本組是cali,附加組是tech,宿主目錄均使用/tech/cali目錄中與帳號同名的文件夾(例如b1用戶的宿主目錄/tech/cali/b1);其中b2用戶帳號設置2012-12-31日後失效;
·  添加2個用戶,分別為a1、a2,要求他們的基本組是sanle,附加組是tech;宿主目錄均使用/tech/sanle目錄中與帳號同名的文件夾(例如a1用戶的宿主目錄/tech/cali/a1) ;其中a2用戶帳號登錄的shell為/bin/ksh
所有新建用戶密碼都是123456;

1、mkdir -p  /tech/cali /tech/sanle
2、groupadd -g 1001 cali  
     groupadd -g 1002 sanle
     groupadd -g 200 tech
3、useradd -g cali -G tech -d /tech/cali/b1 b1
     useradd -g cali -G tech -d /tech/cali/b2 -e 2020-11-6 b2
4、useradd -g sanle -G tech -d /tech/sanle/a100 a1
     useradd -g sable -G tech -d /tech/sanle/a200 -s /bin/ksh a2
5、echo 123456|passwd a1 --stdin
     echo 123456|passwd a2 --stdin
----------------------------------------------------------------
示例:過期賬戶不能登錄
-----------------------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# useradd -e "2012-11-22" sanle3	# 注:過期賬戶不能登錄
[root@sanchuang-linux ~]# su - sanle3						# 注:可以切換,不能登錄
[sanle3@sanchuang-linux ~]$ 

二. /etc/group 文件#

/etc/group 文件

#注:/etc 存放配置文件的地方

/etc/group 文件 # 注:可以查看哪些賬戶的次要組是

組帳號:

  • 主要組 (私有組)
  • 次要組 (附屬組)

GID:(Group Identify,組標識號)

Linux 組帳號

  • 主要組 (私有組)

與用戶相關的默認組,在 /etc/passwd 文件的第四個字段定義

  • 次要組 (附屬組)

用戶可以同時屬於其他的組,在 /etc/group 文件的第四個字段定義

用戶的主要組的名稱和GID相關

示例
---------------------------------------------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# useradd -g sanchuang4 -G sanchuang5 sanchuang10
[root@sanchuang-linux ~]# useradd -g sanchuang4 -G sanchuang5 sanchuang12
[root@sanchuang-linux ~]# useradd -g sanchuang5 -G sanchuang4 sanchuang13
[root@sanchuang-linux ~]# cat /etc/group
sanchuang4:x:1100:sanchuang13					# 注:只顯示次要組的組成員列表
sanchuang5:x:1200:sanchuang10,sanchuang12		# 注:只顯示次要組的組成員列表
#注:組賬號名:sanchuang5;GID:1200;組成員列表sanchuang10,sanchuang12
#注:只顯示次要組的組成員列表
===========================================================================================================
示例:怎樣查看一個組裡有哪些用戶
---------------------------------------------------------------------------------------------------------------------------------
#注:聯繫2個文件 /etc/passwd /etc/group
[root@sanchuang-linux ~]# awk -F: '/sanchuang5/{print $3,$4}' /etc/group	
1200 sanchuang10,sanchuang12				# 注:模糊匹配,匹配包含sanchuang5的行
[root@sanchuang-linux ~]# awk -F: '$1=="sanchuang5"{print $3,$4}' /etc/group	# 注:加引號
1200 sanchuang10,sanchuang12				# 注:精確匹配
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# vim group_member.sh
#!/bin/bash
group_name=$1           #注:組名作為參數
#/etc/group獲取它的GID和成員列表
group_msg=`awk -F: -v group_awk=$group_name '$1==group_awk{print $3,$4}' /etc/group`
echo $group_msg #注:-v選項 向awk傳遞shell變量 指定外部$group_name賦給awk內部變量 运行的时候用自定义的变量
[root@sanchuang-linux ~]# sh group_member.sh sanchuang5
1200 sanchuang10,sanchuang12
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# a='1200 sanchuang10,sanchuang12'
[root@sanchuang-linux ~]# s1=(a b c d e)
[root@sanchuang-linux ~]# s2=($a)			# 注:轉化為數組
[root@sanchuang-linux ~]# echo $s2
1200
[root@sanchuang-linux ~]# echo $s2[@]
1200[@]
[root@sanchuang-linux ~]# echo ${s2[@]}		# 注:獲取數組裡全部元素
1200 sanchuang10,sanchuang12
[root@sanchuang-linux ~]# echo ${#s2[@]}	# 注:獲取數組長度
2
[root@sanchuang-linux ~]# echo ${#s2}		# 注:獲取第一個元素 字符的長度
4
[root@sanchuang-linux ~]# echo ${s2[0]}		# 注:獲取數組裡第一個元素
1200
[root@sanchuang-linux ~]# echo ${s2[1]}		# 注:獲取數組裡第二個元素
sanchuang10,sanchuang12
-----------------------------------------
group_name=$1           #注:組名作為參數
#/etc/group獲取它的GID和成員列表
group_msg=`awk -F: -v group_awk=$group_name '$1==group_awk{print $3,$4}' /etc/group`
#注:-v選項 向awk傳遞shell變量 指定外部$group_name賦給awk內部變量 运行的时候用自定义的变量
#注:獲取數組裡第一個元素
group_lst=($group_msg)  #注:轉變成數組
group_id=${group_lst[0]}		# 注:gid
group_user_1=${group_lst[1]}	# 注:該組(次要組)成員
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# vim group_member.sh
#!/bin/bash
  
group_name=$1           #注:組名作為參數
#/etc/group獲取它的GID和成員列表
group_msg=`awk -F: -v group_awk=$group_name '$1==group_awk{print $3,$4}' /etc/group`
#注:-v選項 向awk傳遞shell變量 指定外部$group_name賦給awk內部變量 运行的时候用自定义的变量
#注:獲取/etc/passwd 主要組 成員;tr "\n" "," 指定分隔符為,;過濾出 $4==group_id 的行
group_user_2=`awk -F: -v group_id=$group_id '$4==group_id{print $1}' /etc/passwd|tr "\n" ","`
echo $group_user_2$group_user_1		# 注:直接拼接 不需要加“+”號
[root@sanchuang-linux ~]# sh group_member.sh sanchuang5
sanchuang13,sanchuang10,sanchuang12
--------------------------------------------------------
[root@sanchuang-linux ~]# cat /etc/passwd
sanchuang13:x:1034:1200::/home/sanchuang13:/bin/bash	# 注:gid 位置 $4
===========================================================================================================
總結:查看組中有哪些成員
#shell與awk參數傳遞:
https://blog.csdn.net/imzoer/article/details/8738581
[root@sanchuang-linux ~]# cat group_member2.sh
#!/bin/bash

group_name=$1
group_msg=`awk -F: -v group_awk=$group_name '$1==group_awk{print $3,$4}' /etc/group`
group_lst=($group_msg)			# 注:awk -v 选项  定义参数,把变量传递给awk
group_id=${group_lst[0]}		# 注:()括起来 把字符變成一個數組,默認以空格分割,獲取1,2元素
group_user_1=${group_lst[1]}
group_user_2=`awk -F: -v group_id=$group_id '$4==group_id{print $1}' /etc/passwd| tr "\n" ","`
echo $group_user_2$group_user_1						# 注:把換行符換成逗號
[root@sanchuang-linux ~]# sh group_member2.sh sanchuang5
sanchuang13,sanchuang10,sanchuang12

--------------------------------------------------------------------------------------------
命令行
[root@sanchuang-linux ~]# less /etc/group
sanchuang5:x:1200:sanchuang10,sanchuang12
[root@sanchuang-linux ~]# awk -F: '$1=="sanchuang5"{print $3}' /etc/group
1200									# 注:加引號,表示一個字符串
[root@sanchuang-linux ~]# awk -F: '$1=="sanchuang5"{print $3,$4}' /etc/group
1200 sanchuang10,sanchuang12			# 注:組id	附屬組的成員
[root@sanchuang-linux ~]# awk -F: '$4==1200{print $1}' /etc/passwd
sanchuang13								# 注:獲取的是  為主要組時 成員的用戶名(默認換行分割)
group_user_2=`awk -F: -v group_id=$group_id '$4==group_id{print $1}' /etc/passwd| tr "\n" ","`
#注:把換行符換成逗號
--------------------------------------------------------------------------------------------
字符串截取				# 注:不準確,gid可能5位
[root@sanchuang-linux ~]# result=`awk -F: '$1=="sanchuang5"{print $3,$4}' /etc/group`
[root@sanchuang-linux ~]# echo ${result:0:4}
1200
[root@sanchuang-linux ~]# echo ${result#* }
sanchuang10,sanchuang12
[root@sanchuang-linux ~]# echo ${result:5}
sanchuang10,sanchuang12
[root@sanchuang-linux ~]# echo ${result%% *}
1200
---------------------------
字符串截取:
#字符串操作
line=`head -n1 /etc/passwd`
echo "字符串為:$line"
echo '字符串為:$line'
echo "截取前4個字符:"
echo ${line:0:4}
echo "截取後9個字符:"
echo ${line:0-9}
echo "從倒數第九個字符開始截取4個字符"
echo ${line:0-9:4}
echo "從左向右截取最後一個:後的字符"
echo ${line##*:}
echo "從左向右截取第一個:後的字符"
echo ${line#*:}
echo "從右向左截取最後一個:後的字符"
echo ${line%%:*}
echo "從右向左截取第一個:後的字符"
echo ${line%:*}
echo "字符串長度"
echo ${#line}
--------------------------------------------------------------------------------------------
for循環獲取
[root@sanchuang-linux lianxi]# vim user.sh
result=`awk -F: '$1=="sanchuang5"{print $3,$4}' /etc/group`
for i in $result
do
    echo $i
done
[root@sanchuang-linux lianxi]# bash user.sh 
1200
sanchuang10,sanchuang12
[root@sanchuang-linux ~]# result=`awk -F: '$1=="sanchuang5"{print $3,$4}' /etc/group`
------------------------------------------------------------
[root@sanchuang-linux ~]# for i in $result; do echo $i; done
1200
sanchuang10,sanchuang12

三. group 操作#

3.1 groupadd groupdel#

groupadd 命令

格式:groupadd [-g GID] 組帳號名

groupdel 命令

格式:groupdel 組帳號名

示例:groupadd  groupdel
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# groupadd -g 5000 sanle	# 注:創建gid為5000的sanle組
[root@sanchuang-linux ~]# less /etc/group			#↑注:添加組賬號sanle
sanle:x:5000:
[root@sanchuang-linux ~]# groupdel sanle			# 注:刪除組賬號sanle
[root@sanchuang-linux ~]# less /etc/group			# 注:沒有了

3.2 groupmod newgrp#

groupmod 命令

  • 用途:設置組名和組 id
  • 格式:groupmod [選項]... 組帳號名

常用命令選項

  • -n:修改組名
  • -g:修改組 id

newgrp 改變有效組

  • 用戶必須是要改變組的成員

有效組:(用的很少)
新建文件或者文件夾的時候,使用的 gid
gid 使用哪個組,哪個就是有效組

當前用戶新建文件或者文件夾的時候,默認使用的 gid 對應的組 就是有效組

示例:newgrp改變有效組
--------------------------------------------------------------------------------------------
[root@sanchuang-linux lianxi]# ll				# 注:ll查看目錄詳細信息
-rw-r--r--. 1 root root      86 9月  25 14:23 abcd.txt
-rw-r--r--. 1 root root     158 9月  25 09:47 backup_log.sh
#注:第一個root是文件的 屬主
#注:第二個root是文件的 屬組
---------------------------------------------------
[root@sanchuang-linux lianxi]# newgrp sanchuang4
[root@sanchuang-linux lianxi]# touch aa
[root@sanchuang-linux lianxi]# ll
-rw-r--r--  1 root sanchuang4       0 11月  6 11:25 bb		# 注:屬組發生改變
---------------------------------------------------
[root@sanchuang-linux lianxi]# su - sanchuang10
[root@sanchuang-linux lianxi]# touch cc
[sanchuang10@sanchuang-linux ~]$ ll
總用量 0
-rw-r--r-- 1 sanchuang10 sanchuang4 0 11月  6 11:27 cc
[sanchuang10@sanchuang-linux ~]$ newgrp sanchuang	# 注:普通用戶想切換有效組,有效組裡面必須有這個普通用戶
密碼:
newgrp: failed to crypt password with previous salt: 無效的參數
#注:普通用戶想切換有效組,有效組裡面必須有這個普通用戶

3.3 Linux 組帳號#

Linux 組帳號

  • 主要組 (私有組)

與用戶相關的默認組,在 /etc/passwd 文件的第四個字段定義

  • 次要組 (附屬組)

用戶可以同時屬於其他的組,在 /etc/group 文件的第四個字段定義

用戶的主要組的名稱和GID相關


四. gpasswd 命令#

gpasswd 命令

  • 用途:設置組帳號密碼(極少用)、添加 / 刪除組成員
  • 格式:gpasswd [選項]... 組帳號名
示例:刪除組成員root
--------------------------------------------------------------------------------------------
[root@localhost ~]# gpasswd -d root market
正在將用戶“root”從“market”組中刪除

示例:設置組賬號密碼
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# gpasswd sanchuang
正在修改 sanchuang 組的密碼
新密碼:
請重新輸入新密碼:
[root@sanchuang-linux ~]# 

五. linux 加密#

Linux 加密

默認採用 sha512 算法

採用哈希算法 --》散列值求取

​ 把任意長度的輸入,映射成固定長度的輸出,該輸出就是散列值

​ 是一種單向加密技術

hash 算法:md5 sha1 sha2 sha256 sha512

如何判定密碼正確?

# 注:把輸入的密碼用同樣的方式進行加密,再判定輸入的密文和文件裡的密文是否一致

示例:md5sum
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# echo "123456"|md5sum 	# 注:md5sum也是一種哈希算法
f447b20a7fcbf53a5d5be013ea0b15af  -				# 注:無論給的是 都會返回特定長度的輸出
[root@sanchuang-linux ~]# echo "123456xyzzzzz"|md5sum 	# 注:單向加密的算法
bcdd6694d1ece311bd7bd668da54b9b9  -
[root@sanchuang-linux ~]# echo "xxxxxxxxxxxxxxxxxxxxxxxx"|md5sum
7373d8394616d74ba2c42402266ae3aa  -

[root@sanchuang-linux tmp]# md5sum douban		# 注:對文件進行加密
816ba8dd29e68f3450d8748096227d42  douban		# 注:對任意文件的輸入,都会有對應長度的輸出
[root@sanchuang-linux tmp]# md5sum sucai8
9a44802fc09e1b84dc94740c40aa6450  sucai8

示例:撞庫 加鹽
--------------------------------------------------------------------------------------------
#注:撞庫
[root@sanchuang-linux ~]# echo "123456"|md5sum		# 注:加密字符串相同,輸出的散列值相同
f447b20a7fcbf53a5d5be013ea0b15af  -
[root@sanchuang-linux ~]# echo "123456"|md5sum
f447b20a7fcbf53a5d5be013ea0b15af  -
#注:加鹽		# 注:提高密碼安全性
[root@sanchuang-linux ~]# echo "123456xndfoaei242"|md5sum	# 注:xndfoaei242 鹽值
15465f7aa2929cca95ed7efb97ffeba0  -

示例
--------------------------------------------------------------------------------------------
root:$6$i4J5vzOUIMpchLRj$nTCbYWgA5cpv34Set6R2ZmC1AYYHGHnQafNbA9fkFsTR0E9GG1BJP5o3OTMuC4kGUqsomCI/G8FdEVELI/aeq0::0:99999:7:::

密碼字段:$加密算法id$鹽值$真正的密文
加密底層使用內核的crypt函數實現

python實現(sha512)
>>> import crypt
>>> crypt.crypt('123456','$6$i4J5vzOUIMpchLRj')	# 注:$加密算法id$鹽值,密文和上面相同
'$6$i4J5vzOUIMpchLRj$nTCbYWgA5cpv34Set6R2ZmC1AYYHGHnQafNbA9fkFsTR0E9GG1BJP5o3OTMuC4kGUqsomCI/G8FdEVELI/aeq0'		# 注:與上面的密文一樣
-----------------------------------------
$6 						代表sha512算法
$i4J5vzOUIMpchLRj 		鹽值
$nTCbYWgA5cpv……aeq0 	真正的密文

哈希算法用途:用來判定文件md5值是否改變

六. /etc/login.defs 文件#

/etc/login.defs 文件

  • 對賬戶初始的屬性設置
  • 設置普通用戶的 UID 和 GID 範圍等
示例
[root@sanchuang-linux ~]# vim /etc/login.defs 
MAIL_DIR        /var/spool/mail		# 注:設置默認地址
PASS_MAX_DAYS   99999				# 注:密碼的過期天數
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7
UID_MIN                  1000

七. useradd 命令在後台到底做了哪些工作?#

useradd 命令在後台到底做了哪些工作?

image-20220813013242770


八. /etc/skel/* 文件#

*/etc/skel/文件

  • 新建用戶帳號時,複製到用戶宿主目錄中

主要控制用戶初始配置文件

  • bash_profile: 用戶每次登錄時執行
  • bashrc: 每次進入新的 Bash環境時執行
  • bash_logout: 用戶每次退出登錄時執行
  • bash_history : 記錄存放上次註銷前使用的歷史命令

登錄的時候:
.bash_profile
~/.bash_profile --> ~/.bashrc --> /etc/bashrc

進入新 bash 環境
~/.bashrc --> /etc/bashrc

--------------------------------------------------------------------------------------------

#注:登錄的時候都會執行 .bash_profile

#注:登錄的時候都會執行 .bashrc # 注:.bash_profile 裡面調用了.bashrc

#注:登錄的時候 先執行.bash_profile,.bash_profile 裡面調用了.bashrc

#注:進入了一個新的 bash 環境,執行.bashrc

#注:到新 bash 環境下,執行了.bashrc,不執行.bash_profile。登錄時執行.bash_profile

用戶環境設置

#注:/etc/bashrc 系統用戶的環境設置,別名設置,其他的函數

/etc/bashrc 相當於全局配置,此文件只能 root 用戶修改 # 注:/etc/bashrc 只有 root 用戶才能修改

~/.bashrc 個人配置,個性化配置,自己家目錄下有權限修改 # 注:家目錄下的.bashrc 文件

/etc/profile 系統全局用戶環境配置

~/.bash_profile 個人配置

原因:

全局配置,影響所有用戶。

家目錄下配置,影響當前用戶。


九。每次登錄或退出 sanchuang 的時候,打印日誌到 /tmp/sanchuang_log#

每次登錄或退出 sanchuang 的時候,打印日誌到 /tmp/sanchuang_log

步驟
1.在sanchuang用戶下,修改.bash_profile文件,添加		# 注:因為每次登錄都會先執行這個文件
now_date=`date`
echo $now_date"login..." >> /tmp/sanchuang_log
2.在sanchuang用戶下,修改.bash_logout文件,添加			# 注:因為每次退出時都會執行這個文件
now_date=`date`
echo $now_date"logout..." >> /tmp/sanchuang_log
3.監控文件變化,新增末尾行								# 注:經常用 tail -f 監控文件
$ tail -f /tmp/sanchuang_log	# 注:tail -f監控文件末尾的變化(新增的末尾行)
示例
--------------------------------------------------------------------------------------------
[root@sanchuang-linux log]# su - sanchuang					# 注:普通用戶  在自己的家目錄下操作
上一次登錄:五 11月  6 14:59:23 CST 2020pts/1
[sanchuang@sanchuang-linux ~]$ vim ~/.bash_profile 			# 注:家目錄下的.bash_profile操作
now_date=`date`
echo $now_date"login..." >> /tmp/sanchuang_log
[sanchuang@sanchuang-linux ~]$ tail -f /tmp/sanchuang_log	# 注:tail -f監控文件末尾的變化
2020年 11月 06日 星期五 15:05:26 CSTlogin...
[sanchuang@sanchuang-linux ~]$ vim ~/.bash_logout 
now_date=`date`
echo $now_date"logout..." >> /tmp/sanchuang_log
[sanchuang@sanchuang-linux ~]$ tail -f /tmp/sanchuang_log	# 注:tail -f監控文件末尾的變化
2020年 11月 06日 星期五 15:05:26 CSTlogin...
2020年 11月 06日 星期五 15:07:33 CSTlogout...

十. Shell 啟動配置文件的區別#

Shell 啟動配置文件的區別

  • /etc/profile: 配置全局環境變量,影響所有用戶
  • ~/.bash_profile : 配置個人環境,影響一個用戶
  • /etc/bashrc : 配置全局的別名或者 shell 選項,影響所有用戶
  • **~/.bashrc **: 配置個人別名或者 shell 選項,影響一個用戶

十一. .bash_history#

.bash_history

存放當前用戶的命令歷史,第一次登錄用戶,操作命令的時候,不會生成此文件

第一次登錄退出後會自動將內存裡的歷史記錄寫到.bash_history 文件裡


十二. bash 的啟動腳本初始化#

bash 的啟動腳本初始化

image-20220813014441823

image-20220813014453858


十三。用戶和組賬戶查詢#

用戶和組賬戶查詢

id 命令

  • 用途:查詢用戶身份標識
  • 格式:id [用戶名]

who、w、users 命令

  • 用途:查詢已登錄到主機的用戶信息

groups 命令

  • 用途:查詢用戶所屬的組 # 注:返回用戶所屬的 基本組和附加組

last、lastlog 命令使用

示例:w  who
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# w		# 注:看的是你以哪個用戶登錄進來,而不是當前你切換到的用戶
 15:26:24 up  6:11,  6 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                四15   58:07   0.07s  0.07s -bash		# 注:tty真實終端
root     pts/0    192.168.0.42     14:28    0.00s  0.18s  0.01s w		 # 注:遠程登錄pts虛擬終端
root     pts/1    192.168.0.42     14:28   12:24   0.07s  0.01s -bash
#注:真實終端FORM為空
#注:虛擬終端顯示的是物理機的ip地址
#注:WHAT當前環境做的事情
#注:15:26:24 當前時間
#注:6:11		開機總時間
#注:6 users	登錄用戶數量
#注:load average	 cpu平均負載,數值越大,機器越繁忙
--------------------------------------------------------------
[root@sanchuang-linux ~]# who			# 注:看的沒有w詳細
root     tty1         2020-11-05 15:13
root     pts/0        2020-11-06 14:28 (192.168.0.42)
root     pts/1        2020-11-06 14:28 (192.168.0.42)
------------------------------------------------------------------
[root@sanchuang-linux ~]# users			# 注:查看當前有哪些用戶登錄
root root root root root root
---------------------------------------------------------------------------------
[root@sanchuang-linux ~]# groups sanchuang10	# 注:顯示用戶所屬的基本組和附加組
sanchuang10 : sanchuang4 sanchuang5
[root@sanchuang-linux ~]# id sanchuang10
uid=1032(sanchuang10) gid=1100(sanchuang4)  組=1100(sanchuang4),1200(sanchuang5)
--------------------------------------------------------------------------------
[root@sanchuang-linux ~]# last		# 注:查看之前有哪些用戶登錄過
root     tty1                          Wed Sep 16 13:41 - 13:41  (00:00)
root     pts/0        192.168.136.1    Wed Sep 16 13:29 - 13:40  (00:11)
reboot   system boot  4.18.0-193.el8.x Wed Sep 16 13:26 - 13:42  (00:15)
[root@sanchuang-linux ~]# lastlog 	# 注:查看每一個用戶的最近登錄狀態
用戶名           端口     來自             最後登錄時間
root             pts/0 11月  6 15:18:46 +0800 2020
bin                                        **從未登錄過**
shutdown                                   **從未登錄過**

十四。終端設備名稱#

終端設備名稱

​ 名稱 設備

ttyn 虛擬控制台

pts/n 伪終端

:0 X 服務器


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。