[debian] Lancement d'un service Postgres par un user normal

Lancement d'un service Postgres par un user normal [debian] - Installation - Linux et OS Alternatifs

Marsh Posté le 15-07-2009 à 18:38:47    

Bonjour
 
Exposé de mon problème :
 
J'ai une debian, une partition cryptée et je veux faire tourner un serveur postgres dont les données sont stockées sur cette partition.
 
Ca marche, mais pas comme je veux.
 
Le prob c'est que : comme je monte la partiton cryptée après le log de mon user, on ne peut pas lancer postrgres au démarrage.
 
J'utilise cryptsetup et je me suis fait un script pour que mon user (peyo) puisse monter et demonter la partition cryptée. ça c'est bon avec un peu de sudoers.
 
Ce que je voudrais c'est que le user 'peyo' puisse démarrer le server postgres et la j'y arrive pas.
 
Il n'y a que le user postgres qui puisse le faire. Là ça me dépasse un peu. J'ai ajouté peyo au groupe postgres, nada.
 
En gros comment je pourrais faire pour que 'peyo' ait tous les droits de 'postgres' ?
 
voici la ligne que je voudrais executer en tant que peyo :
 
/usr/lib/postgresql/8.3/bin/pg_ctl -D /mnt/datas/postgresql start
 
pg_ctl démarre le service. /mnt/datas/postgresql est le rep sur ma partoche cryptée dont tous les droits sont au user postgres
 
Le script qui à terme me permettra de monter la partoche cptée et de lancer le service postgres :
 

Code :
  1. #!/bin/bash
  2. case $1 in
  3. on)
  4. echo Montage de la partition cryptée
  5. sudo cryptsetup create datas /dev/hda3
  6. sudo mount -t ext3 /dev/mapper/datas /mnt/datas/
  7. echo Partition montée
  8. # /usr/lib/postgresql/8.3/bin/pg_ctl -D /mnt/datas/postgresql start
  9. ;;
  10. off)
  11. echo Démontage de la partiton cryptée
  12. sudo umount /mnt/datas/
  13. sudo cryptsetup remove datas
  14. echo Partiton démontée
  15. # /usr/lib/postgresql/8.3/bin/pg_ctl -D /mnt/datas/postgresql stop
  16. ;;
  17. esac


 
Mon fichier sudoers
 

Code :
  1. # /etc/sudoers
  2. #
  3. # This file MUST be edited with the 'visudo' command as root.
  4. #
  5. # See the man page for details on how to write a sudoers file.
  6. #
  7. Defaults env_reset
  8. # Host alias specification
  9. # User alias specification
  10. # Cmnd alias specification
  11. Cmnd_Alias CRYPTER = /sbin/cryptsetup
  12. Cmnd_Alias MNT = /bin/mount
  13. Cmnd_Alias UMNT = /bin/umount
  14. Cmnd_Alias PG = /usr/lib/postgresql/8.3/bin/pg_ctl
  15. # User privilege specification
  16. root ALL=(ALL) ALL
  17. peyo ALL=(ALL) NOPASSWD: CRYPTER
  18. peyo ALL=(ALL) NOPASSWD: MNT
  19. peyo ALL=(ALL) NOPASSWD: UMNT
  20. peyo ALL=(ALL) NOPASSWD: PG
  21. # Uncomment to allow members of group sudo to not need a password
  22. # (Note that later entries override this, so you might need to move
  23. # it further down)
  24. # %sudo ALL=NOPASSWD: ALL


Message édité par rengzehn le 15-07-2009 à 18:44:18
Reply

Marsh Posté le 15-07-2009 à 18:38:47   

Reply

Marsh Posté le 16-07-2009 à 09:51:46    

de mémoire un : (je suis pas sûr du -u)
su -u toto -c "maCommande" permet de lancer une commande en tant que toto, tu peux peut être regarder de ce côté là, voire faire un alias que tu lances avec un sudo ensuite (ou un sudo sur su)


Message édité par dams78 le 16-07-2009 à 09:52:06

---------------
dam's (debianer), ma galerie Flickr
Reply

Marsh Posté le 16-07-2009 à 09:58:33    

yep merci c'est par là que je passe en effet même si ça ne m'épargne pas de rentrer un mdp supplémentaire.
 
le sudo su, bof bof c'est pas très sécurit.
 
j'utilise cette syntaxe :
su postrges -c "macommande"

Reply

Marsh Posté le 16-07-2009 à 11:26:27    

si tu créer un alias :
alias toto = 'su postrges -c "macommande"'
et que tu lances toto avec un sudo, tu dois pouvoir te passer du mot de passe (via les options de sudo)


---------------
dam's (debianer), ma galerie Flickr
Reply

Marsh Posté le 16-07-2009 à 13:31:28    

y'a moyen ouais. j'ai utilisé le Runas_Alias de sudoers. ça fonctionne bien mais il reste un prob de taille c'est les droits des repertoires des datas de postgres. Ils sont tous au user 'postrges'. Et la ça bloque. bien qu'avec un user normal qui peut lancer les commandes spécifiques au user 'postgres', peyo n'a pas les droits sur les fichiers, faudrait refaire à la main tous les droits de ces rep et y'en a plein et de toute façon, si je modifie ces droits, le server postrges gueule qu'ils ont changé et ne charge pas. retour à la case départ.
Mais là ça me va, avec un script j'ai deux mdp à rentrer et ça me monte ma partoche cryptée avec les bdds du serveur postgres dessus. jvais pas me plaindre. debian roxx :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed