Linux中的用戶通常分為root用戶(超級管理員)和普通用戶,因為不同場景的可能會想要新建一些特殊用途的普通用戶,此時新建的用戶可以根據不同的使用場景將他們劃分在不同的用戶組中,然后給用戶組設定相關的權限,使得該用戶組下的用戶都可以執行某些操作或都不能執行某些操作,以此來管理眾多的用戶,建立用戶組的目的是方便管理,以便應對復雜的使用場景,當然,也可以不用將用戶加到某個用戶組里,本文講一些用戶和用戶組的常用操作,以及如何查看用戶和用戶組的相關資訊,
一、常用用戶和用戶組操作命令
useradd命令
useradd [選項] 用戶名:添加一個用戶,
添加一個用戶之后,系統會自動生成或添加一些檔案和配置:
- /etc/password:添加對應的用戶資訊,
- /etc/shadow:添加對應用戶的密碼資訊,
- /etc/group:添加用戶的組資訊,
- /etc/gshadow:添加用戶對應組的密碼資訊,
- /home/用戶名/:生成對應的用戶家目錄,
- /var/spool/mail/用戶名/:生成對應的用戶郵箱目錄,
選項:
- -u UID:手工指定用戶的UID(不建議自己手工指定),
- -d 家目錄:手工指定用戶的家目錄(不建議自己手工指定),
- -c 用戶說明:手工指定用戶的說明,
- -g 組名:手工指定用戶的初始組(不建議自己手工指定),
- -G 組名:手工指定用戶的附加組,如果是指定多個組,多個組名之間使用逗號連接,
- -s shell:手工指定用戶的登錄shell,默認是/bin/bash,
注:在/etc/default/useradd中指定了useradd命令執行時的某些默認設定,比家目錄在/home下等資訊,其他的一些默認資訊可以在/etc/login.defs中查看,
passwd命令
passwd [選項] [用戶]:給某個用戶設定密碼,root用戶可以給任何人設定密碼,
如果沒有輸入用戶名,則表示修改當前用戶自己的密碼,但只有root用戶可以修改別人的密碼,如果不是root用戶,也根本指定不了用戶名,因為根本不允許普通用戶修改別人的密碼,
普通用戶設定自己的密碼時必須符合密碼規則,只有root用戶才能強行地隨意設定密碼,
選項:
- -S:查詢用戶密碼的密碼狀態資訊(僅root用戶可用),
- -l:暫時鎖定用戶(僅root用戶可用),該用戶就暫時不能登錄了,系統此時實際進行的操作就是在/etc/shadow檔案(存放用戶密碼相關的資訊)中對應用戶的密碼前加了一個感嘆號!,
- -u:解鎖用戶(僅root用戶可用),也可以手動修改/etc/shadow檔案中對應用戶的密碼,洗掉密碼最前面的感嘆號!即可,
- --stdin:可以通過管道符輸出的資料作為用戶的密碼,如echo "123"|passwd --stdin user1,即將123設定為user1的密碼,這個選項在使用shell腳本編程的時候最常用,
who/w命令
who:直接查看當前登錄的用戶資訊,包括用戶名、登錄終端、登錄時間、登錄的主機ip(沒有值就表示本機登錄),
登錄終端:
- tty:表示本地終端,即直接在Linux系統上登錄,
- pts:遠程登錄,即使用連接工具進行登錄,
w:查看當前登錄用戶的詳細資訊,相較于who,額外的資訊包括:
- 當前系統時間,
- up:系統連續運行的時間,
- 當前登錄用戶數,
- 當前系統的負載,
- IDLE:登錄用戶空閑的時間(沒有任何操作的時間),
- JCPU:登錄用戶總計占用CPU時間,
- PCPU:登錄用戶執行操作占用的CPU時間,
- WHAT:登錄用戶當前執行的命令,
usermod/chage命令
usermod [選項] 用戶:修改一個已經存在的用戶的用戶資訊,
useradd命令中支持的命令,usermod都支持,額外支持的選項有:
- -L:暫時鎖定用戶,
- -U:解鎖用戶,
chage [選項] 用戶名:修改用戶密碼狀態,
選項:
- -l:列出用戶的詳細密碼狀態,
- -d 日期:修改密碼的最后一次更改時間,通常在shell腳本中會經常使用這個選項,腳本中將這個值設定為0,這樣就會導致這個用戶第一次登陸就會被要求必須修改密碼才能使用,
- -m 天數:修改兩次密碼的間隔時間,
- -M 天數:修改密碼有效期,
- -W 天數:密碼過期前警告天數,
- -I 天數:密碼過期后寬限天數,
- -E 日期:賬號失效時間,
userdel/id/su命令
userdel [-r] 用戶名:洗掉某個用戶,-r選項表示洗掉用戶的同時洗掉它的家目錄,
id 用戶名:查看用戶的UID和GID資訊,
su [選項] 用戶名:切換用戶身份,
選項:
- -:表示連帶用戶的環境也一起切換,如su - root,
- -c:僅使用該用戶的身份執行一次命令,但不切換身份,如su - root -c "useradd user3"表示呼叫root用戶添加一個user3用戶,
groupadd/groupmod/groupdel/gpasswd命令
groupadd [選項] 組名:添加一個用戶組,
選項:
- -g GID:設定用戶組的GID,
groupmod [選項] 組名:修改組資訊,
選項:
- -g GID:修改用戶組的GID,
- -n 新組名:修改組名,
groupdel 組名:洗掉對應的用戶組,
gpasswd [選項] 組名:把用戶添加入組或從組中洗掉,
選項:
- -a 用戶名:把用戶加入組,
- -d 用戶名:把用戶從組中洗掉,
二、查看用戶和用戶組資訊
用戶資訊檔案/etc/passwd
這個檔案中存放著用戶的基本資訊,每一行存放一個用戶的資訊,有多少行就有多少個用戶,
每一行中的用戶資訊使用冒號分隔,共有7個部分:
- 第1個欄位:用戶名稱,
- 第2個欄位:密碼標識,一般為x,表示這個用戶是有密碼的(真正的密碼存放在了檔案/etc/shadow中),如果這個項沒有值,則表示這個用戶是沒有密碼的,即可以直接登錄而不用輸入密碼(這種不設密碼的情況只能在本機登錄,通過遠程連接的方式是無法登錄的),
- 第3個欄位:UID,即用戶ID,用戶名和UID的關系,相當于域名和IP的關系,IP不好記,那就記域名,所以用戶就只需要記用戶名稱即可,不用記UID,UID是系統來識別和記憶的,
- 0:超級用戶,叫root的不一定是管理員,但UID為0的一定是管理員,
- 1-499:系統用戶(偽用戶),注意不能去修改這些用戶的東西,
- 500-65535:普通用戶,
- 第4個欄位:GUD,即用戶初始組ID,
- 初始組:指用戶一登錄就立刻擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是使用這個用戶的用戶名作為這個組的名稱(這個初始名雖然可以改,但是不建議修改),
- 附加組:一個用戶可以屬于多個組,并擁有這些組的權限,用戶的所屬組中,不是初始組的組就是它的附加組,
- 第5個欄位:用戶說明資訊,可以不用加這個資訊,
- 第6個欄位:用戶的家目錄,
- 超級用戶:/root/
- 普通用戶:/home/用戶名/
- 第7個欄位:登錄之后的Shell,默認是系統的標準Shell:/bin/bash,同時普通用戶的Shell必須為/bin/bash,否則無法登錄,如果把某個用戶的Shell指定為/sbin/nologin,表示將這個用戶禁用,不允許這個用戶登錄,
用戶密碼檔案/etc/shadow
這個檔案保存用戶密碼的相關資訊,并且此檔案的權限為----------,即如果是普通用戶,連讀的權限也是沒有的,當然root用戶是可以進行讀寫的,
這個檔案中每一行保存一個用戶的資訊,并且也是使用冒號來分隔不同的用戶資訊的,共有9個欄位:
- 第1個欄位:用戶名,
- 第2個欄位:加密后的密碼,這個項如果是!!或者*表示這個用戶是沒有密碼,且不能登錄,如果想要禁用某個用戶的登錄,只需要在他的密碼前加一個!即可,
- 第3個欄位:密碼的最后一次修改日期(天),使用的是1970年1月1日到當前的天數,
- 第4個欄位:允許修改密碼的最小時間間隔,
- 第5個欄位:密碼有效期(天),指修改密碼后多少天之內有效,
- 第6個欄位:密碼到期之前的n天開始提醒用戶更改密碼,在這n天內每次登錄都會提示你更改密碼,
- 第7個欄位:密碼過期后的寬限天數,如果沒有寫,表示此密碼立即失效,密碼失效后,該用戶將不能登錄,
- 0:與不寫效果相同,即密碼過期后立即失效,
- -1:表示密碼永遠不會失效,此時會覆寫第5個欄位有效期的設定效果,
- 第8個欄位:賬號失效時間,使用的是時間戳格式(天數),設定了這個時間后會覆寫前面的所有相關設定,時間到了之后此賬號會立即失效,
- 時間戳轉換為時間:執行命令如“date -d "1970-01-01 [16076] days"”即可,其中方括號中的76076天數可自行設定,
- 時間轉換為時間戳格式:執行命令“echo $(($date --date="2014/01/06" +%s)/86400+1)”即可查看對應的時間戳(1970-01-01到今天的天數),
- 第9個欄位:保留欄位(暫時沒有用),
組資訊檔案/etc/group
這個檔案存放的就是用戶的組資訊,一行即代表一個組的資訊,并使用冒號分隔不同組資訊,共有4個欄位:
- 第1個欄位:組名,
- 第2個欄位:組密碼標識,一般為x,表示這個組是有密碼的,但是組密碼并不常用,也不推薦設定組密碼,組密碼也存放在一個影子檔案中/etc/gshadow,
- 第3個欄位:GID,即組的ID,
- 第4個欄位:組中附加用戶,
組密碼檔案/etc/gshadow
用于存放組密碼的相關資訊,一行即代表一個組密碼的資訊,并使用冒號分隔不同組密碼資訊,共有4個欄位:
- 第1個欄位:組名,
- 第2個欄位:組密碼,
- 第3個欄位:組管理員用戶名,
- 第4個欄位:組中附加用戶,
用戶模板目錄
/etc/skel/:這個目錄下默認是一些隱藏檔案,創建用戶時會自動將這個目錄下的所有檔案拷貝至對應的用戶家目錄下,當你想在創建用戶時自動生成一些檔案在對應的家目錄下,就可以將這些檔案放在這個目錄下,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/102008.html
標籤:Linux
下一篇:深入學習KVM
