1. 程式人生 > >Linux將用戶添加到組的指令

Linux將用戶添加到組的指令

ping oam 針對 nds 行修改 找到 vdp mas 查看系統

原文:https://blog.csdn.net/youmatterhsp/article/details/80549683;             https://www.cnblogs.com/clicli/p/5943788.html

   https://www.cnblogs.com/jxhd1/p/6528574.html

在 Linux 中,增加用戶或改變用戶的組屬性可以使用 useradd 或者 usermod 命令。useradd增加一個新用戶或者更新默認新用戶信息。usermod 則是更改用戶帳戶屬性,例如將其添加到一個已有的組中。

在 Linux 用戶系統中存在兩類組。第一類是主要用戶組,第二類是附加用戶組。所有的用戶帳戶及相關信息都存儲在 /etc/passwd

文件中,/etc/shadow/etc/group 文件存儲了用戶信息。

Linux 系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助用戶組織文件,並為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名和各自的口令。用戶在登錄時鍵入正確的用戶名和口令後,就能夠進入系統和自己的主目錄。
實現用戶賬號的管理,要完成的工作主要有如下幾個方面:
用戶賬號的添加、刪除與修改。
用戶口令的管理。
用戶組的管理。

一、Linux系統用戶賬號的管理

用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。
添加用戶賬號就是在系統中創建一個新賬號,然後為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源。剛添加的賬號是被鎖定的,無法使用。
1、添加新的用戶賬號使用 useradd命令,其語法如下:
代碼:
useradd 選項 用戶名
其中各選項含義如下:
代碼:
-c comment 指定一段註釋性描述。
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
-g 用戶組 指定用戶所屬的用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登錄Shell。
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號。

用戶名 指定新賬號的登錄名。
例1:
代碼:
# useradd –d /usr/sam -m sam
此命令創建了一個用戶sam,
其中-d和-m選項用來為登錄名sam產生一個主目錄/usr/sam(/usr為默認的用戶主目錄所在的父目錄)。
例2:
代碼:
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一個用戶gem,該用戶的登錄Shell是/bin/sh,它屬於group用戶組,同時又屬於adm和root用戶組,其中group用戶組是其主組。
這裏可能新建組:#groupadd group及groupadd adm 
增加用戶賬號就是在/etc/passwd文件中為新用戶增加一條記錄,同時更新其他系統文件如/etc/shadow, /etc/group等。
Linux提供了集成的系統管理工具userconf,它可以用來對用戶賬號進行統一管理。
2、刪除帳號
如果一個用戶的賬號不再使用,可以從系統中刪除。刪除用戶賬號就是要將/etc/passwd等系統文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。刪除一個已有的用戶賬號使用userdel命令,其格式如下:
代碼:
userdel 選項 用戶名
常用的選項是-r,它的作用是把用戶的主目錄一起刪除。
例如:
代碼:
# userdel sam
此命令刪除用戶sam在系統文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除用戶的主目錄。
3、修改帳號
修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登錄Shell等。
修改已有用戶的信息使用usermod命令,其格式如下:
代碼:
usermod 選項 用戶名
常用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項一樣,可以為用戶指定新的資源值。另外,有些系統可以使用如下選項:
代碼:
-l 新用戶名
這個選項指定一個新的賬號,即將原來的用戶名改為新的用戶名。
例如:
代碼:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令將用戶sam的登錄Shell修改為ksh,主目錄改為/home/z,用戶組改為developer。
4、用戶口令的管理
用戶管理的一項重要內容是用戶口令的管理。用戶賬號剛創建時沒有口令,但是被系統鎖定,無法使用,必須為其指定口令後才可以使用,即使是指定空口令。
指定和修改用戶口令的Shell命令是passwd。超級用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。命令的格式為:
代碼:
passwd 選項 用戶名
可使用的選項:
代碼:
-l 鎖定口令,即禁用賬號。
-u 口令解鎖。
-d 使賬號無口令。
-f 強迫用戶下次登錄時修改口令。
如果默認用戶名,則修改當前用戶的口令。
例如,假設當前用戶是sam,則下面的命令修改該用戶自己的口令:
代碼:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超級用戶,可以用下列形式指定任何用戶的口令:
代碼:
# passwd sam
New password:*******
Re-enter new password:*******
普通用戶修改自己的口令時,passwd命令會先詢問原口令,驗證後再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給用戶;而超級用戶為用戶指定口令時,就不需要知道原口令。
為了系統安全起見,用戶應該選擇比較復雜的口令,例如最好使用8位長的口令,口令中包含有大寫、小寫字母和數字,並且應該與姓名、生日等不相同。
為用戶指定空口令時,執行下列形式的命令:
代碼:
# passwd -d sam

此命令將用戶sam的口令刪除,這樣用戶sam下一次登錄時,系統就不再詢問口令。
passwd命令還可以用-l(lock)選項鎖定某一用戶,使其不能登錄,例如:
代碼:
# passwd -l sam
新建用戶異常:
useradd -d /usr/hadoop -u 586 -m hadoop -g hadoop
1 Creating mailbox file: 文件已存在
刪除即可 rm -rf /var/spool/mail/用戶名
2 useradd: invalid numeric argument ‘hadoop‘
這是由於hadoop組不存在 請先建hadoop組
通過cat /etc/passwd 可以查看用戶的pass
cat /etc/shadow 可以查看用戶名
cat /etc/group 可以查看 組


linux下創建用戶(二)
二、Linux系統用戶組的管理

每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理。不同Linux 系統對用戶組的規定有所不同,如Linux下的用戶屬於與它同名的用戶組,這個用戶組在創建用戶時同時創建。
用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新。

