Question

Comme le titre l'indique, un système de type Unix attribue-t-il une signification au bit SUID dans un répertoire , et si oui, que signifie-t-il?

Le bit SVTX (texte enregistré ou collant) a une signification - vous ne supprimerez pas un fichier de ce répertoire à moins que vous ne puissiez écrire dans le fichier. Il est utilisé sur / tmp, par exemple.

Le bit SGID (set GID) a une signification - les fichiers créés dans ce répertoire doivent appartenir au groupe propriétaire du répertoire (bien que cette affectation puisse ultérieurement être modifiée par un appel explicite à chown (2)).

Qu'en est-il du bit SUID?

Était-ce utile?

La solution

Pour donner suite à la réponse de Node, je publierai ce qui suit à partir de la page de manuel FreeBSD pour mount (8):

             suiddir
                 A directory on the mounted file system will respond to
                 the SUID bit being set, by setting the owner of any new
                 files to be the same as the owner of the directory.  New
                 directories will inherit the bit from their parents.
                 Execute bits are removed from the file, and it will not
                 be given to root.

                 This feature is designed for use on fileservers serving
                 PC users via ftp, SAMBA, or netatalk.  It provides secu-
                 rity holes for shell users and as such should not be used
                 on shell machines, especially on home directories.  This
                 option requires the SUIDDIR option in the kernel to work.
                 Only UFS file systems support this option.  See chmod(2)
                 for more information.

Et la section de page de manuel chmod (2) qui fait référence au bit suid:

           4000    (the setuid bit).  Executable files with this bit set will
               run with effective uid set to the uid of the file owner.
               Directories with this bit set will force all files and sub-
               directories created in them to be owned by the directory
               owner and not by the uid of the creating process, if the
               underlying file system supports this feature: see chmod(2)
               and the suiddir option to mount(8).

Sachez que ceci est un risque pour la sécurité et savez ce que vous faites quand vous l'activez, dans FreeBSD mais je pense que Linux nécessite également l'indicateur de montage spécial pour être activé et modifiera le comportement des fichiers de ce répertoire.

Autres conseils

Copié à partir de ici . :

  

Sur la plupart des systèmes, si le bit set-group-ID d'un répertoire est défini, les sous-fichiers nouvellement créés héritent du même groupe que le répertoire et les sous-répertoires nouvellement créés héritent du bit set-group-ID du répertoire parent. Sur quelques systèmes, le bit set-user-ID d'un répertoire a un effet similaire sur la propriété des nouveaux sous-fichiers et les bits set-user-ID des nouveaux sous-répertoires. Ces mécanismes permettent aux utilisateurs de partager des fichiers plus facilement, en réduisant la nécessité d’utiliser chmod ou chown pour partager de nouveaux fichiers.

     

Ces mécanismes pratiques reposent sur les bits set-user-ID et set-group-ID des répertoires. Si des commandes telles que chmod et mkdir effaçaient régulièrement ces bits sur les répertoires, les mécanismes seraient moins pratiques et il serait plus difficile de partager des fichiers. Par conséquent, une commande telle que chmod n’affecte pas les bits set-user-ID ou set-group-ID d’un répertoire, sauf si l’utilisateur les mentionne spécifiquement en mode symbolique ou les définit en mode numérique.

Lorsqu'il est défini sur un répertoire, tous les fichiers et répertoires créés dans ce répertoire auront le même propriétaire que le répertoire SUID lui-même, quel que soit le créateur du fichier. C'est une fonctionnalité qui n'est pas utilisée trop souvent, mais elle peut être utile dans certains cas. ( source )

Mise à jour: Je viens d’essayer cela sous Linux 2.6.25.5-1.1-default # 1 SMP x86_64 sous GNU / Linux openSUSE 11.0 (X86-64).

mkdir tmp
chmod 4777 tmp
su othergroup
touch testfile

Cela n'a eu aucun effet.

Le bit SUID indique que, lors de l’exécution d’un fichier (lorsqu’il est exécutable), le processus s’exécutera sous l’identité du propriétaire de ce fichier et non de celui qui l’a exécuté.

Il existe quelques cas où un programme utilitaire est 'suid root' pour autoriser l'escalade de privilèges.

EDIT: mal interprété la question initiale (qui fait référence à des répertoires plutôt qu'à des fichiers) - en laissant la réponse inchangée à des fins pédagogiques ;-)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top