2014-11-03 67 views
-1

我有兩個CentOS 6.5服務器,我有一個非常複雜的shell腳本連接這兩個服務器,並使用root用戶進行一些沒有密碼的備份。這裏有一些rsa鍵。 對於安全性聲明,我禁用了兩臺服務器上的根用戶登錄,我嘗試將腳本更改爲使用由root用戶登錄的用戶,但它沒有工作。我已將用戶權限從/ etc/sudoers更改爲用戶ALL =(ALL)ALL。 如果我用ssh-keygen -t rsa生成另一個ssh密鑰,它說我沒有特權,如果我使用sudo ssh-keygen -t rsa,他爲我創建了root @ server的密鑰。 我認爲這個問題會解決,如果我可以改變用戶權限來運行沒有「sudo」的sudo命令,就像root一樣,但我不知道這是否可能。 謝謝!與用戶的shell腳本中的SSH連接

+0

如果您希望獲得有關腳本的幫助,請向我們展示您的腳本。如果沒有你需要幫助的代碼,這不是一個編程問題,因此對於StackOverflow而言是非題目。 – ghoti 2014-11-03 13:33:57

回答

0

爲了維護安全性,還沒有做到這一點的某些工作,你需要做以下內容:

  1. 創建一個新的用戶帳戶,因爲只有這個特定的工作。
  2. 給這個用戶一個ssh-key來自動登錄而不用密碼。
  3. 登錄shell不應該是/ bin/bash,對於明顯的安全性 的原因。您可以設置SSH連接爲該特定用戶運行某個程序/命令 。我不想在這裏解釋細節。 請在網上搜索這個答案。
  4. 由於此程序需要root權限,並且此用戶不是 根目錄,因此需要設置有效的可執行權限爲 root(即setuid)。爲了使其只能由該特定用戶(和根)執行, 需要創建一個新組,將該用戶設置爲加入該組, 並將該程序設置爲可由該組執行(chmod 4770,4 for setuid ,770可由組執行,並且所有者)。 程序必須由root擁有(以便setuid爲root),並將該組指定爲 。該程序可以是二進制可執行文件或腳本。 沒關係。
  5. 注意:您的setuid程序/腳本必須非常小心,以免 包含可利用的安全弱點。