我寫了一個shell腳本來掛接到一個受密碼保護的數據庫。其他幾個人希望使用相同的shell腳本來共享數據庫訪問權限,但我不想公開正在使用的密碼。有沒有辦法鎖定腳本,以便沒有人可以閱讀它並只執行它?對於他們來說,輸入他們的sudo密碼來運行腳本也是非常理想的。想要只執行shell腳本
2
A
回答
6
有沒有一種方法來鎖定腳本,以便沒有人能夠閱讀它,只有 執行呢?這對他們來說也是理想的輸入他們的sudo密碼 來運行腳本
當然。假設包含憑證的腳本是/usr/local/bin/myscript
。使該文件由特權用戶擁有。比方說,我們有一個名爲「資格證書」的用戶:
# chown credentials /usr/local/bin/myscript
# chmod 700 /usr/local/bin/myscript
現在只有credentials
用戶可以讀取並執行這個腳本。
創建一個SQL腳本/usr/local/bin/mywrapper
,看起來像這樣:
#!/bin/sh
exec sudo -u credentials /usr/local/bin/myscript
,並創建相應/etc/sudoers
項:
auser ALL=(credentials) /usr/local/bin/myscript
所以,現在,用戶auser
運行 「mywrapper」。這反過來使用sudo
來調用真正的腳本,這將提示auser
他們的密碼。
我認爲這可以做你想做的一切。我們在辦公室使用非常類似的機制來保護證書(在我們的案例中,ssh私鑰)。
0
爲了執行shell腳本,您必須能夠讀取它。有幾件事你可以做:
- 誰管理這個數據庫?用戶是否可以獲取自己的密碼以進行只讀訪問?這將是理想的,因爲它可能限制他們訪問數據庫的一小部分。
- 如果他們必須具有sudo訪問權限才能運行此腳本,也許可以將密碼從文件中移出並將其移至設置了600個權限的文件中。問題是這可能會泄漏。例如,如果他們使用
set -xv
運行腳本,該怎麼辦?然後,他們可以在腳本執行時看到密碼。 - 您可以在數據庫之外創建他們可能感興趣的數據子集嗎?那麼,讓你的腳本訪問?
或者,您可能想要在Perl中查看幾個只讀模塊。我在想像Acme::EyeDrops或Acme::Bleach這樣的東西,它會從Perl腳本中刪除所有那些難看的字母和數字。 (我不知道爲什麼Python程序員說Perl是不可讀?)
相關問題
- 1. 我想要一個shell腳本可執行但不可讀
- 2. 執行shell腳本
- 3. 執行shell腳本
- 4. 需要從java執行shell腳本
- 5. 執行n行shell腳本
- 6. 從shell腳本執行symbolicatecrash
- 7. 難執行shell腳本
- 8. 從shell執行R腳本
- 9. 未執行shell腳本
- 10. 從shell腳本執行SQL
- 11. 執行shell腳本程序
- 12. 從mac執行Shell腳本
- 13. 無法執行shell腳本
- 14. shell腳本的Ruby腳本執行
- 15. 在shell腳本中執行php腳本?
- 16. 我想要從html文件或js腳本執行jsx腳本
- 17. 想要在perl腳本中執行perl腳本
- 18. 執行從Java,Shell腳本Shell腳本已經閱讀操作
- 19. shell腳本爲cron執行多個shell腳本
- 20. Shell參數運行/執行php腳本
- 21. shell腳本:執行一個長行
- 22. Gradle執行任務運行shell腳本分心要求輸入
- 23. Maven的:不能執行shell腳本
- 24. 在shell腳本執行程序的linux
- 25. 在SHELL腳本上執行C程序
- 26. 執行交互shell腳本在apache的
- 27. 如何使用java執行shell腳本
- 28. 從shell腳本執行R命令
- 29. 無法在php中執行shell腳本
- 30. 在PHP中執行shell腳本