Bonjour tout le forum,
J'ai besoin de votre aide.
Je souhaite pouvoir monter une clé USB via une page PHP pour un utilisateur en local.
Voici mes fichiers
- test.php
- /etc/sudoers
/var/www/admin/test.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>test</title>
</head>
<body>
<?php
// Chemin du point de montage
$mountPoint = "/mnt/cle";
// Chemin du périphérique USB
$usbDevice = "/dev/sdb1";
// Commande pour monter la clé USB
$command = "sudo mount $usbDevice $mountPoint 2>&1";
// Exécution de la commande et capture de la sortie
$output = [];
$exitCode = 0;
exec($command, $output, $exitCode);
// Vérification du code de sortie de la commande
if ($exitCode === 0) {
echo "La clé USB a été montée avec succès.";
} else {
echo "Erreur lors du montage de la clé USB:";
foreach ($output as $line) {
echo "<br>$line";
}
}
?>
</body>
</html>
/etc/sudoers
root ALL=(ALL:ALL) ALL
www-data ALL=(ALL) NOPASSWD: /bin/mount
www-data ALL=(ALL) NOPASSWD: /bin/umount
Résultat :
Erreur lors du montage de la clé USB:
mount: /mnt/cle: /dev/sdb1 already mounted on /mnt/cle
Le répertoire /mnt/cle est vide.
Le fichier /etc/mtab ne mentionne pas /dev/sdb1.
Si je lance :
if [[ $(findmnt /mnt/cle) ]]; then
echo "La clé est montée"
else
echo "La clé n'est pas montée"
fi
Résultat :
La clé n'est pas montée.
Merci pour votre aide
# besoin de lunettes ?
Posté par nono14 (site web personnel) . Évalué à 3. Dernière modification le 21 janvier 2024 à 12:36.
le peripherique est déja monté !
testé en tant que www-data pour voir si la config sudo est fonctionnelle, puis depuis L.appli web en suite
je te conseille de mettre le periph en dur sinon sans autorisation n’importe qui va pouvoir monter/demonter les partitions….
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: besoin de lunettes ?
Posté par seb . Évalué à 1.
Bonjour,
avec putty
www-data@serveuratelier:~$ sudo mount /dev/sdb1 /mnt/cle
ça fonctionne, la clé est montée.
Avec ma page php, que la clé soit déjà monté ou pas, j'obtiens toujours :
Erreur lors du montage de la clé USB:
mount: /mnt/cle: /dev/sdb1 already mounted on /mnt/cle.
# hou la
Posté par fearan . Évalué à 5. Dernière modification le 21 janvier 2024 à 15:37.
Un sudo mount dans aucun contrôle, autant pas mettre de mot de passe …
Dans le fstab je mettrai la ligne correspondant au montage avec l'option user
Et ne passerai pas par sudo
Et donc avec pour seule commande, mount /mnt/cle
Je regarderai aussi si le serveur ne tourne pas dans un chroot
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# ?
Posté par seb . Évalué à 1. Dernière modification le 21 janvier 2024 à 16:19.
Bonjour,
/etc/fstab
/var/www/admin/test.php
/etc/sudoers
Résultat :
Erreur lors du montage de la clé USB:
mount: /mnt/cle: must be superuser to use mount.
Avec :
$command = "sudo mount $usbDevice $mountPoint 2>&1";
Erreur lors du montage de la clé USB:
mount: /mnt/cle: /dev/sdb1 already mounted on /mnt/cle.
[^] # Re: ?
Posté par fearan . Évalué à 5. Dernière modification le 21 janvier 2024 à 17:50.
il ne faut pas préciser le /dev/sdb1
juste
mount /mnt/cle
ah et no-auto ou noauto je ne me souviens plus, sinon c'est automatiquement monté au boot :)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.