1、增加一個新的用戶組使用groupadd命令。 其格式如下:

代碼:
groupadd 選項 用戶組

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

例1:

代碼:
# groupadd group1

此命令向系統中增加了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎上加1。

例2:

代碼:
#groupadd -g 101 group2

此命令向系統中增加了一個新組group2,同時指定新組的組標識號是101。

2、如果要刪除一個已有的用戶組,使用groupdel命令, 其格式如下:

代碼:
groupdel 用戶組

例如:

代碼:
#groupdel group1

此命令從系統中刪除組group1。

3、修改用戶組的屬性使用groupmod命令。 其語法如下:

代碼:
groupmod 選項 用戶組

常用的選項有:
代碼:
-g GID 為用戶組指定新的組標識號。
-o 與-g選項同時使用,用戶組的新GID可以與系統已有用戶組的GID相同。
-n新用戶組 將用戶組的名字改為新名字

例1:

代碼:
# groupmod -g 102 group2

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

例2:

代碼:
# groupmod –g 10000 -n group3 group2

此命令將組group2的標識號改為10000,組名修改為group3。

4、如果一個用戶同時屬於多個用戶組,那麽用戶可以在用戶組之間切換,以便具有其他用戶組的權限。用戶可以在登錄後,使用命令newgrp切換到其他用戶組,這個命令的參數就是目的用戶組。 例如:

代碼:
$ newgrp root

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


權限分配
分配權限
chown -R hadoop:hadoop /usr/hadoop/

讓普通用戶擁有root的權限
1.root登錄
2.adduser 用戶名
3.passwd 用戶名
確定密碼
4.修改/etc/passwd即可,把用戶名的ID和ID組修改成0。

useradd 示例 – 增加一個新用戶到附加用戶組

新增加一個用戶並將其列入一個已有的用戶組中需要用到 useradd 命令。如果還沒有這個用戶組,可以先創建該用戶組。

命令參數如下:

useradd -G {group-name} username

例如,我們要創建一個新用戶 cnzhx 並將其添加到用戶組 developers 中。首先需要以 root 用戶身份登錄到系統中。先確認一下是否存在 developers 這個用戶組,在命令行輸入:

# grep developers /etc/group

輸出類似於:

developers:x:1124:

如果看不到任何輸出,那麽就需要先創建這個用戶組了,使用 groupadd 命令:

# groupadd developers

然後創建用戶 cnzhx 並將其加入到 developers 用戶組:

# useradd -G developers cnzhx

為用戶 cnzhx 設置密碼:

# passwd cnzhx

為確保已經將該用戶正確的添加到 developers 用戶組中,可以查看該用戶的屬性,使用 id 命令:

# id cnzhx

輸出類似於:

uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)

前面命令中用到的大寫的 G (-G) 參數就是為了將用戶添加到一個附加用戶組中,而同時還會為此用戶創建一個屬於他自己的新組 cnzhx。如果要將該用戶同時增加到多個附加用戶組中,可以使用英文半角的逗號來分隔多個附加組名(不要加空格)。例如,同時將 cnzhx 增加到 admins, ftp, www, 和 developers 用戶組中,可以輸入以下命令:

# useradd -G admins,ftp,www,developers cnzhx

useradd 示例 – 增加一個新用戶到主要用戶組

要增加用戶 cnzhx 到組 developers,可以使用下面的指令:

# useradd -g developers cnzhx
# id cnzhx

輸出類似於:

uid=1123(cnzhx) gid=1124(developers) groups=1124(developers)

請註意如前面的示例的區別,這裏使用了小寫字母 g (-g)作為參數,此時用戶的主要用戶組不再是 cnzhx 而直接就是 developers。

小寫字母 g (-g)將新增加的用戶初始化為指定為登錄組(主要用戶組)。此組名必須已經存在。組號(gid)即是此已有組的組號。

usermod 示例 – 將一個已有用戶增加到一個已有用戶組中

將一個已有用戶 cnzhx 增加到一個已有用戶組 apache 中,使此用戶組成為該用戶的附加用戶組,可以使用帶 -a 參數的 usermod 指令。-a 代表 append, 也就是將用戶添加到新用戶組中而不必離開原有的其他用戶組。不過需要與 -G 選項配合使用:

# usermod -a -G apache cnzhx

如果要同時將 cnzhx 的主要用戶組改為 apache,則直接使用 -g 選項:

# usermod -g apache cnzhx

如果要將一個用戶從某個組中刪除,則

gpasswd -d user group

但是這個時候需要保證 group 不是 user 的主組。

附:管理用戶(user)和用戶組(group)的相關工具或命令

1)管理用戶(user)的工具或命令

useradd 註:添加用戶
adduser 註:添加用戶
passwd 註:為用戶設置密碼
usermod 註:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
pwcov 註:同步用戶從/etc/passwd 到/etc/shadow
pwck 註:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整;
pwunconv 註:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創建/etc/passwd ,然後會刪除 /etc/shadow 文件;
finger 註:查看用戶信息工具
id 註:查看用戶的UID、GID及所歸屬的用戶組
chfn 註:更改用戶信息工具
su 註:用戶切換工具
sudo 註:sudo 是通過另一個用戶來執行命令(execute a command as another user),su 是用來切換用戶,然後通過切換到的用戶來完成相應的任務,但sudo 能後面直接執行命令,比如sudo 不需要root 密碼就可以執行root 賦與的執行只有root才能執行相應的命令;但得通過visudo 來編輯/etc/sudoers來實現;
visudo 註:visodo 是編輯 /etc/sudoers 的命令;也可以不用這個命令,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
sudoedit 註:和sudo 功能差不多;

