增加和删除使用者組與使用者
在使用linux時,經常會出現好多原先加的帳戶未删除的情況,給系統運作帶來隐患,是以一定要徹底删除。
進入root使用者,輸入
cd /etc
在這個目錄下輸入
cat passwd
會出現很多使用者,絕大部分是系統使用者,是不能删的,一般最下面的是使用者自己原先添加的帳戶。這些帳戶已經用
userdel 使用者名
這個指令删過,但是仍存在關聯檔案。是以要用另一種方法:
進入
cd /usr
cd sbin (某些系統版本為bin檔案夾)
在這裡輸入
./userdel -r 使用者名 (前面的./一定要加上)
就可以徹底删除了。
一、Linux添加/删除使用者和使用者組
作用:組的作用是管理使用者的
1、建使用者:
adduser phpq //建立phpq使用者
passwd phpq //給phpq使用者設定密碼
2、建工作組
groupadd test //建立test工作組
3、建立使用者同時增加工作組
useradd -g test phpq //建立phpq使用者并增加到test工作組
注1::-g 所屬組 -d 家目錄 -s 所用的SHELL
注2:tail /etc/group
Grptest1:x:502 三個字段分别代表組名、組密碼、組id , 不加“-g”選項按照系統預設的gid建立組,跟使用者一樣,gid是從500開始的。
***例題:如果删除一個組時報錯: “cannot remove the primary group of user 'aming'” 這是什麼意思?
[1] A 這個組不存在
[1] B 這個組裡包含使用者aming
[1] C 要想删除這個組可以先删除aming使用者
[1] D 解決該問題可以把aming使用者的屬組改為其他
答案:BCD
4、給已有的使用者增加工作組
usermod -G groupname username
或者:gpasswd -a user group
5、臨時關閉:在/etc/shadow檔案中屬于該使用者的行的第二個字段(密碼)前面加上*就可以了。想恢複該使用者,去掉*即可。
或者使用如下指令關閉使用者賬号:
passwd peter –l
重新釋放:
passwd peter –u
6、永久性删除使用者賬号
userdel peter
groupdel peter
usermod –G peter peter (強制删除該使用者的主目錄和主目錄下的所有檔案和子目錄)
7、從組中删除使用者
編輯/etc/group 找到GROUP1那一行,删除 A 或者用指令 gpasswd -d A GROUP
8、顯示使用者資訊
id user
cat /etc/passwd
linux批量删除使用者及添加使用者
管理使用者(user)的工具或指令:
useradd 注:添加使用者;
adduser 注:添加使用者;
passwd 注:為使用者設定密碼;
usermod 注:修改使用者指令,可以通過usermod 來修改登入名、使用者的家目錄等等;
pwconv 注:使用影子密碼密碼系統,将/etc/passwd加密,同步使用者資訊 到/etc/shadow檔案。
pwck 注:pwck是校驗使用者配置檔案/etc/passwd 和/etc/shadow 檔案内容是否合法或完整;
pwunconv 注:換為傳統密碼系統,是pwconv的立逆操作,從/etc/shadow和 /etc/passwd 建立/etc/passwd ,會删除 /etc/shadow 檔案;
遇到的一些問題:
問題1:adduser 的-e選項設定帳号過期,帳戶過期後會自動删除帳号的檔案資訊麼?
問題2:adduser -p 選項是用來設定使用者密碼的麼?那麼我用在此設定的密碼怎麼無法登陸系統?
回答:在linux下 man adduser可以看到幫助,其中-p參數的解釋如下:
-p passwd
The encrypted password, as returned by crypt(3). The default is
to disable the account.
它的意思是通過crypt指令将你輸入的密碼通過crypt指令加密處理,預設是禁用該帳戶。
問題3:adduser和useradd兩者一樣嗎?功能似乎差不多,為什麼要整出這兩個指令來?
adduser存在/usr/sbin/目錄下,使用指令ll /usr/sbin/adduser可以發現:
lrwxrwxrwx 1 root 1 root 7 Aut 6 20:46 /usr/sbin/adduser ->useradd
回答:這說明adduser不過是useradd的一個符号連結。建立這個符号連接配接主要是為了讓使用者在嘗試指令時盡快命中。
問題4:userdel删除帳号後,為什麼使用者的目錄還存在/home/目錄下呢?
因為不帶參數的話,預設并不删除使用者目錄資訊,加上參數 -r 即可。
注意:
1.在pwunconv的情況下,無法用passwd去更改使用者密碼使得使用者生效,使用chpasswd去批量更改是可以的,或者執行pwconv後即可用passwd去更改。
2.用adduser建立使用者時通過-p設定的密碼(在pwunconv的情況下将變為明碼,但是)帳戶仍然不可用,無法登陸,必須在pwconv後使用passwd再設定後方可,然後再pwuncov将不再是明碼顯示了。
3.groupdel删除組,必須在組所有使用者皆被删除後才可執行。
***例題
删除使用者如何連帶它的家目錄一并删除?
A userdel -r username
B userdel -d username
C userdel -a username
D deluser -a username 正确答案: A
注:userdel 命 令 修 改 系 統 帳 号 檔删 除 所 有 login 會 參 考 的 部 份。使 用 者 名 稱 必 須是 存 在 的 。
-r 使 用 者 目 錄 下 的 檔 案 一 并 移 除 。 在 其 他 位 置 上的
檔案 也 将 一 一 找 出 并 删 除 。
批量增删使用者的方法:
方法一、編寫腳本實作批處理
一、如何添加使用者?
第一步:建立帳戶清單檔案useradd
[root@denven root]#vi useradd
adduser stu060101
adduser stu060102
adduser stu060103
…..
注:如果在後面執行腳本時候提示無法執行指令,則應該使用路徑為/usr/sbin/adduser win01的形式,或者修改系統環境變量。
第二步:更改檔案權限,使其可執行
[root@denven root]#chmod 700 userdel
第三步:執行腳本,添加使用者
[root@denven root]#./useradd
第四步:設定密碼,可以運用方法三中的設定密碼的方式進行。
二.如何批量删除使用者?
第一步:建立删除帳戶檔案, 檔案名為 userdel
[root@denven root]#vi userdel
userdel -r stu060101
userdel -r stu060102
userdel -r stu060103
…
注:-r選項是同時删除使用者的檔案目錄,若不加此選項,隻是使用者不存在,而該使用者以前建立的目錄依然存在。
第三步:執行該腳本,删除使用者
[root@denven root]#./userdel
注:以上是在腳本中包含了每個使用者添加和删除使用者指令來實作的。
方法二、用shell中循環語句實作
A.批量添加
首先,建立帳戶清單檔案users
[root@denven root]#vi users
stu01
stu02
stu03
stu04
第二步:建立usersadd這個sh檔案
[root@denven root]#vi usersadd.sh
while read line
do
echo $line #列印出讀取的資訊
#/usr/sbin/adduser $line
/usr/sbin/adduser $line #建立使用者
echo “user $line created!”
done <users #從users檔案中讀取使用者名
第三步:執行usersadd這個sh檔案
[root@denven root]#sh usersadd.sh
可以看到螢幕輸出一些資訊
B.現批量删除
編寫shell導入上面的使用者檔案users來删除
第一步:建立usersadd這個sh檔案
[root@denven root]#vi usersdel.sh
while read $line
/usr/sbin/userdel -r $2 #删除讀取的使用者
echo “user $line deleted from system”
done
< users #從users檔案中讀取使用者名
第三步:執行usersdel這個sh檔案
[root@denven root]#sh usersdel.sh
方法三、使用系統自帶批處理指令
第一步:建立帳戶清單檔案
[root@denven root]#vi students
在Vi編輯器中編輯帳戶清單,
stu01::1001:1000:stu:/home/stu01:/bin/bash
stu02::1002:1000:stu:/home/stu02:/bin/bash
stu03::1003:1000:stu:/home/stu03:/bin/bash
注意這個檔案必須按照/etc/passwd檔案中每一行的格式相對應,用六個冒号隔開成七個字段
第二步:建立帳戶對應密碼檔案
[root@denven root]#vi passwds.txt
stu01:******
stu02:******
stu03:******
***表示是為該使用者設定的密碼。
第三步:添加使用者
[root@denven root]#newusers < students
這樣就建起了大量使用者,可以察看一下,他們已經被寫入使用者配置檔案;
[root@denven root]#more /etc/passwd | grep stu
第四步:批量把使用者密碼添加到對應帳戶
[root@denven root]#chpasswd < passwds
第五步:把密碼同步到/etc/shadow檔案中
[root@denven root]#pwconv
方法四、使用批量增删使用者的軟體PDAddUser來實作。
幾種方法的比較:
第一種方法是将每條指令的執行放到腳本中封裝起來了,是以要在腳本中多次寫入添加和删除的指令;
第二種方法中隻需添加使用者名清單即可,不需重複在使用者檔案中寫入指令,因為它把指令放在sh中通過循環語句來實作。但要確定編寫的shell檔案正确。
第三種方法隻用了系統指令,而不需要程式設計,但是在編寫使用者清單檔案容易出錯;
第四種方法我尚未用過,借助第三方軟體應該比較快捷。
本文轉自 YAOvYAO 51CTO部落格,原文連結:http://blog.51cto.com/yaoyao1314520/1737803