Уважаемое коммюнити,
прошу подсказать, где может быть затык:
1. есть сервер на OpenSUSE 15.2
2. есть php script:
3. PHP7 и Nginx
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
ini_set('display_error', true);
$cmd = 'sudo -u root sh -c \'/usr/bin/echo "username:pass" | sudo /usr/sbin/chpasswd 2>&1\'';
exec($cmd,$output,$return_val);
print_r($output);
echo $return_val;
?>
Скрипт возвращает следующую строку в браузере:
Array ( [0] => chpasswd: (user username) pam_chauthtok() failed, error: [1] => Authentication token lock busy [2] => chpasswd: (line 1, user username) password not changed ) 1
При этом в шелле скрипт отрабатывает без проблем.
права для юзера nginx в sudoers выглядят так:
nginx ALL=(ALL) NOPASSWD: ALL. #(так только для теста)
Defaults:nginx !requiretty
NGinx и php-fpm даже запускались с рутовыми правами, но и это не помогло.
auditd пишет:
type=USER_CHAUTHTOK msg=audit(1627163840.500:550651): pid=21840 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='op=PAM:chauthtok grantors=? acct="username" exe="/usr/sbin/chpasswd" hostname=? addr=? terminal=? res=failed
Буду благодарен любой подсказке!