2)管理用戶組(group)的工具或命令
groupadd 註:添加用戶組;
groupdel 註:刪除用戶組;
groupmod 註:修改用戶組信息
groups 註:顯示用戶所屬的用戶組
grpck
grpconv 註:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;
grpunconv 註:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然後刪除gshadow文件;

將一個用戶添加到某個組,即可讓此用戶擁有該組的權限。比如在配置 VPS 上的 LAMP 服務器的時候,運行網站的 apache 用戶修改的文件,如果服務器管理用戶 cnzhx(可以通過 ssh 登錄到服務器)需要修改此文件的話,就可以將 cnzhx 加入到 apache 組中達到目的。

用戶管理相關命令
useradd 添加用戶
adduser 添加用戶
userdel 刪除用戶
passwd 為用戶設置密碼
usermod 修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等

用戶組管理相關命令
groupadd 添加用戶組
groupdel 刪除用戶組
groupmod 修改用戶組信息
groups 顯示用戶所屬的用戶組
newgrp 切換到相應用用戶組


大家看了這麽多的命令,可能會很頭暈,其實在日常使用和維護中,我們常用的並不是很多,下面我們就把他們重新拆分組合,讓學習變的很容易。


命令的具體使用

1、增加新用戶、編輯用戶與刪除用戶

相關命令:useradd, passwd, usermod, userdel

新增用戶useradd/adduser

語法:useradd [options] LOGIN
options有很多(可以用useradd –hlep 或者man useradd查看),我們簡單介紹幾個。


-d 目錄 指定用戶主目錄,(默認是在/home目錄下創建和用戶名一樣的目錄)
-g 用戶組 指定用戶所屬的用戶組(主組)
-G 用戶組 指定用戶所屬的附加組(這些組必需事先已經增加過了或者是系統中已經存在)
-s Shell 指定用戶的登錄Shell
-u UID 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號
-c 描述 指定一段註釋性描述
-m 使用者目錄若不存在則自動建立(默認選項)


我們來看幾個實例
實例1,最簡單的新增用戶
[[email protected] ~]# useradd opser_1
[[email protected] ~]# passwd opser_1
Changing password for user opser_1.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.


註:如果設置的密碼過於簡單的話,系統會給出上面的提示,其實密碼已經設定了。這只是針對root來說的,如果是用戶自己設置了過於簡單的密碼,系統是不會接收的。

[[email protected] ~]# grep opser_1 /etc/passwd
opser_1:x:501:501::/home/opser_1:/bin/bash

用戶和組的ID都是501,家目錄和使用的SHELL都給出來了。註意,這兩個ID可以是不同的。


[[email protected] ~]# grep opser_1 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
用戶的密碼和關於密碼的一些限制也很明白(不明白看上面的例子)

[[email protected] ~]# grep opser_1 /etc/group /etc/gshadow
/etc/group:opser_1:x:501:
/etc/gshadow:opser_1:!::

我們可以看到,在建立用戶的同時,也建立了一個和用戶同名的用戶組

[[email protected] ~]# ls -a /home/opser_1/
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla

用戶家目錄下的內容
[[email protected] ~]# ls -ld /home/opser_1/
drwx——. 4 opser_1 opser_1 4096 Jan 7 14:41 /home/opser_1/

實例2,新增用戶,並設置UID、組以及附加組並指定一個不可登陸的SHELL
[[email protected] ~]# groupadd -g 600 opser.org
[[email protected] ~]# groupadd user_group
[[email protected] ~]# tail -n 4 /etc/group
yufei:x:500:
opser_1:x:501:
opser.org:x:600:
user_group:x:601:

我們看到,增加的第一個opser.org用戶組的時候,我限制了他的GID是600,而第二個沒有限制就變成了601了。
[[email protected] ~]# useradd -g user_group -G opser.org -u 580 -s /sbin/nologin opser_2
[[email protected] ~]# passwd opser_2
Changing password for user opser_2.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

我對增加的用戶opser_2做了一些限制,而且也對他設置了與opser_1一樣的密碼(其實這個密碼設置了也沒有什麽用,因為我後面限制了他所使用的SHELL是/sbin/nologin,同樣是無法登陸系統),我們來對比
opser_1與opser_2這兩個用戶的相關文件

[[email protected] ~]# tail -n 2 /etc/passwd
opser_1:x:501:501::/home/opser_1:/bin/bash
opser_2:x:580:601::/home/opser_2:/sbin/nologin
[[email protected] ~]# tail -n 2 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
opser_2:$6$VZTnZmFj$hayn6ycBCy9Mnfpwi13pAUOquwOVTmC/NiUuBViMnCp4PhowNBeYuFsYZGe3flfYhH2GVJhimbDF5o9pn6E5h0:14981:0:99999:7:::
[[email protected] ~]# tail -n 2 /etc/group
opser.org:x:600:opser_2
user_group:x:601:

註:
1、opser_1和opser_2這兩個用戶雖然密碼都是一樣,但經過加密後,在shadow中顯示的依然是不同的。
2、opser_2這個用戶的UID和GID不再是用系統默認的,而是我們指定的。
3、opser_2他的主組的GID是601,也就是user_gruop,同時在opser.org這個組中,也有opser_2這個成員。
4、opser_2這個用戶雖然指定了SHELL,但這個SHELL是個特殊的SHELL,是不能登陸系統的。這個(/sbin/nologin)SHELL一般是在增加系統帳戶的時候常用。
5、在建立用戶的時候會以最後建立的用戶UID為參考。如opser_2的UID是580,那麽再建立一個用戶的時候,就變成581了,而502~579這些就沒有用戶在使用,那麽我想從503開始的話,要怎麽來實現?可以通過加上-r參數或者是自己指定。
關於其他的參數,請各位看官自己看幫助來研究。


