Quel est le but des autorisations Linux telles que 111 ou 333 (c'est-à-dire que l'utilisateur peut exécuter , mais ne peut pas lire le fichier), si la capacité à exécuter n'implique pas automatiquement la capacité à lire?
permissions
chmod
chariot813
la source
la source
Réponses:
J'ai joué avec et apparemment, les autorisations d'exécution n'impliquent pas les autorisations de lecture. Les binaires peuvent être exécutables sans être lisibles:
Cependant, je ne peux pas exécuter de scripts, à moins qu'ils n'aient à la fois des bits d'autorisation de lecture et d'exécution sur:
la source
/bin/bash hw.sh
, puis bash essaie de s'ouvrirhw.sh
en lecture (et échoue).cela a du sens pour les répertoires, par exemple si vous conservez des exécutables (secrets) dans un répertoire spécifique et autorisez ensuite les utilisateurs à appeler ces fichiers sans pouvoir voir le contenu du répertoire (mais en sachant qu'un fichier spécifique est là après que vous les ayez informés!). 333 par rapport à 111 permet d'écrire / supprimer des fichiers vers / depuis ces répertoires sans pouvoir voir le contenu du répertoire.
la source
Évidemment, toutes les combinaisons ne sont pas aussi utiles, mais pour prendre celle que vous avez mentionnée spécifiquement ... Vous n'avez en fait pas besoin de
read
permission pour exécuter un fichier - seulement uneexecute
permission - sauf si le fichier en question est un script (par exemple un shell-script (.sh
), perl-script (.pl
) et ainsi de suite). Les binaires normaux peuvent être exécutés avec juste l'execute
autorisation. Sur * BSD-systmes, plusieurs exécutables donnent uneexecute
permission sansread
permisson, en particulier sur les commandes "importantes pour la sécurité" - par exemplesu
.Alors pourquoi ne pas donner aux utilisateurs la
read
permission (et juste laexecute
permission)? Devenir un fichier qui ne peut pas être lu par un utilisateur, ne peut pas non plus être copié par cet utilisateur! La suppression de l'read
autorisation empêche les utilisateurs de créer leurs propres copies «personnelles» d'exécutables - qu'ils pourront plus tard abuser (par exemple obtenirSUID=root on
).Et ne pas avoir
write
-permission, empêche un fichier d'être supprimé par conséquent.Rappelez - vous, ne pas donner ni
read
-NORwrite
-Permission au propriétaire est un rare bits, mais parfois il peut être une bonne idée d'éviter même leowner
de simplement la suppression d' un fichier. Bien sûr, leowner
- pour ne pas mentionnerroot
- peut toujours contourner de telles mesures, sinon par d'autres moyens, simplement parchmod
l'autorisation sur le dossier.la source
owner
juste de supprimer un fichier." - sauf que vous n'avez besoin d'aucune autorisation sur un fichier (lecture, écriture ou exécution) pour le supprimer./proc/${PID}/maps
puis en lisant les sections pertinentes de la mémoire/proc/${PID}/mem
? Ou la restriction des autorisations sur le fichier de l'exécutable restreint-elle également les autorisations de lecture sur ses sections pertinentes en mémoire pendant l'exécution? (Ce dernier semble peu probable, OMI.)