Page 1 sur 1

[Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 19:29
par Ypnose
Bonjour Archers,
Sur un de mes serveurs, je cherche à lancer une commande root sans devoir taper de mot de passe, quand on se connecte / déconnecte via ssh.
Donc via le ~/.profile et le ~/.bash_logout de l'utilisateur root, j'ai rentré les commandes et tout fonctionnent parfaitement.
J'aimerais faire exactement la même chose sur un utilisateur normal, mais ces commandes ont besoin du privilège root, donc si je passe par un "sudo" ou un "su -c", je devrais rentrer le mot de passe, à un moment. Voici la commande (même si cela ne vous dira rien):

Code : Tout sélectionner

echo none > /sys/class/leds/dockstar\:green\:health/trigger
J'ai pensé faire un script et permettre son execution avec sudo via le sudoers, mais je trouve ça peu propre.
Donc si vous avez des idées, je prends.
Merci

Re: [Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 19:46
par karhu
Je te confirme la solution pas "propre" mais efficace, modifier sudoers :

Code : Tout sélectionner

## Privilèges de confort
<utilisateur>   ALL=(ALL) NOPASSWD: /usr/bin/pacman
remplace /usr/bin/pacman par ta commande.
Non ne crie pas je suis le seul à utiliser cette machine. :wink:

Re: [Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 20:14
par benjarobin
@karhu Je ne vois pas le rapport !!!
@Ypnose le plus simple et le plus propre/sécurisé est de créé un programme C basique, puis tu modifies via chmod l'utilisateur et le groupe exécution (option 's')

Re: [Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 20:23
par Ypnose
Malheureusement, je n'ai pas assez de connaissance en C pour faire ça. Donc la marge de manœuvre est assez courte.

Re: [Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 20:32
par benjarobin
Tu ne me laisse même pas le temps de l'écrire :D

Code : Tout sélectionner

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>

#define FILE_TO_W "/sys/class/leds/dockstar:green:health/trigger"

int main(void)
{
        const char content[] = "none\n";
        int r = 0;

        int fd = open(FILE_TO_W, O_WRONLY);
        if(fd >= 0)
        {
                if(write(fd, content, sizeof(content)) <= 0)
                {
                        perror("Fail to write to: " FILE_TO_W);
                        r = 2;
                }
                close(fd);
        }
        else
        {
                perror("Fail to open: " FILE_TO_W);
                r = 1;
        }
        return r;
}

Code : Tout sélectionner

gcc -Wall -Wextra mon_fichier.c -o mon_exec
#En root
chown root:root mon_exec
chmod u+s mon_exec
chmod g+s mon_exec

Re: [Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 20:37
par Ypnose
Ah bas dis-donc, tu es balèze. J'essaierai de rajouter d'autres commandes qui me sont nécessaires.

Re: [Bash]Commande administrateur ~/.profile sans password

Publié : mar. 22 mai 2012, 20:54
par benjarobin
C'est un peu exagérer non ? :-)
Ce programme est vraiment basique, mais en effet si on n'a jamais fais de C cela ne s'invente pas :copain:
:resolu: