linux 新增使用者及刪除使用者

531968912發表於2016-11-30

在使用時,經常會出現好多原先加的帳戶未刪除的情況,給系統執行帶來隱患,因此一定要徹底刪除。

進入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工作組

注::-g 所屬組 -d 家目錄 -s 所用的SHELL

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刪除組,必須在組所有使用者皆被刪除後才可執行。


批次增刪使用者的方法:
方法一、編寫指令碼實現批處理


一、如何新增使用者?

第一步:建立帳戶列表檔案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]#chmod 700 userdel


第三步:執行該指令碼,刪除使用者
[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
do
echo $line #列印出讀取的資訊
#/usr/sbin/adduser $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來實現

下載地址:

下載後安裝,檢視readme檔案如何使用。


幾種方法的比較:

第一種方法是將每條命令的執行放到指令碼中封裝起來了,因此要在指令碼中多次寫入新增和刪除的命令;


第二種方法中只需新增使用者名稱列表即可,不需重複在使用者檔案中寫入命令,因為它把命令放在sh中透過迴圈語句來實現。但要確保編寫的shell檔案正確。


第三種方法只用了系統命令,而不需要程式設計,但是在編寫使用者列表檔案容易出錯;


第四種方法我尚未用過,藉助第三方軟體應該比較快捷。


注意:有時候習慣使用了windows下的notepad或者EditPlus等文字處理軟體,然後將編寫的列表檔案上傳到Linux檔案系統中去讀取,命令對某些字元的識別方式不一樣導致指令碼執行出錯,新增不成功。所以最好還是熟練vi,在Linux中編寫以防發生差錯

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2129368/,如需轉載,請註明出處,否則將追究法律責任。

相關文章