首頁 > 後端開發 > Python教學 > 如何在不硬編碼密碼的情況下安全地執行需要提升權限的 Python 腳本?

如何在不硬編碼密碼的情況下安全地執行需要提升權限的 Python 腳本?

Barbara Streisand
發布: 2024-11-04 02:16:30
原創
1077 人瀏覽過

How to Securely Run Python Scripts Requiring Elevated Privileges Without Hardcoding Passwords?

將sudo 與Python 腳本結合使用:硬編碼密碼的安全替代方案

您正在嘗試建立一個PytBox共享資料夾執行。但是,這需要提升權限,導致您探索諸如以 sudo 身份運行腳本或在腳本中使用 sudo 等選項。

雖然當然不建議在 .py 檔案中提供密碼,但可能是可以接受的對於低關鍵虛擬機器。但是,您提出的解決方案引起了擔憂:

#!/usr/bin/env python
import subprocess

sudoPassword = 'mypass'
command = 'mount -t vboxsf myfolder /home/myuser/myfolder'

subprocess.Popen('sudo -S' , shell=True,stdout=subprocess.PIPE)
subprocess.Popen(sudoPassword , shell=True,stdout=subprocess.PIPE)
subprocess.Popen(command , shell=True,stdout=subprocess.PIPE)
登入後複製

強烈建議不要採用這種方法。硬編碼密碼被認為是一種較差的安全做法,使您的系統容易受到未經授權的存取。

硬編碼密碼的替代方案

幸運的是,還有更安全的替代方案:

  • 使用/ etc/fstab: 根據mensi 的建議,您可以設定/etc/fstab 以允許普通使用者無需sudo 即可掛載磁碟區。
  • 使用 Polkit: Polkit 提供了一種無密碼操作的機制。您可以建立一個 .policy 文件,無需密碼即可授予腳本權限。
  • 修改 /etc/sudoers: 透過編輯 /etc/sudoers,您可以授予使用者有限的 sudo僅適用於特定命令的權限。這限制了對您想要的腳本的無密碼執行。

這些替代方案可讓您在不損害系統安全性的情況下實現您的目標。進一步閱讀這些主題可以提供更深入的資訊。

以上是如何在不硬編碼密碼的情況下安全地執行需要提升權限的 Python 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板