Donner droits root à un fichier

Bonjour,
Comment faire pour donner les droits root à un fichier par exemple :
g un fichier test dans lequel g mis halt et j'aimerai avec un utilisateur normal que qd je tappe sh test sa eteigne lordi .

8 réponses

  1. Tu veux rendre un executable ou script en set-uid. En principe tu fais comme root:

    chown root:root test
    chmod +s test

    La 1ere ligne change le proprietaire du fichier et la 2nd met le set-uid.
    Apres tu peux voir avec "ls -l" quelque chose comme ca:
    -rwsr-sr-x 1 root root 0 Nov 14 19:34 test

    Defois ca ne marche pas comme prevue car il y a d'autre trucs de securite qui peuvent te causer des ennuies (ou eviter des ennuies selon le point de vu). De toute facon tu peux essayer et on verra.

    PS.: Normalement il y a un autre "test" dans /usr/bin/ de ton systeme.
    Choisit un autre nom.
    1
    1. c'est plutot l'inverse alors, tu veux donner des droits pour un utilisateur lambda? tu peux utiliser cmod ou chown pour changer les droits, ou attribuer des droits, pour le faire avec un utilitaire tu tapes en console et en root: mc c'est utilitaire te permet de faire pas mal de chose sur les fichiers.
      0
      1. g fait ce que tu m'a dis voila ce que sa fait fais qd je fait ls -l :
        -rwSr-Sr-- 1 root root
        mais qd je fait sh lenomdemonfichier en utilisateur normal ça ne marche toujour pas sa met :
        line 1: halt: command not found
        0
        1. C'est parce que "halt" n'est pas dans le path de l'utilisateur.
          Il faut mettre "/sbin/halt" dans ton fichier.
          0
          1. Merci, mais ça ne marche toujours pas, il me met :
            halt: must be superuser.
            Alors que pourtant ça ne devrait plus le faire comme j'ai fait :
            chown root:root fichier
            chmod +s fichier
            ?
            0
            1. Modérateur
              Salut,

              Que le fichier en question ait les droits d'exécution et le SUID bit est un fait, par contre quand est-il de la commande "/sbin/halt" ?
              A-t-elle le droit d'exécution pour ton user ?
              ls -l /sbin/halt
              Le halt: must be superuser me ferai penser le contraire !

              ;-))

              Z'@+...che.
              JP : Zen, my Nuggets ! ;-)
              
              0
              1. Contributeur
                Bonjour à tous,
                Pas besoin pour /sbin/halt, je crois. Ce qu'il faut, c'est que ton fichier "test" appartienne à un groupe qui contient l'utilisateur qui pourra l'éxécuter.
                Si ça concerne seulement un utilisateur, qu'on appellera "user1", alors son groupe "user1" associé fera l'affaire.
                A tenter :
                chown root:user1 /chemin/vers/test
                chmod 755 /chemin/vers/test
                chmod g+s /chemin/vers/test


                ______________
                - X e n o r ---
                RTFM rulz !!
                0
                1. Contributeur
                  Arf ben non ça a pas l'air de marcher.... Bon, à essayer directement avec /sbin/halt.
                  Pb à creuser !

                  ______________
                  - X e n o r ---
                  RTFM rulz !!
                  0