Comment la propriété des fichiers est-elle affectée sur différents systèmes?

10

Si je comprends bien les systèmes de fichiers Unix, tout fichier sur un système Unix doit appartenir à un groupe et à un utilisateur dudit système. Un fichier ne peut pas appartenir à un groupe ou à un utilisateur qui n'existe pas sur le système.

De cette hypothèse, il y a quelques questions qui me viennent à l'esprit. Qu'advient-il des attributs de groupe et d'utilisateur lorsque le média est transféré entre ordinateurs, que ce soit via un lecteur flash, un CD-ROM ou un partage réseau. À qui appartient le fichier dans le nouveau système?

Pouvez-vous limiter les données pour qu'elles ne fonctionnent que sur votre système? (Je ne parle pas de chiffrement ici, mais de base.)

En outre, lorsque vous transférez des données entre deux ordinateurs, existe-t-il des moyens de garantir que les attributs de groupe et d'utilisateur restent intacts (ce qui appartient à root appartiendra à root sur le nouveau système et de même avec l'utilisateur normal).

Stefan
la source
problème de grammaire sur la première phrase
tshepang
@thsepang .. nice catch, fixed
Stefan

Réponses:

6

Sur tous les systèmes de fichiers Unix natifs, la propriété des fichiers est stockée sous forme d'ID utilisateur et de groupe. C'est également le cas pour le fonctionnement de base NFS (bien qu'il existe d'autres possibilités au moins dans NFSv4) et pour les formats d'archives Unix traditionnels tels que tar.

Un fichier peut en effet appartenir à un utilisateur ou à un groupe qui n'existe pas. Le fichier appartient à un ID particulier, mais il n'y a aucune obligation que l'ID soit répertorié dans /etc/passwdou dans une autre base de données d'utilisateurs ou de groupes. Par exemple, si vous stockez votre base de données utilisateur sur NIS ou LDAP et que le serveur de base de données est temporairement inaccessible, les fichiers des utilisateurs existent toujours.

Lorsque vous transportez des supports amovibles d'un système à un autre, vous devez soit vous assurer que les ID utilisateur et groupe correspondent le cas échéant, soit ignorer la propriété (par exemple en utilisant un système de fichiers non-unix). La racine est un peu un cas spécial car sa caractéristique principale est que l'ID utilisateur est 0, partout.

La seule façon de contrôler ce qu'une personne en possession physique des médias fera des données est d'utiliser un moyen de protection intrinsèque, c'est-à-dire qui ne dépend pas de la façon dont il accède au système, et de garder quelque chose pour soi. Vous pouvez utiliser un moyen de protection mathématique: cryptographie (cryptage pour la confidentialité, signature pour l'intégrité; vous gardez le mot de passe pour vous), ou un moyen de protection physique (par exemple une boîte verrouillée).

Gilles 'SO- arrête d'être méchant'
la source
3

Chaque fichier et répertoire dans la plupart des systèmes de fichiers Unix ont un groupe numérique et un ID utilisateur associés. Il y a ensuite un mappage (/ etc / passwd pour les utilisateurs et / etc / group pour les groupes) des identifiants aux noms. Lorsque vous transférez un fichier vers un autre système, les identifiants numériques restent les mêmes. Il se peut qu'il n'y ait pas de nom avec cet identifiant sur le nouveau système. Donc, si vous faites un ls -l, vous verrez des nombres au lieu des noms d'utilisateurs.

L'utilisateur root a toujours l'ID utilisateur 0, il sera donc le même sur tous les systèmes. Si vous avez l'intention de déplacer souvent des fichiers, vous devez vous assurer que les utilisateurs communs aux deux systèmes ont le même ID utilisateur sur chacun.

KeithB
la source