Not-Root-User

普通(非root)使用者的dhclient

  • August 7, 2016

以 root 身份呼叫 dhclient 在我的 debian 機器上執行良好。但是,我也想允許一些使用者執行 dhclient。到目前為止,我已經嘗試了這兩個範例:

範例一:普通使用者撥打電話時

user@box:~$ dhclient

…,結果是:

bash: dhclient: command not found

例2:我也試過

user@box:~$ /sbin/dhclient

…,並得到

[...]

can't create /var/lib/dhcp3/dhclient.leases: Permission denied
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFFLAGS: Permission denied
Open a socket for LPF: Operation not permitted

現在…我覺得對整個 /sbin 目錄進行 chmod 以供使用者訪問既不是一個好主意(也不會起作用),對上面第二個範例中 dhclient 抱怨的所有內容進行 chmod 似乎也不優雅。解決此問題的最佳和最安全的方法是什麼?

安裝和使用sudo。這是做這些事情的一種也是最理智的方式。dhclient確實需要root權限,沒有辦法解決。

允許特定使用者以 root 權限執行單個命令。這可以在這樣的/etc/sudoers文件中配置(使用編輯visudo):

Cmnd_Alias     DHCP = /usr/sbin/dhclient
User_Alias     DCHPUSERS = millert, mikef, dowdy

DCHPUSERS      ALL = NOPASSWD: DHCP

以上只是配置 sudo 的一種方式。如果您有很多使用者要像這樣管理,我建議使用本地使用者組而不是指定單個使用者。

引用自:https://unix.stackexchange.com/questions/58934