本文首發於爛泥行天下。
1、 htpasswd的作用與安裝
2、 htpasswd命令詳解
3、 htpasswd的實例
4、 htpasswd的應用
一、htpasswd的作用與安裝
htpasswd是apache的一個工具,該工具主要用於建立和更新存儲用戶名、密碼的文本文件,主要用於對基於http用戶的認證。
htpasswd的安裝很簡單,它是隨apache的安裝而生成。這點與ab工具是一樣的,如果哪位童鞋有不明白的地方可以查看《爛泥:apache性能測試工具ab的應用》這篇文章。
如果apache是通過RPM的yum方式進行安裝的話,該命令存放在/usr/bin/目錄下,如下:
which htpasswd
/usr/bin/htpasswd
如果apache是源碼方式安裝的話,該命令存放在apache安裝目錄的bin目錄下,如下:
/usr/local/apache2/bin
htpasswd命令用法,我們可以通過htpasswd的幫助進行查看,如下:
htpasswd -h
二、htpasswd命令詳解
在第一部分中,我們查看了htpasswd的幫助信息。現在我們來講解下幫助信息中的相關參數。
htpasswd的幫助信息如下:
htpasswd -h
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
htpasswd命令選項參數說明:
-c創建一個加密文件。
-n不更新加密文件,只將htpasswd命令加密後的用戶名和密碼顯示在屏幕上。
-m默認htpassswd命令採用MD5算法對密碼進行加密,該參數默認情況下可以不加。
-d表示htpassswd命令採用CRYPT算法對密碼進行加密。
-s表示htpassswd命令採用SHA算法對密碼進行加密。
-p表示htpassswd命令不對密碼進行進行加密,即明文密碼。
-b表示在htpassswd命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼。
-D表示刪除指定的用戶。
三、htpasswd的實例
在第二步中,我們列出了htpasswd的參數說明,現在我們來通過實例,介紹如何使用這些參數。
3.1利用htpasswd命令添加用戶
通過htpasswd命令來添加一個用戶,我們可以使用-b和-c參數。如下:
htpasswd -bc ilannifile ilanniuser 123456
cat ilannifile
htpasswd -bc ilannifile ilanniuser 123456
表示在當前目錄下生成一個ilannifile密碼文件,並新增一個用戶名爲ilanniuser密碼爲123456的用戶,默認採用MD5加密方式加密。
3.2在原有密碼文件中新增用戶
在原有的密碼文件中新增一個用戶,我們可以使用-b參數。如下:
htpasswd -b ilannifile ilannitwo 123456
cat ilannifile
htpasswd -b ilannifile ilannitwo 123456
表示在ilannifile密碼文件中新增一個用戶名爲ilannitwo,密碼爲123456的用戶。
注意:此時-c參數一定不能添加,否則會覆蓋原來的密碼文件再創建一個新的密碼文件。
3.3不更新密碼文件,只顯示加密後的用戶名和密碼
要不更新密碼文件,而只顯示加密後的用戶名和密碼,我們可以使用-n參數。如下:
htpasswd -n ilannitwo
注意-n參數後面一定要跟密碼文件中已經存在的用戶。說實話,這個參數沒有多大的實際意義。
3.4利用htpasswd命令刪除用戶名和密碼
要刪除已經在密碼文件存在的用戶,我們可以通過-D參數來實現。如下:
htpasswd -D ilannifile ilannitwo
3.5利用htpasswd命令修改用戶密碼
要達到這個目的,我們需要先利用htpasswd命令刪除指定用戶,然後再利用htpasswd創建用戶即可實現修改密碼的功能。如下:
四、htpasswd的應用
htpasswd可以與nagios、SVN、nginx、apache等進行集成使用,在此我們就不一一介紹。我們後續會單獨介紹htpasswd與以上幾個程序的集成使用。