1. 程式人生 > >Linux基礎命令六:賬號管理

Linux基礎命令六:賬號管理

1.useradd 建立新使用者

  • useradd 使用者名稱稱 :建立普通使用者

  • useradd的一些常用選項

    -u:指定賬號UID
    -g:指定使用者基本組
    -G:指定使用者的附加組
    -c:指定使用者描述資訊,一般為賬戶全稱。
    -d:指定使用者家目錄,預設家目錄是/home/username
    -s:指定使用者使用的shell相關檔案,預設為/bin/bash
    -e:設定使用者的失效日期,格式為“YYYY-MM-DD”
    -f:指定密碼是否會失效,0為立即失效,-1為永不失效 
    -r:建立一個系統賬戶
    
  • 練習

   1.建立一個普通使用者 [[email protected] ~]# useradd xixi [
[email protected]
~]# ll -d /home/xixi drwx------ 2 xixi xixi 4096 Nov 12 12:58 /home/xixi #預設會建立一個使用者的家目錄,且許可權為700 [[email protected] ~]# grep xixi /etc/passwd /etc/group /etc/shadow /etc/passwd:xixi:x:500:500::/home/xixi:/bin/bash /etc/group:xixi:x:500: #預設建立一個與使用者名稱相同的使用者組名 /etc/shadow:xixi:!!:17847:0:99999:7::: 2.建立一個UID為600,基本組為xixi的使用者haha [
[email protected]
~]# useradd -u 600 -g xixi haha [[email protected] ~]# ll -d /home/haha drwx------ 2 haha xixi 4096 Nov 12 13:10 /home/haha [[email protected] ~]# grep haha /etc/passwd /etc/shadow /etc/group /etc/passwd:haha:x:600:500::/home/haha:/bin/bash /etc/shadow:haha:!!:17847:0:99999:7::: 3.建立一個系統賬號test,且不允許其登陸系統 [
[email protected]
~]# useradd -r -s /sbin/nologin test [[email protected] ~]# ll -d /home/test ls: cannot access /home/test: No such file or directory #不會建立家目錄 [[email protected] ~]# grep test /etc/passwd /etc/shadow /etc/group /etc/passwd:test:x:497:497::/home/test:/sbin/nologin #UID在500以下 /etc/shadow:test:!!:17847:::::: /etc/group:test:x:497: ```
  • useradd預設值

[[email protected] ~] #useradd -D 
GROUP=100                 #預設的使用者組 
HOME=/home                #預設的家目錄 
INACTIVE=-1               #密碼失效日期 
EXPIRE=                   #賬戶失效日期 
SHELL=/bin/bash           #預設的shell 
SKEL=/etc/skel            #使用者家目錄的內容資料參考目錄 
CREATE_MAIL_SPOOL=yes     #是否主動幫使用者建立有幸 

2.groupadd 建立使用者組

  • groupadd 組名 :建立一個組
  • groupadd的其他選項:
   -g: 指定GID
   -r: 新建系統使用者組,與/etc/login.defs的GID_MIN有關
  • 練習
  1.建立一個組為test1 
  [[email protected] ~]# groupadd test1 
  [[email protected] ~]# grep test1 /etc/group /etc/gshadow 
  /etc/group:test1:x:501:               
  /etc/gshadow:test1:!::
  2.建立一個GID為601的組test2 
  [[email protected] ~]# groupadd -u 601 test2   
   [[email protected] ~]# grep test2  /etc/gshadow /etc/group         
   /etc/gshadow:test2:!:: 
   /etc/group:test2:x:601: 

3. id 檢視

  • 檢視使用者及使用者組資訊
[[email protected] ~]# id xixi
uid=500(xixi) gid=500(xixi) groups=500(xixi)
[[email protected] ~]# id test
uid=497(test) gid=497(test) groups=497(test)

4. passwd

  • passwd 使用者名稱 :給這個使用者設定密碼
  • passwd的其他選項
     --stdin  通過前一個管道的資料,作為密碼輸入
    -l       鎖定使用者
    -u       解鎖使用者
    -n	     指定密碼最短使用期限
    -x     	 指定密碼最長使用期限
    -w	     指定警告時間
    -d  	 刪除使用者密碼,在redhat中,空密碼使用者禁止登陸
    -S       列出密碼相關引數
  • 練習
