1. 程式人生 > 實用技巧 >Linux中使用者和組管理

Linux中使用者和組管理

一、使用者分類

1、管理員和普通使用者

1️⃣:管理員 —— 使用者ID:0

2️⃣:普通使用者 —— 使用者ID:1—65535

2、普通使用者又分為系統使用者和登陸使用者

1️⃣:系統使用者 —— 使用者ID:1—999 (一般系統使用者不需要登入的,都是給護遠端使用的)

2️⃣:登陸使用者 —— 使用者ID:1000—60000(為了完成互動式登陸而使用的使用者)

3、示例

//建立一個普通使用者,檢視ID
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# id zhangsan
uid=1000(zhangsan) gid=1000(zhangsan) 組=1000(zhangsan)

//建立一個系統使用者,檢視ID
[root@localhost ~]# useradd -r -M -s /sbin/nologin lisi
[root@localhost ~]# id lisi 
uid=991(lisi) gid=987(lisi) 組=987(lisi)

二、使用者和組的類別

1️⃣:私有組 ——建立使用者時,如果沒有為其指定所屬的組,系統會自動為其建立一個與使用者名稱相同的組

2️⃣:基本組 ——使用者的預設組

3️⃣:附加組 ——除預設組以外其他的組

三、使用者和組的相關配置檔案

1️⃣:/etc/passwd —— 使用者及其屬性資訊

2️⃣:/etc/shadow ——使用者密碼及相關資訊

3️⃣:/etc/group —— 組及其屬性資訊

4️⃣:/etc/gshadow —— 組密碼及其相關屬性

四、使用者和組的相關命令

1、useradd —— 建立使用者命令

useradd
    -u:指定使用者的UID
    -c<備註>:加上備註文字
    -d<家目錄>:指定使用者家目錄,該目錄必須事先存在
    -g<基本組名>:指定使用者所屬的基本組
    -G<附加組名>:指定使用者所屬的附加組,可以有多個,用逗號隔開
    -M:不要自動建立使用者的家目錄
    -r:建立一個系統使用者

2、userdel —— 使用者刪除命令

userdel
    -f:強制刪除使用者,即使使用者當前已登入
    -r:刪除使用者的同時,刪除與使用者相關的所有檔案。

3、usermod —— 修改使用者資訊命令

usermod
    -u<uid>:修改使用者UID
    -s<shell>:修改該使用者帳號的新登入 shell
    -c<備註>:修改使用者帳號的備註資訊
    -d<登入目錄>:修改使用者登入時的家目錄
    -e<有效期限>:修改帳號的有效期限
    -g<群組>:修改使用者所屬的群組
    -G<群組>;修改使用者所屬的附加群組
    -l<帳號名稱>:修改使用者帳號名稱
    -L:鎖定使用者密碼,使密碼無效
    -U:解除密碼鎖定
    

4、groupadd —— 組建立命令

groupadd
    -g:指定新建工作組的GID
    -r:建立系統工作組,系統工作組的組ID小於500

5、groupdel —— 組刪除命令

groupdel  
    //刪除組名只需要指定組名即可

groupdel groupname

6、groupmod —— 組資訊修改命令

groupmod
    -g, --gid GID   將組 GID 改為新的 GID
    -n, --new-name      修改新的組名
    

7、su —— 切換使用者命令

su 
    -c<指令>或--command=<指令>:執行完指定的指令後,即恢復原來的身份
    
su username    :非登入式切換(切換後,任然在root家目錄下,不會跳轉到該使用者的家目錄)
su - usernaem  :登入式切換 (切換後,自動跳轉到該使用者的家目錄)
su -    :不指定使用者名稱,則直接切換到root使用者

五、密碼管理

1、passwd —— 設定使用者密碼命令

passwd
    --stdin   //標準輸入獲取使用者密碼(也叫明文獲取使用者密碼)
e.g:[root@localhost ~]# echo '123456' | passwd --stdin lisi

    -d:刪除使用者密碼,僅有系統管理者才能使用
    -f:強制執行
    -l:鎖住使用者密碼
    -u:解開已上鎖的使用者密碼
    -s:列出密碼的相關資訊,僅有系統管理者才能使用
    -n:指定使用最短期限
    -x:指定使用最長期限
    -w:指定多少天開始警告

2、openssl —— 密碼生成工具

openssl  command

command
    dgst      //提取特徵碼
    passwd    //生成密碼
    rand      //生成偽隨機數
    version    //檢視程式版本號

示例
  //提取特徵碼
[root@localhost ~]# openssl dgst -md5 /etc/passwd
MD5(/etc/passwd)= 93690d490a4c6767084ab1c4c19a22a5
[root@localhost ~]# openssl dgst -md5 /etc/fstab 
MD5(/etc/fstab)= f57f5c4e8baa2e133f583c88bfb69abd

  //生成密碼
格式:openssl passed -number(1-6) -salt 雜質詞(string:一般為8位)
[root@localhost ~]# openssl passwd -1 -salt password
Password: 
$1$password$7ZK8mMeLGXxbNPeJEFJOU0

  //生成隨機數
格式:openssl rand -base64 num(num為隨機數長度)
[root@localhost ~]# openssl rand -base64 10
1F3boAMqLShFKg==
[root@localhost ~]# openssl rand -base64 20
Jo35wmVC2X2Qw4WwjYJY90/1J/k=
[root@localhost ~]# openssl rand -base64 30
LZPA3UcV4yYEaD7G5ywVo9j+SCU8+i6ovrik0MPh
[root@localhost ~]# openssl rand -base64 40
ZjqZxMsdj7MJM0IlUzrDj2WNRlZ+xDH2C3FI5YZbSx8n13KiOim5SA==
[root@localhost ~]# openssl rand -base64 50
RjkM9gcXwOBdKzlDdH6ZHqXknJfHK9vi1IiSbTaDMiLeUpmg3ab6c5VV8twfs+sC
To8=