和用戶相關的其他調用文件


通過上面的兩個例子,有沒有朋友會有這樣的疑問,在增加用戶的時候,家目錄裏面的文件是從哪裏來的?UID和GID參考了什麽?還有shell是根據什麽來的?

想知道這些問題,可以用man useradd來查看,你會發現,在這個幫助文件中,會有FILES那一段,除了我們上一節講的四個文件外,還有

/etc/default/useradd
Default values for account creation.

/etc/skel/
Directory containing default files.

/etc/login.defs
Shadow password suite configuration.


看到了上面的這三個文件的說明,上面的問題是不是已經找到答案了!

想看看是如何規劃的,那麽就打開文件看看吧。
/etc/default/useradd 通過useradd 添加用戶時的規則文件
[[email protected] ~]# vim /etc/default/useradd
# useradd defaults file

GROUP=100 #主組的GID也是從100開始的
HOME=/home #把用戶的家目錄建在/home中,這個目錄也可以自己設定
INACTIVE=-1 #是否啟用密碼過期後是否會失效,-1表示密碼永遠不會失效。如10,則代表過期10天後才失效。
EXPIRE= #帳號終止日期,不設置表示不啟用
SHELL=/bin/bash #所用SHELL的類型
SKEL=/etc/skel #用戶家目錄裏面文件的參照位置。也就是說,當我們用adduser添加用戶時,用戶家目錄下的文件,都是從這個目錄中復制過去的;
CREATE_MAIL_SPOOL=yes #創建用戶的郵件池。相當於一個用戶的郵箱


/etc/skel/ 增加用戶時候,用戶家目錄下的文件來源。此目錄下的文件都是隱藏文件。
[[email protected] ~]# ls -la /etc/skel/
total 36
drwxr-xr-x. 4 root root 4096 Dec 15 22:41 .
drwxr-xr-x. 96 root root 12288 Jan 7 13:40 ..
-rw-r–r–. 1 root root 18 Jun 22 2010 .bash_logout
-rw-r–r–. 1 root root 176 Jun 22 2010 .bash_profile
-rw-r–r–. 1 root root 124 Jun 22 2010 .bashrc
drwxr-xr-x. 2 root root 4096 Jul 14 23:55 .gnome2
drwxr-xr-x. 4 root root 4096 Dec 15 22:35 .mozilla

/etc/login.defs 創建用戶時的一些規劃。比如創建用戶時,是否需要家目錄,UID和GID的範圍,用戶的期限等等。
[[email protected] ~]# vim /etc/login.defs
MAIL_DIR /var/spool/mail #創建用戶時,要在目錄/var/spool/mail中創建一個用戶mail文件

PASS_MAX_DAYS 99999 #用戶的密碼不過期最多的天數
PASS_MIN_DAYS 0 #密碼修改之間最小的天數
PASS_MIN_LEN 5 #密碼最小長度
PASS_WARN_AGE 7 #警告時間

UID_MIN 500 #UID從500開始
UID_MAX 60000 #最大UID為60000

GID_MIN 500 #GID從500開始
GID_MAX 60000 #最大GID為60000

CREATE_HOME yes #是否創用戶家目錄

UMASK 077 #創建用戶家目錄時候的默認權限限制

USERGROUPS_ENAB yes #用userdel刪除用戶的時候,如果這個主組中沒有其他用戶,那麽也把這個組給刪除
ENCRYPT_METHOD SHA512 #用戶密碼的加密方式為SHA512

通過上面的講解,我想你已經深入了解了在linux系統中增加用戶的過程了吧,這個過程就是:

在 /etc/passwd 裏面建立一行與賬號相關的數據,包括建立 UID/GID/家目錄等;
在 /etc/shadow 裏面將此賬號的密碼相關參數填入,但是尚未有密碼;
在 /etc/group 裏面加入一個與賬號名稱一模一樣的組名;
在 /home 底下建立一個與賬號同名的目錄作為用戶家目錄,且權限為 700
從/etc/skel/中COPY相應的文件到用戶的家目錄
最後通過passwd命令,把密碼加密後寫到/etc/shadow中

用戶密碼設置

上面我們著重講了用戶創建,沒有太多的講用戶的密碼設置。
其實在Linux系統中,命令的作用就是改配置文件,而這個passwd命令就是把密碼加密後寫入/etc/shadow(二欄)中,我們也知道這個文件中的欄位有9欄,那麽其它欄要如何通過passwd這個命令來改呢?
看幫助吧

passwd –help
格式:passwd [OPTION...] <accountName>
-l :是Lock的意思,會將 /etc/shadow 第二欄最前面加上”!”使密碼失效
-u :與-l相對,是Unlock的意思
-S :列出密碼相關參數,即shadow文件的大部分信息
-n :後面接天數,shadow的第4字段,不可修改密碼天數
-x :後面接天數,shadow的第5字段,多長時間內必須要修改密碼
-w :後面接天數,shadow的第6字段,密碼過期前的警告天數
-i :後面接日期,shadow 的第7字段,密碼失效日期


這些大家自己來實驗吧,我除了密碼用passwd設置外,其它的相關限制,我更習慣直接在/etc/shadow中修改。
還有一個和passwd相似的命令,那就是chage大家也是自己研究吧!


