[root@jinkai01 ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin 以:為隔離分段 第一段:使用者名 第二段:以前密碼存放地 第三段:使用者uid 第四段:組gid 第五段:注釋 第六段:使用者家目錄 第七段:使用者的shell
[root@jinkai01 ~]# head -n2 /etc/shadow root:$6$iika5pjh$mvkptcvxtu1lgan8mivrix2lb05bezfucych1hc9s6zbqdukjavanycdlpwzwc3ihd/gmztqwedeal9uxptsc/:18478:0:99999:7::: bin:*:17834:0:99999:7::: 分為9段,其中密碼已經被加密 第二段:密碼 第三段:上次更改密碼的時間(1970年-數值年) 第四段:要過多少天你必須更改 0為不需要 第五段:密碼多少天到期; 第六段:密碼到期前的警告; 第七段:賬号失效時段;到期後還有7天時間可以使用;
組檔案 /etc/group 組密碼檔案 /etc/gshadow
增加一個組
指令格式:
groupadd [組名]
[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 grp3
[root@jinkai01 ~]# groupadd -g 1006 grp3 grp3:x:1006:
删除一個組(删除組必須把組内的使用者清空才可以)
groupdel [組名]
[root@jinkai01 ~]# groupdel grp3
建立使用者
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 user3:x:1005:1007::/home/user3:/bin/bash
-d:指定家目錄
-s:指定shell
-g:指定組
實驗3:建立使用者user4指定組為grp2
[root@jinkai01 ~]# useradd -g grp2 user4 user4:x:1006:1005::/home/user4:/bin/bash
删除使用者
格式:
userdel [使用者名]
userdel user4 删除使用者後使用者的家目錄還是存在的
[root@jinkai01 ~]# userdel user4 [root@jinkai01 ~]# ls /home/ linuxprobe user1 user2 user3 user4
-r:删除使用者時,同時删除家目錄
[root@jinkai01 ~]# userdel -r user3 linuxprobe user1 user2 user4
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 [root@jinkai01 ~]# usermod -u 1008 user2 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 ~]# usermod -g grp3 user2 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 uid=1008(user2) gid=1007(grp3) groups=1007(grp3),1005(grp2)
更改使用者密碼
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 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
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 8 17n39u6m90u1