Bonjour,
Je cherche à ce qu’un utilisateur Linux (sous Debian) ne puisse pas rendre exécutable (+x via chmod) un fichier qu’il aurai envoyé dans un de ses répertoires (en l’occurrence ici /www/ où il ne devrai y avoir que des pages Web), dans son home (chrooté).
Mon utilisateur peut exécuter certaines commandes (présentes dans son propre /bin/ chrooté en read only que je lui fourni) mais je ne veux pas qu’il puisse ajouter des binaires dans un autre répertoire où il peut écrire.
Je pourrai très bien ne pas rendre disponible la commande bash chmod (ce qui est actuellement le cas) mais ce n’est pas véritablement une solution car la fonction chmod() de PHP se suffit à elle même et j’aimerai ne pas avoir à la désactiver à son tour. Ça serai dommage d’avoir un PHP chrooté pour autoriser les commandes PHP exec(), system() etc... et d’avoir à désactiver chmod() ce qui peut perturber certain CMS.
Auriez-vous une autre idée s’il vous plaît ?
PS : J’utilise Debian 11 sur le système de fichier ext4 ainsi que NFSv4.2 avec les ACL activées.
Merci d'avance, Élodie BOSSIER
Ce serait une partition, il suffirait de la monter avec noexec (il est possible que cela fonctionne avec mount --bind et un répertoire mais je n'ai pas testé).
Sinon, SELinux permet d'attribuer des droits/rôles différents par fichier suivant le processus qui le crée mais là ça devient très compliqué.
Pierre.
On Wed, 29 Sept 2021 at 15:09, Élodie BOSSIER via FRsAG frsag@frsag.org wrote:
Bonjour,
Je cherche à ce qu’un utilisateur Linux (sous Debian) ne puisse pas rendre exécutable (+x via chmod) un fichier qu’il aurai envoyé dans un de ses répertoires (en l’occurrence ici /www/ où il ne devrai y avoir que des pages Web), dans son home (chrooté).
Mon utilisateur peut exécuter certaines commandes (présentes dans son propre /bin/ chrooté en read only que je lui fourni) mais je ne veux pas qu’il puisse ajouter des binaires dans un autre répertoire où il peut écrire.
Je pourrai très bien ne pas rendre disponible la commande bash chmod (ce qui est actuellement le cas) mais ce n’est pas véritablement une solution car la fonction chmod() de PHP se suffit à elle même et j’aimerai ne pas avoir à la désactiver à son tour. Ça serai dommage d’avoir un PHP chrooté pour autoriser les commandes PHP exec(), system() etc... et d’avoir à désactiver chmod() ce qui peut perturber certain CMS.
Auriez-vous une autre idée s’il vous plaît ?
PS : J’utilise Debian 11 sur le système de fichier ext4 ainsi que NFSv4.2 avec les ACL activées.
Merci d'avance, Élodie BOSSIER _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/