在這裏順便也說一個技巧,就是我們常常會遇到這樣一種情況:比如我下載了某個應用,但這個應該是人家集成好的,這時候別人會給你一個默認的用戶和密碼,第一次登陸的時候,只有重新設置密碼後才登陸。其實這個功能的實現,就是改我們shadow中的第三欄,把這個數值改成0就OK了!有興趣的朋友可以試試。

編輯用戶usermod

新增用戶已經搞定,但要是對用戶的相關信息進行一下修改,除了通過改文件外,還有沒有其他的方法了?當然有啊,命令啊,命令的最終目的也是改配置文件。那麽下面就來看看如何通過usermod來修改用戶的相關0信息。
[[email protected] ~]# usermod -h
Usage: usermod [options] LOGIN

-c :後面接賬號的說明,即/etc/passwd第五欄的說明欄,可以加入一些賬號的說明
-d :後面接賬號的家目錄,即修改/etc/passwd的第六欄
-e :後面接日期,格式是YYYY-MM-DD也就是在/etc/shadow內的第八欄
-f :後面接天數,修改shadow的第七欄
-g :後面接主群組,修改/etc/passwd的第四個字段,即是GID的字段
-G:後面接附加群組,修改這個使用者能夠支持的群組,修改的是/etc/group
-a :與 -G 合用,可增加附加群組的支持而非設定
-l :後面接賬號名稱。修改賬號名稱,/etc/passwd的第一欄
-s :後面接Shell的文件,例如/bin/bash或/bin/csh等等
-u :後面接 UID 數字,修改用戶的UID /etc/passwd第三欄
-L :暫時將用戶的密碼凍結,讓他無法登入。其實就是在/etc/shadow的密碼欄前面加上了“!”
-U:將/etc/shadow 密碼欄的“!”去掉


其實,這個usermod和useradd的用法非常相似,只是增加了用戶鎖定與解鎖。
我們看幾個例子


修改用戶的說明信息
[[email protected] ~]# grep opser_1 /etc/passwd
opser_1:x:501:501::/home/opser_1:/bin/bash
[[email protected] ~]# usermod -c “opser.org exmple” opser_1
[[email protected] ~]# grep opser_1 /etc/passwd
opser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash


設置用戶的過期日期
[[email protected] ~]# grep opser_1 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
[[email protected] ~]# usermod -e “2011-02-01″ opser_1
[[email protected] ~]# grep opser_1 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:
我們就簡單的給大家介紹這兩個參數,其他的自己研究吧!


刪除用戶userdel


這個命令很簡單,
[[email protected] ~]# userdel -h
Usage: userdel [options] LOGIN
-f :強制刪除,包括用戶的一切相關內容,這個參數是危險的參數,不建議大家使用。詳細說明看MAN
-r :刪除用戶的家目錄和用戶的郵件池
其實這個-r參數就是刪除用戶的相關配置文件中的信息
用戶賬號/密碼相關參數:/etc/passwd, /etc/shadow
用戶相關參數:/etc/group, /etc/gshadow
用戶個人文件數據: /home/username, /var/spool/mail/username

不給大家演示了,自己動手實踐吧!

註:
1、userdel -r 這個命令使用的時候,一定要確認這個用戶的所有數據真的不再使用了。
2、建議在使用這個命令之前,查找出這個帳戶的所有數據(find / -user username),確認後再進行操作。


2、用戶組管理

這也和上面的用戶管理差不多,只是修改的文件(/etc/group, /etc/gshadow)不同


增加用戶組groupadd

[[email protected] ~]# groupadd -h
Usage: groupadd [options] GROUP
-g gid :設置用戶組,並指定相應的GID
-r :這個參數和我們的useradd -r 是一樣的道理
這個命令的使用,我們前面已經涉及到了,也很簡單。
[[email protected] ~]# tail -n 4 /etc/group /etc/gshadow
==> /etc/group <==
yufei:x:500:
opser_1:x:501:
opser.org:x:600:
user_group:x:601:

==> /etc/gshadow <==
yufei:!!::
opser_1:!::
opser.org:!::
user_group:!::

[[email protected] ~]# groupadd new_group_1
[[email protected] ~]# groupadd -r new_group_2
[[email protected] ~]# tail -n 4 /etc/group /etc/gshadow
==> /etc/group <==
opser.org:x:600:
user_group:x:601:
new_group_1:x:602:
new_group_2:x:489:

==> /etc/gshadow <==
opser.org:!::
user_group:!::
new_group_1:!::
new_group_2:!::

編輯用戶組groupmod

與usermod也是類似的
[[email protected] ~]# groupmod -h
Usage: groupmod [options] GROUP
-g :修改既有的 GID 數字;
-n :修改既有的組名


看個例子
將剛剛上個指令建立的new_group_2名稱改為mygroup,GID為666
[[email protected] ~]# groupmod -g 666 -n mygroup new_group_2
[[email protected] ~]# tail -n 4 /etc/group /etc/gshadow
==> /etc/group <==
opser.org:x:600:
user_group:x:601:
new_group_1:x:602:
mygroup:x:666:

==> /etc/gshadow <==
opser.org:!::
user_group:!::
new_group_1:!::
mygroup:!::

註:這個GID建議還是不要隨意更改,防止造成系統的GID混亂。

刪除用戶組groupdel

這個命令更簡單,沒有任何的參數,後面直接跟上想刪除的用戶組名
註:不能用groupdel -h 或 groupdel –help來查看幫助,只能用man groupdel

