1. 程式人生 > >2018.4.3三周第二次課

2018.4.3三周第二次課

usermod命令 用戶密碼管理 mkpasswd命令 echo介紹

usermod 設置擴展組
概念:更改用戶屬性的一個命令。
用法:usermod [選項] 後面跟你需要操作的內容 [用戶名]
選項:
  -c,    --comment 註釋            GECOS 字段的新值
  -d,   --home HOME_DIR           用戶的新主目錄
  -e,   --expiredate EXPIRE_DATE  設定帳戶過期的日期為 EXPIRE_DATE
  -f,    --inactive INACTIVE       過期 INACTIVE 天數後,設定密碼為失效狀態
  -g,   --gid GROUP               強制使用 GROUP 為新主組
  -G,  --groups GROUPS           新的附加組列表 GROUPS
  -a,  --append GROUP            將用戶追加至上邊 -G 中提到的附加組中,
  -l, --login LOGIN             新的登錄名稱
  -L, --lock                    鎖定用戶帳號
  -m, --move-home               將家目錄內容移至新位置 (僅於 -d 一起使用)
  -o, --non-unique              允許使用重復的(非唯一的) UID
  -p, --password PASSWORD       將加密過的密碼 (PASSWORD) 設為新密碼
  -R, --root CHROOT_DIR         chroot 到的目錄
  -s, --shell SHELL             該用戶帳號的新登錄 shell
  -u, --uid UID                 用戶帳號的新 UID
  -U, --unlock                  解鎖用戶帳號
  -Z, --selinux-user  SEUSER       用戶賬戶的新 SELinux 用戶映射

舉個例子,我們先來查看一下user5的uid和gid還有擴展組

[root@zhangzhen-01 ~]# id user5
uid=1003(user5) gid=1003(user5) 組=1003(user5)

然後在這裏,我們想讓user5再屬於另外一個組,叫擴展組:

[root@zhangzhen-01 ~]# usermod -G grp2 user5
[root@zhangzhen-01 ~]# id user5
uid=1003(user5) gid=1003(user5) 組=1003(user5),1008(grp2)

如果我們想讓user5,屬於多個組應該怎麽做呢:

[root@zhangzhen-01 ~]# id user5

uid=1003(user5) gid=1003(user5) 組=1003(user5),1008(grp2),1011(grp3)

用戶密碼管理 passwd命令

概念:賬戶創建後,默認是沒有設置密碼的,只有設置好密碼後才可以登錄系統。在為用戶創建密碼時,盡量設置復雜一些。
如下是密碼復雜度規則介紹:
-- 長度大於10個字節;
-- 密碼中包含大小寫字母、數字以及特殊符號!@#()¥等;
--不規則性英文數字等;
--密碼中不要帶有自己的名字和電話等信息。

passwd若後面不加用戶名,就是給自己設定密碼

[root@zhangzhen-01 ~]# passwd
更改用戶 root 的密碼 。
新的 密碼:

重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。

如何設置用戶密碼,格式 passwd [username] (這裏username填寫你的用戶),假設新建一個用戶test5

[root@zhangzhen-01 ~]# useradd test5 #創建一個用戶
[root@zhangzhen-01 ~]# passwd test5 #使用passwd修改test5用戶的密碼
更改用戶 test5 的密碼 。
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。

註:在這裏,只有root才可以修改其他賬戶的密碼,普通賬戶只能修改自己的密碼。

我們可以用tail命令查看配置文件後十行信息

[root@zhangzhen-01 ~]# tail /etc/shadow
polkitd:!!:17610::::::
postfix:!!:17610::::::
sshd:!!:17610::::::
chrony:!!:17610::::::
zhangzhen-03:!!:17613:0:99999:7:::
user1:$6$gTcyr2nl$szsXaszsSj02hc1deEHB5sPYmENFOU1I1ydpB1H8Erjgv5Zf15zqP5P/k8CZfJH/2WtGuuI5dDCYbzAHLJctK0:17623:0:99999:7:::
zhang-02:!!:17619:0:99999:7:::
user5:!!:17623:0:99999:7:::
user6:!!:17623:0:99999:7:::
test5:$6$QPAIJOuh$mkjy1sX.SAsCTO2EYrUZmgYc3Npc7UDkny/HlTfbFWag1.tghAgymJ2mQqCaGDrV0loLk0YzAgN7E4.1NJ4aO.:17624:0:99999:7:::

