Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Probleme mit sudo

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
wbast
Newbie
Newbie
Beiträge: 17
Registriert: 13. Jul 2004, 12:53
Wohnort: Saarbrücken

Probleme mit sudo

Beitrag von wbast »

Halloleallemitanand,

Ich möchte als ganz normaler User(Entwickler) ne DB (postgres)
entwickeln. Dazu habe ich mir gedacht, die DB rauf - und runterfahren
will ich auch als derselbe User. Bisher hab ich das als :

Code: Alles auswählen

su -
rcpostgresql start
exit
also root gemacht.
Nun hab ich mir gedacht, machs via sudo.
Falsch gedacht!
rcpostgresql ist ein bashskript das intern einige verbotene Dinge tut
wie touch, chmod und andere Lustigkeiten, außerdem wechselt es intern noch zu einem anderen User(postgres) und schmeißt deshalb mit folgenden Nettigkeiten nur so um sich :

Code: Alles auswählen


wbast@jufofun:~> rcpostgresql start
touch: kann „/var/log/postgresql“ nicht berühren: Keine Berechtigung
chmod: Beim Setzen der Zugriffsrechte für „/var/log/postgresql“: Die Operation ist nicht erlaubt
Initializing the PostgreSQL database at location /var/lib/pgsql/datainstall: kann Besitzer und/oder Gruppe von „/var/lib/pgsql/data“ 
nicht ändern.: Die Operation ist nicht erlaubt
install: kann Zugriffsrechte von „/var/lib/pgsql/data“ nicht ändern: Die Operation ist nicht erlaubt
                                                                                                                          failed
You can find a log of the initialisation in ~postgres/initlog.
Tja und jetzt frage ich mich wie ich das umgehen kann, bzw wie ich damit umgehen kann

Achja System ist SuSE 9.1

Gruß Werner
Gast

Beitrag von Gast »

einfach nen user erstellen der volle (oder fast volle oder nur die nötigen) rechte auf die geforderten dateien hat, dann mit diesem user per sudo -u USER -s einloggen und das entsprechende machen

touch ist übrigens durchaus legitim, denn wenn ein daemon nur laufen kann wenn eine bestimmte datei existiert dann sollte sie keinesfalls während des betriebs gelöscht werden, und genau das wird ducrh touch verhindert --> unlöschbar solange touch den finger drauf hat :-)

chmod kann auch recht legitim sein, denn eine bestimmte datei soll nicht zugänglich sein solange sie nicht aktiv ist, das ist ein sicherheitsaspekt, so kann niemand was daran basteln (ausser root) wenn es nicht läuft
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

dann richte doch für Deinen User die Rechnte entsprechend in der sudoers ein, dann kannst Du einfach als User ein

Code: Alles auswählen

sudo rcpostgres start
machen

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Mit solchen Konstrukten habe ich schon des öfteren Probleme gehabt, da per default z.B. /sbin nicht im PATH drin ist. Das 'sudo rcirgendwas start' kann dann fehlschlagen, wenn Befehle aus /sbin ohne Pfadangabe in rcirgendwas benutzt werden.

Ich hab's mir angewöhnt, solche Dinge immer per 'sudo su -' und dann 'rcirgendwas...' zu erledigen.
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
wbast
Newbie
Newbie
Beiträge: 17
Registriert: 13. Jul 2004, 12:53
Wohnort: Saarbrücken

Beitrag von wbast »

Tja, da war ich wieder mal blind.

Merke: wenn du sudo benutzen willst, solltest du sudo auch benutzen.
Ich hatte versucht mir das ganz einfach zu machen und nur /sbin/rcpostgresql in mein persönliches bin-Verzeichnis ( ~/bin) gelinkt, dann /etc/sudoers angepasst und geglaubt damit fertig zu sein. Tja da hatte ich wohl das sudo beim Programmaufruf vergessen. Jetzt läuft alles.

Ich hab mir jetzt ein Skript geschrieben und kann Postgres
via pg_start,pg_status,pg_stop,pg_restart hoch und runterfahren wie ich will
Das Skript sieht so aus:

Code: Alles auswählen

#!/bin/bash

rc_arg=`echo $0| sed 's/.*pg_//'`

# Argumente ueberpruefen:
for i in start stop restart status
do
        [ "$rc_arg" = "$i" ] && is_ok=1
done

[ "$is_ok" -eq 1 ] && sudo rcpostgresql $rc_arg
und ist pg_restart,pg_start,pg_status oder pg_stop
je nachdem wie man es aufruft

Gruß Werner
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

mir kommt diese Lösung mit der FOR-Schleife etwas unschön vor :) (ist latürnich Geschmackssache) daher mal ein Alternativvorschlag:

Code: Alles auswählen

#!/bin/bash

rc_arg=`echo $0| sed 's/.*pg_//'`


# Argumente ueberpruefen:
case "$rc_arg" in
  "start" | "stop" | "restart" | "status"  )    
  		sudo rcpostgresql $rc_arg;;
  * ) echo "is nix gut";;
esac

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Gast

Beitrag von Gast »

TeXpert hat geschrieben: rc_arg=`echo $0| sed 's/.*pg_//'`
ähm, müsste da nicht noch ein abschliessendes /g sein?? also wenn ich versuche ohne /g zu SEDden geht das nüsch.....oder seh ich jetzt was falsch??
taki
Advanced Hacker
Advanced Hacker
Beiträge: 974
Registriert: 30. Apr 2004, 17:40
Wohnort: Berlin

Beitrag von taki »

tha_specializt hat geschrieben:
TeXpert hat geschrieben: rc_arg=`echo $0| sed 's/.*pg_//'`
ähm, müsste da nicht noch ein abschliessendes /g sein?? also wenn ich versuche ohne /g zu SEDden geht das nüsch.....oder seh ich jetzt was falsch??

Mit dem 'g' am Ende wird jedes Vorkommen des Suchbegriffs ersetzt. Ohne nur das erste Vorkommen.
Gruß,
Taki
SuSE 12.3 kernel 3.7.10-1.16-desktop, K Desktop Environment Version 4.10.5 r1 - Medion Titanium Aldi v. 03/2009
Gast

Beitrag von Gast »

achsooooo, na dann.... :-)
--> ich musste bisher immer nur ALLE vorkommen ersetzen, deswegen weiss ich dat nüsch :lol:
taki
Advanced Hacker
Advanced Hacker
Beiträge: 974
Registriert: 30. Apr 2004, 17:40
Wohnort: Berlin

Beitrag von taki »

Macht ja nix, ich weis selbst vieles nicht, hatte nur grade meinO'Reillys "Reguläre Ausdrücke" in Griffweite 8)
Ciao,
Taki
SuSE 12.3 kernel 3.7.10-1.16-desktop, K Desktop Environment Version 4.10.5 r1 - Medion Titanium Aldi v. 03/2009
Antworten