[[email protected] ~]# tail -n 2 /etc/passwd /etc/shadow
==> /etc/passwd <==
yufei:x:500:500:yufei:/home/yufei:/bin/bash
opser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash

==> /etc/shadow <==
yufei:$6$VdpG9FMuvcR49tD2$zhfYkufmtPd5jjzYG/lSvErSWPusnrqv52ikQxsRs0sYCBwLOakw8v/cz3nksC6p7l8MhePXC7FCXDhv1YbTM/:14958:0:99999:7:::
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:
[[email protected] ~]# tail -n 5 /etc/group /etc/gshadow
==> /etc/group <==
opser_1:x:501:
opser.org:x:600:
user_group:x:601:
new_group_1:x:602:
mygroup:x:666:

==> /etc/gshadow <==
opser_1:!::
opser.org:!::
user_group:!::
new_group_1:!::
mygroup:!::

我們把前面建立和幾個用戶組給刪除
[[email protected] ~]# groupdel mygroup
[[email protected] ~]# groupdel new_group_1
[[email protected] ~]# groupdel opser.org
[[email protected] ~]# groupdel opser_1
groupdel: cannot remove the primary group of user ‘opser_1′
為什麽刪除不了opser_1用戶組呢?因為這個組裏面還有用戶。所以在刪除用戶組前,一定要查看這個組中還有沒有成員了。

[[email protected] ~]# tail -n 3 /etc/group /etc/gshadow
==> /etc/group <==
yufei:x:500:
opser_1:x:501:
user_group:x:601:

==> /etc/gshadow <==
yufei:!!::
opser_1:!::
user_group:!::

用戶組的管理員設置gpasswd

[[email protected] ~]# gpasswd
Usage: gpasswd [option] GROUP
:沒有參數,設置用戶組密碼
-a : 增加用戶到用戶組中
-d :從用戶組中刪除用戶
-r :刪除用戶組的密碼
-M :設置用戶組成員(多成員)
-A :設置用戶組管理員(列表)


我們來看個例子
先建立兩個用戶,並為其設置密碼
[[email protected] ~]# useradd test_user1
[[email protected] ~]# passwd test_user1
Changing password for user test_user1.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] ~]# useradd test_user2
[[email protected] ~]# passwd test_user2
Changing password for user test_user2.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

查看這兩個用戶的相關信息
[[email protected] ~]# tail -n 2 /etc/passwd /etc/shadow
==> /etc/passwd <==
test_user1:x:502:502::/home/test_user1:/bin/bash
test_user2:x:503:503::/home/test_user2:/bin/bash

==> /etc/shadow <==
test_user1:$6$EL8UBf7P$gZL3N9GJDL6JhBJnwTZYyiOO8d2zu7Ti9B5eDTP7Hb17AT6Xe4/BuiNVBszO/UoycYIBZZygIH3oA3aKDOSA11:14982:0:99999:7:::
test_user2:$6$tTs0BG90$7LLaUwF9pP/g0h4/IPAwH1x4JE.rSXjYP/wbUq2kxPsXM4/7AaniQdi6G85QIfH6.cspo7OTutqPZblbRUUVT/:14982:0:99999:7:::


查看系統中最後加入的用戶組(說法有點牽強)
[[email protected] ~]# tail -n 3 /etc/group /etc/gshadow
==> /etc/group <==
user_group:x:601:
test_user1:x:502:
test_user2:x:503:

==> /etc/gshadow <==
user_group:!::
test_user1:!::
test_user2:!::


把test_user1、test_user2加到user_group組中
[[email protected] ~]# gpasswd -a test_user1 user_group
Adding user test_user1 to group user_group
[[email protected] ~]# gpasswd -a test_user2 user_group
Adding user test_user2 to group user_group
[[email protected] ~]# tail -n 3 /etc/group /etc/gshadow

==> /etc/group <==
user_group:x:601:test_user1,test_user2
test_user1:x:502:
test_user2:x:503:
==> /etc/gshadow <==
user_group:!::test_user1,test_user2
test_user1:!::
test_user2:!::


設置test_user1為user_group組的管理員
[[email protected] ~]# gpasswd -A test_user1 user_group
[[email protected] ~]# tail -n 3 /etc/gshadow
user_group:!:test_user1:test_user1,test_user2
test_user1:!::
test_user2:!::
註:這個用戶組的管理員的作用就是,可以像root用戶一樣來管理用戶組中其他成員。


設置user_group的密碼
[[email protected] ~]# gpasswd user_group
Changing the password for group user_group
New Password:
Re-enter new password:
[[email protected] ~]# tail -n 3 /etc/gshadow
user_group:$6$2UZWz/O32$vViBQd.Bu8y.RfUbH/9QFYxqN.t31u7r2PztjfysgnKsJ4SUFBvtc1qg7N89bqBRpqUG1fQNno5ij0ja4B/3M1:test_user1:test_user1,test_user2
test_user1:!::
test_user2:!::

切換用戶組newgrp

該命令將當前用戶切換到相應的用戶組
註:前提條件是這個用戶組要是該用戶的主組或附加組。

如何在linux下使用userdel和 groupdel刪除用戶和用戶組


userdel很簡單,只有一個參數可選 -r ;如果加參數-r ,表示在刪除用戶的同時,一並把用戶的家目錄及本地郵件存儲的目錄或文件也一同刪除;比如我們現在有個用戶murray,其家目錄位於/var目錄中,現在我們來刪除這個用戶

userdel murray 註:刪除用戶murray,但不刪除其家目錄及文件;
userdel -r murray 註:刪除用戶murray,其家目錄及文件一並刪除;

