這個專案的目的是為使用者提供一個非常簡單的 Web 表單,以便能夠變更儲存在 LDAP 或 Active Directory (Samba 4 AD) 中的密碼。它是用 Bottle 建構的,Bottle 是一個 Python 的 WSGI 微型網路框架。
從 Alpine 的社群儲存庫安裝軟體套件ldap-passwd-webui-waitress :
apk add ldap-passwd-webui-waitress
重要的 | 該軟體包自 v3.7 起在 Alpine 中保持穩定。您也可以從邊緣(不穩定)分支安裝它。 |
調整/etc/ldap-passwd-webui.ini
和/etc/conf.d/
中的配置。
啟動服務 ldap-passwd-webui:
/etc/init.d/ldap-passwd-webui start
克隆此存儲庫並安裝依賴項:
git clone [email protected]:jirutka/ldap-passwd-webui.git
cd ldap-passwd-webui
pip install -r requirements.txt
閱讀接下來的部分以了解如何運行它。
Python 3.x
瓶子
LDAP3 2.x
配置是從檔案settings.ini 中讀取的。您可以使用環境變數CONF_FILE
來變更設定檔的位置。
如果您有 Active Directory(或 Samba 4 AD),則必須使用加密連線(即 LDAPS 或 StartTLS) - AD 不允許透過未加密連線變更密碼。
有多種運作方法:
使用基於 wsgiref 的內建預設 WSGI 伺服器,
在 uWSGI、Waitress、Gunicorn 等 WSGI 伺服器下(建議)
作為 CGI 腳本。
只需執行app.py
:
python3 app . py
然後您就可以透過 http://localhost:8080 存取該應用程式。連接埠和主機可以在 settings.ini 中更改。
cd ldap-passwd-webui
waitress-serve --listen= * :8080 app:application
如果你有很多這樣的微型應用程序,那麼在單獨的 uWSGI 進程中運行每個應用程式在我看來有點矯枉過正,不是嗎?雖然不太為人所知,但 uWSGI 允許使用單一套接字在單一 uWSGI 進程中「安裝」多個應用程式。
[uwsgi]
plugins = python3
socket = /run/uwsgi/main.sock
chdir = /var/www/scripts
logger = file:/var/log/uwsgi/main.log
processes = 1
threads = 2
# map URI paths to applications
mount = /admin/ ldap-passwd-webui =ldap-passwd-webui/app.py
# mount = /admin/change-world=change-world/app.py
manage-script-name = true
server {
listen 443 ssl;
server_name example.org;
ssl_certificate /etc/ssl/nginx/nginx.crt;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
# uWSGI scripts
location /admin/ {
uwsgi_pass unix:/run/uwsgi/main.sock;
include uwsgi_params;
}
}
該專案已獲得 MIT 許可。有關許可證的全文,請參閱 LICENSE 文件。