註:這裏我們可以看見有加密的字符串,這裏是設置過密碼的用戶,然後"!!"表示密碼為空。

*哪些用戶是不可登錄的呢,用“”表示 **

[root@zhangzhen-01 ~]# head /etc/shadow
root:$6$yQ2l5yz9$Kn2mRieWcDq8beURzCQwyPbBQ8NvyERoRIQHDHJ1JVe3GEqW0awMtmJwNAnnAhP2SDQxK1n2r24iRWRixyJig1:17624:0:99999:7:::
bin::17110:0:99999:7:::
daemon:
:17110:0:99999:7:::
adm::17110:0:99999:7:::
lp:
:17110:0:99999:7:::
sync::17110:0:99999:7:::
shutdown:
:17110:0:99999:7:::
halt::17110:0:99999:7:::
mail:
:17110:0:99999:7:::
operator:*:17110:0:99999:7:::

註:“*”表示不可登錄。

如何鎖定一個用戶登錄,-l,-L兩種選項

[root@zhangzhen-01 ~]# passwd -l test5
鎖定用戶 test5 的密碼 。
passwd: 操作成功
接下來我們查看鎖定完後的配置文件是什麽樣子的:
[root@zhangzhen-01 ~]# tail -n2 /etc/shadow
user6:!!:17623:0:99999:7:::
test5:!!$6$QPAIJOuh$mkjy1sX.SAsCTO2EYrUZmgYc3Npc7UDkny/HlTfbFWag1.tghAgymJ2mQqCaGDrV0loLk0YzAgN7E4.1NJ4aO.:17624:0:99999:7:::

註意,在這裏 密文密碼前方有2個“!”,表示鎖定用戶。

如何解鎖一個用戶登錄,-u,-U兩種選項

[root@zhangzhen-01 ~]# passwd -u test5
解鎖用戶 test5 的密碼。
passwd: 操作成功
[root@zhangzhen-01 ~]# !tail
tail -n2 /etc/shadow
user6:!!:17623:0:99999:7:::
test5:$6$QPAIJOuh$mkjy1sX.SAsCTO2EYrUZmgYc3Npc7UDkny/HlTfbFWag1.tghAgymJ2mQqCaGDrV0loLk0YzAgN7E4.1NJ4aO.:17624:0:99999:7:::

註意看,這裏密文前面沒有“!”,表示解鎖成功。

--stdhin的用法,用passwd直接修改test5用戶的密碼

[root@zhangzhen-01 ~]# passwd --stdin test5
更改用戶 test5 的密碼 。
123123
passwd:所有的身份驗證令牌已經成功更新。

在這裏註意看,--stdin是用來強制設定一個用戶的密碼

用echo,通過管道符一條命令設置密碼

[root@zhangzhen-01 ~]# echo "123123" |passwd --stdin test5
更改用戶 test5 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。

這條命令的含義是,echo(顯示) “123123” 通過管道符,把前面命令的結果,傳遞(輸出)給後面的命令。

echo -e 表示換行,示例如下:

[root@zhangzhen-01 ~]# echo -e "123\n321"
123
321

在這裏一定要註意,雙引號裏面的 \n 反斜杠n表示換行;

\t 反斜杠t表示 TAB

參考文獻,echo的使用:
https://www.cnblogs.com/perfy/archive/2012/07/24/2605903.html
   \a 發出警告聲;
   \b 刪除前一個字符;
   \c 最後不加上換行符號;
   \f 換行但光標仍舊停留在原來的位置;
   \n 換行且光標移至行首;
   \r 光標移至行首,但不換行;
   \t 插入tab;
   \v 與\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八進制)所代表的ASCII字符;
–help 顯示幫助
–version 顯示版本信息

mkpasswd命令

首先安裝一個expect包,這個包可以實現隨機的字符串

[root@zhangzhen-01 ~]# yum install -y expect
[root@zhangzhen-01 ~]# mkpasswd
Li~B5zp1y
這個就是隨機生成的字符串了

我們也可以指定密碼長度,-l
[root@zhangzhen-01 ~]# mkpasswd -l 12 #這裏可以設置密碼長度為12字節
Hka2pv3ltOv;

我們也可以指定密碼長度的同時,指定有幾個特殊字符和數字
[root@zhangzhen-01 ~]# mkpasswd -l 12 -s 3 -d 3
63>>fvf%GJ6z

這裏,-l表示字節,-s表示特殊符號,-d表示有幾個數字。

2018.4.3三周第二次課