Est-il possible de désactiver les autorisations de fichiers sur un système de fichiers ext3 ou ext4?

10

Est-il possible de désactiver les autorisations de fichiers sur un système de fichiers ext3 / 4?

Je me demande simplement s'il est possible de désactiver ou d'ignorer complètement les autorisations de fichiers sur un système de fichiers ext3 ou ext4. Peut-être une option de montage?

Je ne suis pas préoccupé par les implications en matière de sécurité, car je le ferais pour les tests et les supports amovibles.

Corey
la source
2
Pourquoi voudriez-vous supprimer les autorisations de fichiers d'un système de fichiers ext3 ou ext4? Ils ont été construits avec les autorisations de fichiers POSIX à l'esprit. Si vous cherchez à utiliser un système de fichiers avec des options d'autorisations limitées, peut-être que quelque chose comme FAT32 ou exFAT serait mieux?
Rob Gibson
Je suis curieux de savoir s'il existe une option native Linux
Corey
2
Il s'agit d'une option native Linux pour utiliser FAT32, car il s'agit d'un système de fichiers pris en charge. Vous devez simplement utiliser un système de fichiers qui n'est pas conçu pour les systèmes POSIX, car ceux qui prennent en charge les autorisations de fichiers.
Rob Gibson
1
ne ferait pas $ sudo chmod -R 777 /your/filesysteml'affaire?
Red Cricket
1
@RedCricket ce serait une solution de contournement si la réponse s'avérait non
Corey

Réponses:

5

Ce n'est pas la seule chose que vous puissiez faire.

Il existe un moyen d'accorder à tout le monde des autorisations sans utiliser les autorisations normales, ce qui encombrera votre affichage (en quelque sorte).

Cela signifie que ls --color(par défaut) s'affichera toujours o:rwXdans un arrière-plan de bloc, ce qui est hideux et ne vise qu'à alerter les utilisateurs sur de mauvaises autorisations (quand elles vous conviennent).

Mais vous pouvez facilement obtenir des autorisations d'écriture universelles (ou quasi-universelles) sur vos fichiers en utilisant des listes de contrôle d'accès .

setfacl -d -m g:sudo:rwX .
setfacl -m g:sudo:rwX .

donnera des autorisations rwX à toutes les personnes du groupe sudo. Puisque la plupart de vos systèmes, vous aurez un utilisateur dans le groupe sudo, en particulier pour les supports amovibles (et donc les systèmes locaux), vous aurez toujours accès n'importe où pour n'importe qui dans ce groupe (qui est vous). Vous pouvez également l'étendre aux utilisateurs, au cas où vous êtes sur un autre système qui utilise ce groupe:

setfacl -d -m g:users:rwX .
setfacl -m g:users:rwX .

L'indicateur -d signifie que les autorisations se propageront à tous les fichiers nouvellement créés (par défaut). Le seul inconvénient est que vous ne pouvez pas normalement voir ces autorisations, ce qui signifie que vous préférez les désactiver complètement (par conséquent, à quoi sert un support de suppression si vous définissez des autorisations que tout le monde peut contourner de toute façon, non?). C'est comme dire: vous pouvez accéder à ces fichiers si vous vous appelez John. D'accord, je m'appelle John. Très bien, vous avez accès maintenant.

(Tout le monde peut assumer la racine sur chaque système qu'il possède et les autorisations de système de fichiers ne signifient donc rien)

ExtFS n'est tout simplement pas destiné aux supports amovibles. Il n'y a pas de systèmes de fichiers Linux vraiment utiles sur les supports amovibles, mais FAT et NTFS ont l'inconvénient de ne pas vraiment prendre en charge les liens symboliques et d'exécuter des indicateurs, ce qui est difficile pour les référentiels git, par exemple. Juste mon avis ici.

Vous ne pouvez voir votre fichier ACL qu'en faisant:

getfacl <file>

Et quand vous ls -l vous verrez:

drwxr-xr-x+ 4 user user 4096 aug 31 03:40 .

Le + indique qu'une ACL est active sur le fichier (ou répertoire).

La sortie de getfacl sera (par exemple):

# file: .
# owner: user
# group: user
user::rwx
group::rwx                      #effective:r-x
group:sudo:rwx                  #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:sudo:rwx
default:mask::rwx
default:other::r-x

Je ne connais pas tous les détails, mais cela devrait fonctionner. Tant que vous êtes dans sudo, vous pouvez tout faire.

Xennex81
la source
4

Non, vous ne pouvez pas supprimer les autorisations de fichiers pour les systèmes de fichiers ext {2,3,4}.

La seule chose que vous pouvez faire est de définir tous les fichiers sur l' autorisation 777 .

Exécutez simplement:

 chmod a+rwX -R <mountpoint>
H.-Dirk Schmitt
la source
4
Mieux vaut faire cela chmod a+rwX -R <mountpoint>pour ne pas donner de fausses autorisations d'exécution.
vonbrand
@vonbrand droite
H.-Dirk Schmitt
mais l' Xin chmod a+rwXrend tous les fichiers exécutables, non? C'est une bonne chose??
Becko
3
@becko Vous avez manqué le point des deux commentaires précédents. Les majuscules Xrendront uniquement les répertoires exécutables (saisissables) sans rendre les fichiers exécutables; tandis que les minuscules xrendront tous les fichiers et répertoires exécutables.
XA21X
0

Bien sûr, les autorisations du système de fichiers sont simplement vérifiées par le pilote du système de fichiers (module) et si vous deviez patcher ce module, vous pourriez désactiver les autorisations du système de fichiers autant que vous le souhaitez.

J'ai déjà fait cela pour cifs.ko, le module `` Samba '' (client) pour le noyau, car il y a des bogues samba où vous devriez avoir un accès local, et vous avez un accès à distance, mais l'accès n'est toujours pas accordé.

J'ai désactivé l'autorisation locale en vérifiant si l'utilisateur local était dans le groupe (local) du fichier, la même chose que l'option "noperm", ne l'activant que lorsque vous êtes membre du groupe, cette fois.

Bien sûr, extfs n'est pas exactement un module dans le noyau, mais un nouveau drapeau serait trivial à ajouter.

Xennex81
la source
Je ne sais pas si vous répondez à la question ou non. Vous dites que c'est possible, si c'était un module, alors vous dites que ce n'est pas un module.
Jeff Schaller
Ce serait possible si le soleil dansait aussi dans le ciel. Si vous saviez quelque chose sur le noyau, vous sauriez que quelque chose qui n'est pas un module nécessiterait de recompiler tout le noyau, ce qui est un peu prohibitif pour les gens ordinaires, tandis que la compilation d'un module est relativement gratuite. J'exprime simplement le fait qu'il n'y a rien d'inhérent à Linux qui empêcherait une telle option de se produire, car cette limitation m'a également énervé.
Xennex81