2014-12-29 21 views
7

我添加了一個用戶是這樣的:sudoers的NOPASSWD:須藤:無本TTY和沒有askpass程序指定

$ adduser --system --home /no/home --no-create-home --group --disabled-password --disabled-login testuser 

將用戶添加到的基團:

$ adduser testuser testgroup 

添加的行到sudoers的( visudo命令):

testuser ALL=(ALL) NOPASSWD: ALL 
%testgroup   ALL=(ALL:ALL) NOPASSWD: ALL 

當我嘗試用下面的內容運行bash腳本:

#!/bin/sh 
sudo -u testuser /usr/bin/php /usr/local/bin/script.php 

但是當我運行該腳本,我得到的日誌中的錯誤:

sudo: no tty present and no askpass program specified 

編輯:requiretty不在sudoers文件。

+1

關於您要更改的用戶/組的'sudo'權限*不是您正在更改的用戶*更改爲*?那麼,那些讓'testuser'用戶和'testgroup'組不用密碼就可以運行任何命令的行?您是否需要爲運行腳本的用戶授予許可權來運行命令*作爲* testuser來滿足您的需求?假設這就是你想要允許的? –

+0

@EtanReisner我也試過了,但仍然收到相同的錯誤。 –

+0

你試過了*什麼?運行'sudo'作爲testuser?你特別做了什麼/嘗試?什麼用戶正在運行原始腳本? –

回答

7

sudo權限是對你在修改不是你正在改變用戶的用戶/組。

那麼這些權限行是讓testuser用戶和testgroup組運行沒有密碼的任何命令(任何人)。

你需要給權限運行腳本來運行命令testuser用戶你想要的東西的用戶。

假設這就是你想要的那樣。

3

當您的sudoers文件指定requiretty時會發生此錯誤。從sudoers手冊頁:

requiretty  If set, sudo will only run when the user is 
        logged in to a real tty. When this flag is set, 
        sudo can only be run from a login session and not 
        via other means such as cron(8) or cgi-bin scripts. 
        This flag is off by default. 

要改正錯誤,刪除您sudoers文件requiretty

+0

謝謝,但它沒有幫助。 requiretty不在sudoers文件中。我已經更新了我的問題。 –

相關問題