用戶配置文件與密碼配置文件

用戶文件

**(原密碼文件)

/etc/passwd**

[root@jinkai01 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
以:爲隔離分段
第一段:用戶名
第二段:之前密碼存放地
第三段:用戶UID
第四段:組GID
第五段:註釋
第六段:用戶家目錄
第七段:用戶的shelllinux

密碼文件

/etc/shadow

[root@jinkai01 ~]# head -n2 /etc/shadow
root:$6$iIKa5PJh$MvkpTCvxtu1lgan8MiVRiX2Lb05bEZFuCYCh1hc9s6zBQDukJaVaNyCdLPwzWc3ihD/GmZTqwEdEAl9UXpTsc/:18478:0:99999:7:::
bin:*:17834:0:99999:7:::
分爲9段,其中密碼已經被加密
第一段:用戶名
第二段:密碼
第三段:上次更改密碼的時間(1970年-數值年)
第四段:要過多少天你必須更改 0爲不須要
第五段:密碼多少天到期;
第六段:密碼到期前的警告;
第七段:帳號失效時段;到期後還有7天時間能夠使用;shell

用戶組管理

組文件
/etc/group
組密碼文件
/etc/gshadowbash

groupadd

增長一個組
命令格式:
groupadd [組名]
ide

[root@jinkai01 ~]# groupadd grp2
[root@jinkai01 ~]# tail -n5 /etc/group
postfix:x:89:
linuxprobe:x:1000:linuxprobe
grp1:x:1003:
user1:x:1004:
grp2:x:1005:工具

-g:指定組id
groupadd -g 1005 grp3post

[root@jinkai01 ~]# groupadd -g 1006 grp3
[root@jinkai01 ~]# tail -n5 /etc/group
linuxprobe:x:1000:linuxprobe
grp1:x:1003:
user1:x:1004:
grp2:x:1005:
grp3:x:1006:ui

groupdel

刪除一個組(刪除組必須把組內的用戶清空才能夠)
命令格式:
groupdel [組名]
加密

[root@jinkai01 ~]# groupdel grp3
[root@jinkai01 ~]# tail -n5 /etc/group
postfix:x:89:
linuxprobe:x:1000:linuxprobe
grp1:x:1003:
user1:x:1004:
grp2:x:1005:token

用戶管理

useradd

建立用戶
命令格式:
useradd [參數][用戶名]

實驗1:增長一個用戶名user2
useradd user2
字符串

[root@jinkai01 ~]# useradd user2
[root@jinkai01 ~]# tail -n2 /etc/passwd
user1:x:1003:1004::/home/user1:/bin/bash
user2:x:1004:1006::/home/user2:/bin/bash

-u:指定uid
實驗2:增長一個用戶名user3,指定uid爲1005
useradd -u 1005 user3

[root@jinkai01 ~]# useradd -u 1005 user3
[root@jinkai01 ~]# tail -n2 /etc/passwd
user2:x:1004:1006::/home/user2:/bin/bash
user3:x:1005:1007::/home/user3:/bin/bash

-d:指定家目錄
-s:指定shell
-g:指定組
實驗3:新建用戶user4指定組爲grp2

[root@jinkai01 ~]# useradd -g grp2 user4
[root@jinkai01 ~]# tail -n2 /etc/passwd
user3:x:1005:1007::/home/user3:/bin/bash
user4:x:1006:1005::/home/user4:/bin/bash

userdel

刪除用戶
格式:
userdel [用戶名]
userdel user4 刪除用戶後用戶的家目錄仍是存在的

[root@jinkai01 ~]# userdel user4
[root@jinkai01 ~]# tail -n2 /etc/passwd
user2:x:1004:1006::/home/user2:/bin/bash
user3:x:1005:1007::/home/user3:/bin/bash
[root@jinkai01 ~]# ls /home/
linuxprobe user1 user2 user3 user4

-r:刪除用戶時,同時刪除家目錄

[root@jinkai01 ~]# userdel -r user3
[root@jinkai01 ~]# ls /home/
linuxprobe user1 user2 user4

usermod命令

usermod命令用於修改用戶賬號
usermod可用來修改用戶賬號的各項設定
參數

-c<備註>  修改用戶賬號的備註文字。
-d<登入目錄>  修改用戶登入時的目錄。
-e<有效期限>  修改賬號的有效期限。
-f<緩衝天數>  修改在密碼過時後多少天即關閉該賬號。
-g<羣組>  修改用戶所屬的羣組。
-G<羣組>  修改用戶所屬的附加羣組。
-l<賬號名稱>  修改用戶賬號名稱。
-L  鎖定用戶密碼,使密碼無效。
-s<shell>  修改用戶登入後所使用的shell。
-u<uid>  修改用戶ID。
-U  解除密碼鎖定。*

更改用戶uid
實驗1:更改user2用戶的uid爲1008
命令:usermod -u 1008 user2

[root@jinkai01 ~]# tail -n1 /etc/passwd
user2:x:1004:1006::/home/user2:/bin/bash
[root@jinkai01 ~]# usermod -u 1008 user2
[root@jinkai01 ~]# tail -n1 /etc/passwd
user2:x:1008:1006::/home/user2:/bin/bash

更改用戶所屬組
實驗2:更改帳號user005用戶的組爲grp3也就是gid爲1007
命令:usermod -g grp2 user2
更改用戶家目錄

[root@jinkai01 ~]# tail -n1 /etc/group
grp3:x:1007:
[root@jinkai01 ~]# tail -n1 /etc/passwd
user2:x:1008:1006::/home/user2:/bin/bash
[root@jinkai01 ~]# usermod -g grp3 user2
[root@jinkai01 ~]# tail -n1 /etc/passwd
user2:x:1008:1007::/home/user2:/bin/bash

實驗3:指定user2的家目錄爲/home/user4

[root@jinkai01 ~]# usermod -d /home/user4 user2

更改用戶shell目錄
實驗4:指定user2的shell

usermod -s /sbin/nologin user2

增長用戶所屬組(多個組)
查詢所屬uid gid 組的命令
id [用戶名]
id user2

[root@jinkai01 ~]# id user2
uid=1008(user2) gid=1007(grp3) groups=1007(grp3)

添加到額外擴展組中
usermod -G [組名] [用戶名]

[root@jinkai01 ~]# usermod -G grp2 user2
[root@jinkai01 ~]# id user2
uid=1008(user2) gid=1007(grp3) groups=1007(grp3),1005(grp2)

用戶密碼管理

passwd命令

更改用戶密碼
格式:
passwd [用戶名]
passwd user2

[root@jinkai01 ~]# passwd user2
Changing password for user user2.
New password:
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully

**注意:查看/etc/shadow 文件中第二列表示密碼,!號爲無密碼,號爲被鎖定沒法登錄使用;

鎖定一個用戶

格式:
passwd -l [用戶名]
passwd -l user2
[root@jinkai01 ~]# passwd -l user2
Locking password for user user2.
passwd: Success**

[root@jinkai01 ~]# tail -n1 /etc/shadow
user2:!!$6$a0f4Dgf0$4oeCi5cLN7Kp9tDPgc5hAfZtPMKN8QB4hMc60qj6FAGB5O8NSH/Nceggc/zIKyhPfTohdtAG.9HslB/xQfzTj1:18479:0:99999:7:::

解鎖一個用戶

格式:
passwd -u [用戶名]
passwd -u user2

[root@jinkai01 ~]# passwd -u user2
Unlocking password for user user2.
passwd: Success
[root@jinkai01 ~]# tail -n1 /etc/shadow
user2:$6$a0f4Dgf0$4oeCi5cLN7Kp9tDPgc5hAfZtPMKN8QB4hMc60qj6FAGB5O8NSH/Nceggc/zIKyhPfTohdtAG.9HslB/xQfzTj1:18479:0:99999:7:::

新技能

更改用戶密碼,只須要輸入1次密碼;
passwd --stdin 【用戶名】
passwd --stdin user2

[root@jinkai01 ~]# passwd --stdin user2
Changing password for user user2
admin123
passwd: all authentication tokens updated successfully.

那麼咱們寫腳本時能夠使用管道符|一次性給一個帳號改密碼

echo "123456789"|passwd --stdin user2

命令意思就是輸出字符串123456789給passwd --stdin user2 來實現密碼更改

[root@jinkai01 ~]# echo "123456789" | passwd --stdin user2
Changing password for user user2.
passwd: all authentication tokens updated successfully.

echo新技能
echo -e 能夠在字符串中加入\n來實現換行
echo -e "123456\nABCD"

[root@jinkai01 ~]# echo -e "123456\nABCD"
123456
ABCD

根據這個 咱們也能夠來一次性更改密碼
更改用戶 user2 的密碼 。

[root@jinkai01 ~]# echo -e "admin\nadmin" | passwd user2
mkpasswd

一個生成密碼的小工具
安裝包expect
yum install -y expect
默認隨機生成9位密碼

[root@jinkai01 ~]# mkpasswd
sFk8Ov0p$

命令格式:
-l [數值]:指定生成字符串的長度
-s [數值]:指定特殊符號
-d [數值]:指定多少個數字

指定長度
實驗1:生成長度爲12的字符串

[root@jinkai01 ~]# mkpasswd -l 12
6+yxi5FcuSkm

指定特殊符號數
實驗2:生成長度爲12,特殊符號爲0的字符串

[root@jinkai01 ~]# mkpasswd -l 12 -s 0
q1omoohw1cYO

指定數字數
實驗3:生成長度爲12,特殊符號爲0,數字爲8的字符串;

[root@jinkai01 ~]# mkpasswd -l 12 -s 0 -d 817n39u6M90U1

相關文章
相關標籤/搜索