1.給xixi這個使用者設定密碼
[[email protected] ~]# passwd xixi
Changing password for user xixi.
New password:                 #根據系統提示輸入密碼
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:          #再次確認密碼
passwd: all authentication tokens updated successfully.
2.使用--stdin給haha設定密碼
[[email protected] ~]# echo "123456" | passwd --stdin haha
Changing password for user haha.
passwd: all authentication tokens updated successfully.
3.給test加密,設定其密碼最短使用期限為 2天,最長為50天,警告天數為5天
[[email protected] ~]# echo "123456" | passwd --stdin test
Changing password for user test.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# passwd -n 2 -x 50 -w 5 test
Adjusting aging data for user test.
passwd: Success
[[email protected] ~]# grep -w test /etc/passwd /etc/shadow /etc/group   #這裡記得加-w,否則之前建立的test1,test2也會被匹配
/etc/passwd:test:x:497:497::/home/test:/sbin/nologin
/etc/shadow:test:$6$jDcOr02c$5zHZJrvreFiQRQPNCkz.Ezjy4G8rlHZYKF4IhcXFnM4Nxml8oS8X45dUJKRkkkviclFzR1HNst/oQiyyd1JqY1:17847:2:50:5:::     #可以看到時間已經修改成功
/etc/group:test:x:497:
  • 關於/etc/shadow的第二段字元的密碼
加密後的密碼,格式為$1$????????$*
賬戶鎖定,格式為 !!或者*	

5.chage

  • chage 【選項】賬號名
-l:列出密碼詳細引數
-d:最近一次更改密碼的日期
  • 新建一個使用者user,使用chage命令,使這個使用者實現第一次登入時強制更改密碼這一功能
[[email protected] ~]# useradd user
[[email protected] ~]# echo "123456" | passwd --stdin user
Changing password for user user.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# chage -d 0 user
#使用user這個使用者登入
You are required to change your password immediately (root enforced)
Welcome to Alibaba Cloud Elastic Compute Service !

WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user user.
Changing password for user.
(current) UNIX password:     #輸入舊密碼
New password:                #輸入新密碼

6.usermod 修改使用者資訊

  • usermod 【選項】使用者名稱
-g: 修改使用者的基本組,修改的是/etc/shadow的第四個欄位
-G:修改使用者的附加組,修改的是/etc/group
-u: 修改使用者UID,即/etc/passwd的第三個欄位
-d:修改使用者的家目錄,即/etc/passwd的第六列
-f:修改使用者最短使用時間,後接天數,即/etc/shadow的第七個欄位
-e:修改使用者的失效時間,格式為“YYYY-MM-DD”,即/etc/shadow的第八個欄位
-s:修改使用者登入shell
  • 練習
1.修改test的家目錄/home/onetest,該目錄一定要存在
[[email protected] ~]# mkdir /home/onetest
[[email protected] ~]# usermod -d /home/onetest test
[[email protected] ~]# grep -w test /etc/passwd
test:x:497:497::/home/onetest:/sbin/nologin
2.修改tset的UID為333
[[email protected] ~]# id test
uid=497(test) gid=497(test) groups=497(test)
[[email protected] ~]# usermod -u 333 test
[[email protected] ~]# id test
uid=333(test) gid=497(test) groups=497(test)

7.userdel 刪除使用者和組

  • userdel 【選項】使用者名稱
-r: 刪除使用者及相關檔案,預設不刪除使用者檔案
  • 練習
1.刪除haha,不加-r選項
[[email protected] ~]# userdel  haha
[[email protected] ~]# ll -d /home/haha
drwx------ 2 500 xixi 4096 Nov 12 12:58 /home/haha
[[email protected] ~]# grep haha /etc/passwd /etc/group /etc/shadow
#無內容
[[email protected] ~]# rm -rf /home/haha
[[email protected] ~]# ll -d /home/haha
ls: cannot access /home/haha: No such file or directory
2.加-r刪除test使用者
[[email protected] ~]# userdel -r test
[[email protected] ~]# ll -d /home/test
ls: cannot access /home/test: No such file or directory

8.groupdel 刪除使用者組

  • groupdel 組名
[[email protected] ~]# groupdel test2