警告: 請不要輕易用-r參數;他會刪除用戶的同時刪除用戶所有的文件和目錄,切記;如果用戶目錄下有重要的文件,在刪除前請備份;
其實也有最簡單的辦法,但這種辦法有點不安全,也就是直接在/etc/passwd中刪除您想要刪除用戶的記錄;但最好不要這樣做,/etc/passwd 是極為重要的文件,可能您一不小心會操作失誤;

groupdel 是用來刪除用戶組的;
語法格式:groupdel 用戶組
groupdel admin


debian添加刪除用戶


增加普通用戶命令:
adduser abc

passwd abc

exit

用abc登錄

/etc/passwd中保存了用戶信息

LINUX創建用戶的命令
useradd -g test -d /home/test1 -s /etc/bash -m test1
註解:-g 所屬組 -d 家目錄 -s 所用的SHELL
刪除用戶命令
userdel -r test1
創建密碼命令
passwd

創建新用戶

useradd命令(也能夠使用adduser)用來創建新的用戶帳號,其命令格式如下:
表4—19 useradd命令常用選項
常用現象
意 義
-d
配置新用戶的登陸目錄
-e
配置新用戶的停止日期,日期格式為MM/DD/YY
-f
帳戶過期幾日後永久停權。當值為0時帳號則立即被停權。而當值為-1時則關閉此功能。預設值為-1
-g
使新用戶加入群組
-G
使新用戶加入一個新組。每個群組使用逗號“,”隔開,不能夠夾雜空白字
-s
指定新用戶的登陸Shell
-u
設定新用戶的ID值

成功創建一個新用戶以後,在/etc/passwd文檔中就會增加一行該用戶的信息,其格式如下:
〔用戶名〕:〔密碼〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目錄〕:〔登陸Shell〕
其中個字段被冒號“:”分成7各部分。
由於小於500的UID和GID一般都是系統自己保留,不用做普通用戶和組的標誌,所以新增加的用戶和組一般都是UID和GID大於500的。
例如使用如下命令:

[[email protected]][email protected][/email]
root〕# useradd user1
將會創建一個名為userl的用戶,關於用戶管理命令已介紹過,在此也不做更多的介紹了。

4.6.2 配置和修改用戶口令passwd

passwd命令用來配置和修改用戶命令,只有終極用戶和用戶自己能夠修改密碼,其他的普通用戶沒有修改其他用戶密碼的權利。其命令如下:
# passwd〔用戶名〕
為避免輸入密碼是被人註意到有多少位,Linux並不采用類似Windows的密碼回顯〔顯示為*號〕,所以,輸入的這些字符是看不見的。例如,為新建的userl用戶配置密碼可使用如下命令:

[[email protected]][email protected][/email]
root〕# passwd user1
根據系統的提示信息輸入兩次密碼,系統會顯示:
passwd ::all authentication tokens updated successfully
表示修改密碼成功了。新建用戶的工作只有在該用戶配置了口令後才算完成,否則無法使用該用戶名登陸。

4.6.3 修改用戶信息usermod

usermod命令用來修改用戶信息,其命令格式如下:
# usermod〔選項〕〔用戶名〕

表4-20 usermod命令常用選項
常用選項
意 義
-d
更新使用者新的登陸目錄
-e
配置新用戶的停止日期,日期格式為MM/DD/YY
-f
帳戶過期幾日後永久停權。當值為0時帳號則立即被停權。而當值為-1時則關閉此功能。預設值為-1
-g
更新使用者新用戶加入群組
-G
定義使用者為一堆groups的成員。每個群組使用“??”隔開,不能夠夾雜空白字
-l
變更用戶登陸時的名稱,同時使用者目錄名也會跟著更動成新的名稱
-s
指定新用戶Shell
-u
用戶ID值,必須為唯一的ID值。用戶目錄樹下所用的文檔目錄其userID會自動變更,放在擁護目錄外的文檔則要自行手動更動
例如,下面的命令修改用戶信息:

[[email protected]][email protected][/email]
root〕# usermod –d/home/user2 –s/bin/bash user2
將用戶名user2的主目錄路徑配置在/home/user1,登陸的Shell配置為/usr/bin/gcc。
一般情況下usermod命令會參照命令指令的部分修改用戶帳號信息。但usermod不允許改變正在線上的使用者帳號名稱,因此,當用usermod來改變用戶帳號信息時,必須確認這名沒在電腦上執行任何程式。
4.6.4  新建組群groupadd

groupadd命令用來建立新的用戶組,其命令格式如下:
# groupadd〔選項〕〔用戶名稱〕
常用選項有:
-g:GID值。除非使用-o參數不然該值必須是唯一,不可相同,數值不可為負。
GID值預設為最小不得小於500而逐次增加。0—499傳統上是保留系統帳號使用。
-f:新增的一個已存在的群組帳號,系統會出現錯誤訊息然後結束groupadd.
假如是這樣的情況,不會新增這個群組(假如是這個情況,系統不會在新增一次)。也可同時加上-g選項,當您加上一個GID時,此時GID就不用是唯一值, 可不加-o參數,建好的群組會顯示建立後的結果(adding a group as neither –g or –o options were specified),這是Red Hat Linux額外增設的選項。
4.6.5 刪除用戶userdel

userdel命令用來刪除已存在的用戶及相關的文檔,其命令格式如下:
# userdel 〔選項〕用戶名
userdel命令的常用選項:
-r將用戶目錄下的文檔一並刪除。在其他位置上的文檔也將一一找出並刪除。
Userdel不允許移除正在線上的用戶帳號,因此,假如想刪除這類用戶帳號,必須先殺掉用戶在系統上運行的程式才能進行帳號刪除。

