1. 程式人生 > >如何在Linux下新增/刪除/修改 使用者及使用者組

如何在Linux下新增/刪除/修改 使用者及使用者組

Linux使用者和使用者組的管理

Linux系統是一個多使用者多工的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統,那麼在Linux下如何進行使用者的新增,刪除和修改,使用者組怎麼設定,使用者密碼的管理呢?

1.新建使用者

新增使用者賬號就是在系統中建立一個新賬號,然後為新賬號分配使用者號、使用者組、主目錄和登入Shell等資源。剛新增的賬號是被鎖定的,無法使用。

用法:
    useradd 選項 使用者名稱
選項:
  -d, --home-dir HOME_DIR       新賬戶的主目錄
  -g, --gid GROUP       新賬戶主組的名稱或 ID
  -G, --groups GROUPS   新賬戶的附加組列表
  -l, --no-log-init 不要將此使用者新增到最近登入和登入失敗資料庫
  -m, --create-home 建立使用者的主目錄
  -M, --no-create-home      不建立使用者的主目錄
  -N, --no-user-group   不建立同名的組
  -o, --non-unique      允許使用重複的 UID 建立使用者
  -p, --password PASSWORD       加密後的新賬戶密碼
  -r, --system                  建立一個系統賬戶
  -s, --shell SHELL     新賬戶的登入 shell
  -u, --uid UID         新賬戶的使用者 ID
  -U, --user-group      建立與使用者同名的組
使用者名稱:
  指定新使用者的登入
# useradd -d /home/sadmin sadmin

此命令建立了一個使用者sadmin,其中-d-m選項用來為登入名sadmin產生一個主目錄/home/sadmin(/usr為預設的使用者主目錄所在的父目錄)

增加使用者賬號就是在/etc/passwd檔案中為新使用者增加一條記錄,同時更新其他系統檔案如/etc/shadow,/etc/group

2.新建使用者組

# groupadd test

3.將sadmin使用者新增到test組

根據實際情況更改使用者的有關屬性,如使用者號、主目錄、使用者組、登入Shell等

# usermod -s /bin/sh -g test sadmin

此命令將使用者sadmin的登入Shell修改為sh,使用者組改為test,如果想登入到終端,使用

# usermod -s /bin/bash -g test sadmin

4.設定密碼

使用者賬號剛建立時沒有口令,但是被系統鎖定,無法使用,必須為其指定口令後才可以使用,即使是指定空口令。

指定和修改使用者口令的Shell命令是passwd。超級使用者可以為自己和其他使用者指定口令,普通使用者只能用它修改自己的口令。

用法: passwd [選項...] <帳號名稱>
  -k, --keep-tokens       保持身份驗證令牌不過期
  -d, --delete            刪除已命名帳號的密碼(只有根使用者才能進行此操作)
  -l, --lock              鎖定指名帳戶的密碼(僅限 root 使用者)
  -u, --unlock            解鎖指名賬戶的密碼(僅限 root 使用者)
  -e, --expire            終止指名帳戶的密碼(僅限 root 使用者)
  -f, --force             強制執行操作
  -x, --maximum=DAYS      密碼的最長有效時限(只有根使用者才能進行此操作)
  -n, --minimum=DAYS      密碼的最短有效時限(只有根使用者才能進行此操作)
  -w, --warning=DAYS      在密碼過期前多少天開始提醒使用者(只有根使用者才能進行此操作)
  -i, --inactive=DAYS     當密碼過期後經過多少天該帳號會被禁用(只有根使用者才能進行此操作)
  -S, --status            報告已命名帳號的密碼狀態(只有根使用者才能進行此操作)
  --stdin                 從標準輸入讀取令牌(只有根使用者才能進行此操作)

如果預設使用者名稱,則修改當前使用者的口令。

現在我們將sadmin的密碼設定一下

# passwd sadmin

普通使用者修改自己的口令時,passwd命令會先詢問原口令,驗證後再要求使用者輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給使用者;而超級使用者為使用者指定口令時,就不需要知道原口令。

Changing password for user sadmin.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

為使用者指定空口令時,執行下列形式的命令

# passwd -d sadmin

此命令將使用者sadmin的口令刪除,這樣使用者sadmin下一次登入時,系統就不再詢問口令。

passwd命令還可以用-l(lock)選項鎖定某一使用者,使其不能登入,例如:

# passwd -l sadmin

5.登入使用者sadmin

# su sadmin

然後就得到這個狀態sh-4.2$ ,因為我前面將登入shell設定成/bin/sh 了,exit退出

解決方法一

重新修改登入shell:

# usermod -s /bin/bash sadmin

這樣就可以了,或者進行下面的操作,建立.bashrc

解決方法二

下面建立預設.bashrc並自動載入

第一步,su - sadmin

拷貝預設的.bashrc過來cp /etc/skel/.bashrc ~/

然後建立.profile檔案 vi ~/.profile

貼上下面的內容

# ~/.profile: executed by Bourne-compatible login shells.

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi

mesg n

如果想立即生效,執行命令source ~/.profile

現在顯示正常了,不過這樣貌似只能臨時有效,下次再登入該賬號時會失效

所以建議使用第一種方法

6.刪除使用者sadmin

刪除一個已有的使用者賬號使用userdel命令:

# userdel 選項 使用者名稱

常用的選項是-r,它的作用是把使用者的主目錄一起刪除

# userdel -r sadmin

此命令刪除使用者sam在系統檔案中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除使用者的主目錄。

7.使用者組管理

Linux下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立,所以在使用userdel -r sadmin刪除時因為前面更改了sadmin的使用者組,所以sadmin使用者組沒法刪除。

使用者組的管理涉及使用者組的新增、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group檔案的更新。

groupadd 選項 使用者組

可以使用的選項有:

-g GID 指定新使用者組的組標識號(GID)。
-o 一般與-g選項同時使用,表示新使用者組的GID可以與系統已有使用者組的GID相同。
# groupadd group1

此命令向系統中增加了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎上加1,也可以使用-g 200引數來指定新組的識別符號

# groupmod -g 102 group2

此命令將組group2的組標識號修改為102

# groupmod –g 1000 -n group3 group2 

此命令將組group2的標識號改為1000,組名修改為group3。-n 新使用者組 將使用者組的名字改為新名字

# groupdel group1

刪除使用者組grup1

如果一個使用者同時屬於多個使用者組,那麼使用者可以在使用者組之間切換,以便具有在其他使用者組的許可權

使用者可以在登入後,使用命令newgrp切換到其他使用者組,這個命令的引數就是目的使用者組,比如:

$ newgrp root

這條命令將當前使用者切換到root使用者組,前提條件是root使用者組確實是該使用者的主組或附加組。類似於使用者賬號的管理,使用者組的管理也可以通過整合的系統管理工具來完成。