擁有特定一組權限的非根使用者在 Linux 端點上安裝代理程式會失敗。

問題

如果未新增 tty 指令,代理程式的安裝會失敗並顯示以下錯誤:
虛擬機器 <VM ID> 的啟動執行程序失敗,並顯示錯誤訊息:{ "status":"FAILED", "data":[ { "status":"FAILED", "message":"失敗 - 安裝 - 使用者 <Install Username> 執行指令 mkdir 須有無密碼 sudo 存取權。[sudo:抱歉,您必須有 tty 才能執行 sudo]", "stage":"0" } ], "currentstage":"0", "totalstages":"0" }

以下是使用者安裝代理程式所需的最低權限,應在 sudoers 檔案中顯示出來:

解決方案

  • 以下是使用者安裝代理程式所需的最低權限,應在 sudoers 檔案中顯示出來。例如,對於名為 telegrafinstall 的使用者,可以在 /etc/sudoers 檔案或資料夾 /etc/sudoers.d/: 中找到 sudoers 檔案。將這些行新增至 /etc/sudoers (如果尚未新增)。
    Defaults:telegrafinstall !requiretty 
    
    Cmnd_Alias ARC_INSTALL_USER_COMMANDS=/usr/bin/cp*,/bin/cp*,/usr/bin/mkdir*,/bin/mkdir*,/usr/bin/chmod*,/bin/chmod*,/opt/vmware/ucp/bootstrap/uaf-bootstrap.sh,/opt/vmware/ucp/ucp-minion/bin/ucp-minion.sh 
    
    telegrafinstall ALL=(ALL)NOPASSWD: ARC_INSTALL_USER_COMMANDS