Sudo command refused (htpasswd) - CentOS / Apache (htaccess)

I want to give one of the web developers testuser permission to set his own .htpasswd password using the /usr/bin/htpasswd command on the web server 'mywebserver'.

The web server tree belongs to the wwwadmin user, who therefore owns the .htpasswd file in the web root and is able to run htpasswd routinely.

In my understanding of sudo the next line in /etc/sudoers of the web server (stock Apache, CentOS 6) should do the job:

testuser        mywebserver=(wwwadmin) /usr/bin/htpasswd

The truth is that whenever the user testuser runs:

sudo /usr/bin/htpasswd .htpasswd someusername

the command is rejected with: [sudo] password for testuser: Sorry, user testuser is not allowed to execute '/usr/bin/htpasswd' as root on mywebsever.mydomain.com.

The log /var/log/secure shows:

Apr 1 17:13:51 mywebserver sudo: testuser : command not allowed ; TTY=pts/2 ; PWD=/var/www/html ; USER=root ; COMMAND=/usr/bin/htpasswd .htpasswd someusername

I'm baffled an have spent hours digging here and elsewhere on hints on why this happens (and why is root mentioned as user instead of wwwadmin).

Any clues would be appreciated!

0
задан 2 April 2016 в 01:20
2 ответа

Чтение документации отвечает на ваши вопросы

-u user, --user = user Запустите команду от имени пользователя, отличного от целевого пользователя по умолчанию (обычно root). Пользователь может быть либо именем пользователя, либо числовым идентификатором пользователя (UID) с префиксом «#» (например, # 0 для UID 0). При запуске команд как UID, многие оболочки требуют, чтобы символ «#» был экранирован обратной косой чертой («\»). Некоторые политики безопасности могут ограничивать UID теми, которые перечислены в базе данных паролей. Политика sudoers разрешает UID, которых нет в базе данных паролей, пока не установлен параметр targetpw. Другие политики безопасности могут не поддерживать это.

2
ответ дан 4 December 2019 в 13:42

Вы даете testuser привилегии запускать / usr / bin / htpasswd на mywebserver в качестве пользователя wwwadmin, но когда вы действительно запускаете команду sudo, вы не указывают, какого пользователя запускать, в результате по умолчанию используется root.

Попробуйте следующее:

sudo -u wwwadmin / usr / bin / htpasswd

0
ответ дан 4 December 2019 в 13:42

Теги

Похожие вопросы