Centos

在沒有密碼提示或 root 的情況下執行命令

  • September 9, 2022

為了編寫腳本,我希望我的 minikube-role-user 在minikube tunnel沒有密碼提示的情況下執行命令,無需將使用者切換到 root,無論是通過 su 還是臨時通過 sudo,或者永久使用 visudo。

我已嘗試為我的 minikube-role-user 授予執行檔 /bin/minikube 和 /usr/bin/minikube 的可執行權限和所有權,但密碼提示仍然存在。我不認為 minikube 執行檔本身會提示輸入密碼,我認為它只是執行我沒有權限並且需要發現的第二個執行檔,以便我可以獲得它的權限。我懷疑這是因為 minikibe tunnel 命令不會立即提示輸入密碼,在提示輸入密碼之前和之後會列印一些標準輸出,而其他 minikube 命令不會提示輸入密碼。我認為這個假設的第二個執行檔可能是 nftables,因為 minikube 隧道可能會編寫一個 nftables 規則,但是給我的 minikube-role-user 對 nftables 的所有權權限並沒有擺脫密碼提示。

對於 Linuxminikube tunnel 使用硬編碼sudounder-the-hood,因此您不會繞過visudo/adjust sudoers

我想你已經找到了 minikube 文件關於避免密碼提示的內容,並且想要比提供訪問權限更精細的東西sudo ip

/etc/sudoers可以sudo非常精細地配置,您也可以只允許sudo特定命令無密碼:

username ALL=(ALL) NOPASSWD: /usr/bin/ip route add 10.96.0.0/12 via 192.168.64.194
  • 10.96.0.0/12是集群的服務 CIDR

,這裡是預設的,很可能也是你的,否則檢查這個 SO

  • 192.168.64.194是你的minikube ip

不幸的是,我現在無法對此進行測試,但也許你值得一試:)

引用自:https://serverfault.com/questions/1110340