天天看點

增加和删除使用者組與使用者

增加和删除使用者組與使用者

在使用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

繼續閱讀