Security
具有 sudo 訪問權限的使用者的安全性
sudo
在大多數使用者可以訪問其他使用者 ID的 UNIX 環境中,如何保護我的密碼列表(例如在不同的數據庫中) ?我有一個腳本 (
main.sh
),其中包含以下內容$HOME
:$ cat main.sh mysql --skip-column-names -hmysql_host -umy_user -pmy_password -ADmysql_db << EOF >> /home/my_user/mysql.log select current_date; EOF
當另一個使用者 (
another_user
) 嘗試sudo su - my_user
時,他/她可以看到我的 MySQL 數據庫密碼。即使我輸入密碼
.bashrc
並通過腳本中的某個變數訪問它,他/她也將能夠在.bashrc
文件中看到我的密碼。如何保護我的 MySQL 密碼免受該使用者的侵害
another_user
?
由於每個定義都擁有 root 權限的每個人都可以訪問伺服器上的所有文件——不,你不能。如果您不信任擁有 root 權限的人,那麼您不應該從該伺服器執行任何敏感內容。
不過,您仍然可以保護您的 MySQL 伺服器。您可以為特定事物使用特定帳戶,這樣如果您有一個執行查找的腳本,則用於該操作的帳戶也不能用於刪除事物。您可以只允許從一個 IP 地址訪問一個帳戶,這樣即使有人知道了您的密碼,他們仍然只能從那一台機器上使用它。或者您可以設置它,以便腳本/cron 作業在 MySQL 伺服器上執行,並讓它連接到另一台伺服器以獲取所需的數據,例如通過使用無密碼 SSH 密鑰。
即使您不擔心其他 sudo 使用者,您也應該查看這些東西 - 因為即使您相信伺服器上每個具有 root 權限的人都沒有惡意,您仍然不能確定他們不會犯錯誤導致伺服器受到威脅,並且您不希望任何第三方攻擊者可以不受限制地訪問您的數據庫。