PHP ne peut pas accéder à RNDC
P粉794851975
P粉794851975 2024-02-21 21:33:27
0
2
374

J'édite un fichier de zone /var/named/rpz.local et je dois recharger rndc après avoir exécuté cette commande :

cd /var/named
rndc reload rpz.local

Tout va bien en utilisant cli en tant qu'utilisateur root, mais le problème est que je ne peux pas l'exécuter via nginx (PHP) /usr/sbin/rndc. Alors peux-tu me donner un indice ?

Je peux exécuter ceci :

$Output = shell_exec("uptime");
print($Output);

Mais si j'exécute cette commande, le résultat sera vide : system('rndc 重新加载'); ou shell_exec('rndc 相关'); Il semble que je n'ai pas accès à rndc car je ne peux même pas exécuter : rndc 状态 Mais si je lance ceci :

system(`uptime`); // Sun Aug 20 22:36:51 +0330 2023
$Test = shell_exec(`rndc status`); // return nothing
print($Test);
system('uptime');//  00:28:03 up 18 days, 10:47,  2 users,  load average: 0.00, 0.02, 0.05

J'ai le résultat de uptime and uptime command. But there is nothing f或者 shell_exec('rndc reload') J'ai aussi fait la commande ci-dessous mais ça n'a pas fonctionné :

.
setfacl -m u:nginx:rwx rpz.local
setfacl -m u:nginx:rwx /usr/sbin/rndc

P粉794851975
P粉794851975

répondre à tous(2)
P粉545956597

Si vous avez PHP exécuté en tant que root dans Nginx, vous avez un problème sérieux et bien plus encore.

Veuillez consulter votre manuel d'utilisation pour comprendre le rôle de l'utilisateur root et son objectif. Gérez ensuite le système en conséquence.

Ou en bref : ce n'est pas parce que vous pouvez faire quelque chose en tant que root que vous devez le faire depuis PHP. Découvrez pourquoi. réel. honnêtement.

Sinon, veuillez contacter l'administrateur système responsable qui connaît votre système d'exploitation et clarifier les exigences en personne.

P粉463291248

Le problème a été résolu. comment ? En essayant de courir rndc 命令时,我得到 NULL . Comme mentionné dans ce post j'ai changé la commande en :

$Test = shell_exec(`rndc reload rpz.local 2>&1`); // return permission denied for rndc.key file
print($Test);

Alors je l'ai fait :

setfacl -m u:nginx:rwx /etc/rndc.key

Problème résolu.

Merci beaucoup chérie@hake

P.S Comme @hake l'a mentionné, nous avions tort d'exécuter nginx en tant que sudoer ou d'ajouter nginx au groupe sudoer, alors ne faites pas l'erreur, même si le débogage est correct et les tests (pas plus de 1 à 2 heures ) .

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal