linux基础分支,Linux基础--/etc/shadow中字段的分支和操作
Linux中通過配置文件?/etc/shadow 來存儲用戶密碼的相關信息, 本篇文章用于簡要分析該配置文件中各個字段代表的意義及其相關操作.
之前在系統中添加了用戶帳戶user1, 現在通過user1在配置文件/etc/shadow中各個字段分析user1:$id$salt$encrypted:16655:50:100:20:10:17021:
配置文件/etc/shadow中共有9個字段, 每個字段通過 : 隔開, 每個字段的含義如下:1.?login?name:?用戶名
2.?encrypted?password:?加密后的密碼,?其格式為:?$加密級別$系統隨機添加的雜質字符串$密碼的銘文形式
#?加密級別表示方法:?1為MD5加密,?5為SHA256加密,?6為SHA512加密
#?如果第2字段為:?!或*表示該為無效字段,?用戶無法通過密碼方式登錄賬戶,?可以通過root用戶使用passwd指令來對指定賬戶進行修改;?空表示用戶登錄時就會強制要求修改密碼
3.?date?of?last?password?changed:?最近一次修改密碼的時間:?表示上次修改密碼的日期距離Unix元年(1970-01-01)的天數,?0表示用戶下次登錄后自行修改密碼,?空表示該字段無意義
4.?minimum?password?age:?密碼最短使用時長:?表示修改完密碼后至少經過多少天可以再次修改密碼,?0或空表示沒有設置該字段
5.?maximum?password?age:?密碼最長使用時長:?表示修改完密碼后最多使用多少天系統會發出警告要求用戶更改密碼,?空表示用戶密碼不會有最長使用時長,?警告時長和容忍市場的限制
#?如果該字段有意義時,?如果超出該期限但在失效日期之前密碼可以使用,?但是會向用戶發出警告
6.?password?warning?period:?密碼過期前警告時長:?表示在距離賬戶失效日期(第8字段)前多少天會發出警告要求用戶更改密碼,?0或空表示沒有警告時長
7.?passwoerd?inactivity?period:?密碼過期后容忍時長:?表示在距離賬戶實現日期(第8字段)后多少天會強制用戶修改密碼,?空表示沒有容忍時長
8.?account?expiration?date:?賬戶失效日期:?表示賬戶失效日期距離Unix元年的天數,?空表示永不失效
9.?reserved?field:?保留字段
說明:
3-8字段都是以相對時間長度而不是具體日期來表示, 單位都是天, 各自的參考點不一樣:
3和8字段都是以Unix元年(1970-01-01)為參考點,
4和5字段都是以第3字段表示的日期為參考點,
6和7字段都是以第8字段表示的日期為參考點
3-8字段的相對關系如下圖所示:
=============================================================
以下是通過指定來對用戶在/etc/shadow中個字段的相關配置(因為涉及到用戶管理操作, 因此需要通過root賬戶來進行操作):
對于第2字段用戶密碼可以通過passwd命令來進行修改
passwd
作用: 修改指定用戶密碼的相關信息
格式: passwd [OPTIONS] USERNAME
主要選項:
-e: 強制指定用戶的密碼現在過期, 迫使用戶下次登錄時修改密碼
--stdin: 從標準輸入接收輸入的字符串作為密碼, 此時只需要出入一次字符串就行
#?echo?'user@123'?|?passwd?--stdin?user1????#將user1密碼修改為user@123
查看修改后的user1的密碼
#?cat?/etc/shadow?|?grep?'user1'
user1:$6$YKpyiOFB$qTIZ1zqAtDTO7Ztb.K5PdpIfIMrt/lREJUop0N0BqJxoq62ih2NIBgCNwsIMN/QwMz88x5MAah1yU48YcL4d70:0:0:99999:7:::????#第2字段已經修改為加密格式的密碼
對于第3-8字段用戶密碼的各個時間限制可以通過chage來進行修改
chage
作用: 修改用戶密碼相關信息
格式: chage [OPTIONS] USERNAME
主要選項:
-d LAST_DAY: 修改/etc/shadow的第3字段, 可使用YYYY-MM-DD的日期格式或使用距離1970-01-01的天數
-m MIN_DAYS: 修改/etc/shadow的第4字段, 使用距離第3字段的天數
-M MAX_DAYS: 修改/etc/shadow的第5字段, 使用距離第3字段的天數
-W WARN_DAYS: 修改/etc/shadow的第6字段, 使用距離第8字段的天數
-I INACTIVE: 修改/etc/shadow的第7字段, 使用距離第8字段的天數
-E EXPIRE_DATE: 修改/etc/shadow的第8字段, 可使用YYYY-MM-DD的日期格式或使用距離1970-01-01的天數#?chage?-d?2015-08-01?-m?50?-M?100?-W?30?-I?10?-E?2016-08-01?user1????#將user1的上次修改密碼時間為2015-08-01,?最短修改密碼時長為50天,?最長修改密碼時長為100天,?發出警告時長為密碼過期前30天,?密碼容忍時長為過期后10天,?密碼失效時間為2016-08-01
#?cat?/etc/shadow?|?grep?'user1'
user1:$6$YKpyiOFB$qTIZ1zqAtDTO7Ztb.K5PdpIfIMrt/lREJUop0N0BqJxoq62ih2NIBgCNwsIMN/QwMz88x5MAah1yU48YcL4d70:16648:50:100:30:10:17014:????#第3-8字段已經按要求修改
小結:
修改配置文件/etc/shadow中各字段的參數比較簡單, 只是第3-8字段表示的意義不同, 關鍵是各個字段的參照物不相同, 理解時注意各個字段的參考點, 在實際操作中會有很大幫助.
本人水平有限, 如有理解不當的地方, 請大家給予指正, 非常感謝!
總結
以上是生活随笔為你收集整理的linux基础分支,Linux基础--/etc/shadow中字段的分支和操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统死亡之平台,又一个Linu
- 下一篇: c实现多语言编程,C/C++编程中多国语