Linux賬戶密碼過期安全策略設置

来源:http://www.cnblogs.com/kerrycode/archive/2016/06/20/5600525.html
-Advertisement-
Play Games

在Linux系統管理中,有時候需要設置賬號密碼複雜度(長度)、密碼過期策略等,這個主要是由/etc/login.defs參數文件中的一些參數控制的的。它主要用於用戶賬號限制,裡面的參數主要有下麵一些: /etc/login.defs: # Password aging controls:## PAS... ...


在Linux系統管理中,有時候需要設置賬號密碼複雜度(長度)、密碼過期策略等,這個主要是由/etc/login.defs參數文件中的一些參數控制的的。它主要用於用戶賬號限制,裡面的參數主要有下麵一些:

/etc/login.defs:

# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
 
 
PASS_MAX_DAYS 60      #密碼最大有效期,此處參數PASS_MAX_DAYS為60,表示60天後,密碼會過期。99999表示永不過期。
PASS_MIN_DAYS 0      #兩次修改密碼的最小間隔時間,0表示可以隨時修改賬號密碼
PASS_MIN_LEN  8      #密碼最小長度,對於root無效
PASS_WARN_AGE 7      #密碼過期前多少天開始提示
 
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                   500
UID_MAX                 60000
 
UID_MIN    #用戶ID的最小值
UID_MAX    #用戶ID的最大值
 
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                   500
GID_MAX                 60000
 
GID_MIN    #組ID最小值
GID_MAX    #組ID最大值
 
 
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local
 
USERDEL_CMD    #預設註釋狀態,如果定義了該變數,表示當刪除一個user時,應刪除/列印/ cron的工作等所擁有的用戶被刪除(作為第一個參數傳遞)。
 
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME     yes
 
CREATE_HOME  #表示是否創建用戶home目錄。
 
 
# The permission mask is initialized to this value. If not specified, 
# the permission mask will be initialized to 022.
UMASK           077
 
UMASK     #許可權掩碼初始化值
 
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
 
USERGROUPS_ENAB   #該參數啟用,表示userdel刪除用戶時,如果該用戶用戶組如果沒有成員存在,則會刪除該用戶組
 
# Use MD5 or DES to encrypt password? Red Hat use MD5 by default.
MD5_CRYPT_ENAB yes
 
ENCRYPT_METHOD MD5   
 
ENCRYPT_METHOD  #表示用戶密碼加密方式,此處表示用MD5加密密碼

修改了 /etc/login.defs下參數時,會立即生效,但是它只對修改後創建的用戶生效。例如修改了PASS_MAX_DAYS參數等後,我們新建一個用戶test。

clip_image001

[root@DB-Server home]# useradd test
[root@DB-Server home]# cat /etc/shadow | grep test
test:!!:16971:0:60:7:::
[root@DB-Server home]# cat /etc/passwd | grep test
test:x:501:501::/home/test:/bin/bash
[root@DB-Server home]# chage -l test
Last password change                                    : Jun 19, 2016
Password expires                                        : Aug 18, 2016
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 60
Number of days of warning before password expires       : 7
[root@DB-Server home]# 

clip_image002

因為CREATE_HOME為yes,所以創建用戶test後,就會預設在/home目錄下創建test目錄,這個可以在添加用戶的規則文件/etc/default/useradd裡面查看或修改

[root@DB-Server ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home        #把用戶的主目錄建在/home中
INACTIVE=-1       #是否啟用帳號過期停權,-1表示不啟用
EXPIRE=           #帳號終止日期,不設置表示不啟用;
SHELL=/bin/bash   #所用SHELL的類型;
SKEL=/etc/skel    #預設添加用戶的目錄預設文件存放位置;也就是說,當我們用adduser添加用戶時,用戶家目錄下的文件,都是從這個目錄中複製過去的
CREATE_MAIL_SPOOL=yes

如果此時,假如用戶test有特殊需求,要求這個賬號的密碼永不過期,此時就可以使用chage命令來處理(關於chage命令,此處不做展開)

[root@DB-Server ~]# chage -l test
Last password change                                    : Jun 19, 2016
Password expires                                        : Aug 18, 2016
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 60
Number of days of warning before password expires       : 7
You have new mail in /var/spool/mail/root
[root@DB-Server ~]# chage -M 99999 test
[root@DB-Server ~]# chage -l test
Last password change                                    : Jun 19, 2016
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
[root@DB-Server ~]# 

clip_image003

如上所示/etc/login.defs只是控制了賬號的最小長度以及控制密碼的有效期等,那麼Linux是如何實現對用戶的密碼的複雜度的檢查的呢?其實系統對密碼的控制是有兩部分組成:

1 cracklib

2 /etc/login.defs

pam_cracklib.so 才是控制密碼複雜度的關鍵文件/lib/security/pam_cracklib.so, Redhat公司專門開發了cracklib這個安裝包來判斷密碼的複雜度。如果你想查看pam_cracklib的一些參數,那麼就使用下麵命令

[root@DB-Server security]# man pam_cracklib

其中一些常見的參數為
 
retry=N
改變輸入密碼的次數,預設值是1。就是說,如果用戶輸入的密碼強度不夠就退出。可以使用這個選項設置輸入的次數,以免一切都從頭再來
	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 創建 取消 縮寫使用 insert模式下輸入縮寫,Enter鍵獲得pharse。 ...
  • 一、簡單文件系統操作 : df ( h) 查看磁碟容量; rootfs作為系統啟動時內核載入記憶體之後,在掛載真正的磁碟之前的一個臨時文件系統; /dev/sda2 對應主機硬碟的分區,後面的a表示第幾塊硬碟,2表示分區; du查看目錄的容量, h更易讀的方式展示(預設以blocks的大小展示), d ...
  • linux系統通過setup命令可以調用圖形界面來配置網路,該命令只要centos等版本才有。 ...
  • 游標控制 文件操作 :w 寫文件 :w! 寫文件,忽略警告信息:wq 寫文件之後退出編輯:q 退出編輯器:q! 強制退出編輯器ZZ 退出編輯器,如果文件有改動,則保存再退出:x 退出編輯器,如果文件有改動,則保存再退出:e! 重新從磁碟載入文件:n 編輯地下一行:n! 編輯地下一行(忽略警告) 內容 ...
  • 目前我知道的方法有四種 1.awk 'END {print}' 2.sed -n '$p' 3.sed '$!N;$!D' 4.awk '{b=a"\n"$0;a=$0}END{print b}' ...
  • MSP430 ...
  • atexit函數 atexit函數的原型如下 void atexit(void (*func)(void)) 它是一個參數為返回值和參數均為空的函數指針的函數,含義是當前進程結束之前執行參數函數指針所指向的函數,使用的時候要在main中註冊,一次可以註冊很多函數,函數的執行順序與註冊的先後有關,關係 ...
  • 虛擬化對於計算的抽象,大家可能相對熟悉,也許都有在單機使用諸如Virtual PC或者Virtual Box的經驗。使用的這些虛擬化軟體的第一印象就是我們的CPU可以同時運行多套不同的操作系統,並且其上應用程式並行不悖。計算的抽象使得同一套硬體設備上的操作系統之間得以相互隔離,猶如一個身體擁有兩個甚... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...