4.6.6 刪除群組groupdel

groupdel命令用來刪除已存在的用戶組,其命令格式如下:
# groupdel組名
同userdel類似,假如有任何一個組內的用戶在上線,就不能移除該用戶組,因此,假如組內有用戶在線的話,最好先移出該用戶,然後在刪除該用戶。

4.6.7 用戶間轉換su

su 命令常用於不同用戶間轉換。其命令格式如下:
# su〔用戶名〕
su命令的常見用法是變成跟用戶或終極用戶,假如發出不帶用戶名的su命令,則系統提示輸入根口令,輸入之後則可換為根用戶。假如登陸為根用戶,則能夠用su命令成為系統上任何用戶而無需口令。
例如,假如登陸為user1,要轉換為user2,只要用如下命令:
# su user2
然後系統提示輸入user2口令,輸入正確的口令之後就能夠轉換到user2。完成之後就能夠用exit命令返回到user1。

4.6.8 查看當前在線用戶who

who命令主要用於查看當前在線上的用戶情況。這個命令很有用。假如用戶想和其他用戶建立即使通訊,比如使用talk命令,那麽首先要確定的就是該用戶確實在線上,不然talk進程就無法建立起來。
又如,系統管理員希望監控每個登陸的用戶此時此刻的所作所為,也要使用who命令。Who命令的常用命令格式和常用選項如下:
# who〔選項〕
命令who常用命令選項如表4-21所示。
表 4-21 命令who常用命令選項
常用選項
意 義
-a
顯示任何用戶的任何信息
-m
顯示運行該程式的用戶名,和“who am I”的作用相同
-q
只顯示用戶的登陸帳號和登陸用戶的數量,該選項優先級高於其他任何選項
-u
在登陸用戶後面顯示該用戶最後一次對系統進行操作距今的時間
-H
顯示列標題

任何的選項是可選的,例如,使用命令:

[[email protected]][email protected][/email]
root〕# who-aH
其中主標題的含義如下表4—22所示。
表4-22 who輸出常用標題含義
標題
含義
USER
用戶登陸
LINE
用戶登陸使用終端
TIME
用戶登陸時間
LDIE
用戶空閑時間,即至進行操作的時間
PID
用戶登陸shell的進程ID

也能夠單獨使用who命令,這時將顯示登陸用戶另、使用終端設備連同登陸到系統的時間三項內容

linux (debian)查看和添加用戶或用戶組

1、Linux裏查看所有用戶
linux裏,並沒有像windows的net user,net localgroup這些方便的命令來管理用戶.

Xwindows界面的就不說了.

(1)在終端裏.其實只需要查看 /etc/passwd文件就行了.
(2)看第三個參數:500以上的,就是後面建的用戶了.其它則為系統的用戶.

或者用cat /etc/passwd

2、用戶管理命令

useradd 註:添加用戶
添加用戶以後,會相應的在 /home目錄下創建關於該用戶的一個文件夾(useradd tuping)


給linux增加一個和root相同權限的用戶
#useradd -u 0 -o -g 0 username使用 -o參數可以允許建立相同id的用戶

增加普通用戶命令:
adduser abc

passwd abc

exit

用abc登錄

/etc/passwd中保存了用戶信息

LINUX創建用戶的命令
useradd -g test -d /home/test1 -s /etc/bash -m test1
註解:-g 所屬組 -d 家目錄 -s 所用的SHELL
刪除用戶命令
userdel -r test1
創建密碼命令
passwd

1.添加用戶

  添加用戶的命令為useradd,假設我們添加一個名字為testuser的用戶,設置其登錄Shell,設置它的其他屬性:

  useradd ?Cs /bin/bash ?CG thiz ?Cd /home/testuser testuser

  passwd testuser

  關於useradd的詳細幫助可以在man useradd中得到。這裏-s參數用來指定用戶的啟動Shell,如果不希望給用戶Shell的許可權,就在/etc/Shells中添加 /dev/null和/usr/bin/passwd,然後指定Shell為/dev/null或者/usr/bin/passwd。第一種情況是根本不 允許用戶登錄(例如該用戶為郵件賬號,只允許收發郵件);第二種是只允許登錄進來修改密碼。-G用來指定用戶在屬於添加的testuser用戶組的同時, 也屬於thiz用戶組。-d用來指定用戶的主目錄位置, 這裏指定為默認位置/home/testuser(當然也可以不指定,默認創建/home/testuser,並將用戶主目錄指向該目錄)。添加用戶以後 就需要使用 passwd 命令為其設置密碼。

  對於已經添加的用戶,需要修改其屬性,可以使用命令usermod,也可以在man usermod中得到更多信息。

  使用Webmin,進入系統信息的用戶管理模塊。

2.刪除用戶

  刪除用戶可以通過命令userdel來完成,這依賴於系統所安裝的軟件。

  # userdel testuser

  不過需要註意的是刪除用戶並不會刪除為該用戶創建的主目錄,這樣是因為該目錄中還有可能保存著有用的文件,如果確信該用戶的主目錄沒有需要的文件了,需要手工刪除其主目錄,例如:

  # rm -r /home/testuser

  

  3.修改密碼

  修改密碼可以使用命令方式:

  # passwd username

  即可對用戶密碼進行修改。當然在Webmin中提供了修改用戶密碼的功能,只要選擇系統中Change Passwords模塊,就會進入修改密碼模塊。

Linux將用戶添加到組的指令