Bekijk de volledige versie : Zugriffsrechte
Hallo
ich habe den IRC bouncer miau auf meinem Router installiert und will den nun unter einem anderen user als root laufen lassen.
dazu habe ich in die /etc/passwd folgende Zeile hinzugefügt:
miau:pw:1001:1001:Inet:/usr/local/miau:/bin/sh
sowie das in die /etc/group gepackt:
Inet:x:1001:miau
wenn ich nun den miau aufruf im Startscript mit
su - miau -c "/opt/bin/miau -d /opt/var/spool/miau"
ersetze bekomme ich die Fehlermeldung "Can't write to "/opt/var/spool/miau/"!" beim ausführen
die Zugriffsrechte sind wie folgt gesetzt:
ls -l /opt/var/spool/miau
total 36
drwxrwx--- 3 miau Inet 4096 May 30 00:13 .
drwxr-xr-x 5 benjamin root 4096 Feb 28 12:45 ..
-rwxrwx--- 1 miau Inet 173 May 28 23:02 inbox
drwxrwx--- 2 miau Inet 4096 Feb 28 10:43 logs
-rwxrwx--- 1 miau Inet 18041 May 30 00:12 miau.conf
-rwxrwx--- 1 miau Inet 0 May 30 00:13 miaurc
was läuft da schief?
mfg Benj
newbiefan
30-05-2010, 22:18
was läuft da schief?
mfg Benj
Hast du hier mal nachgesehen?
http://www.synology-forum.de/showthread.html?t=7551
Vielleicht hilft es....
Versuche mal ein
su miau
cd /opt/var/spool/miau/
touch /opt/var/spool/miau/testdatei
Dann hast Du recht schnell raus woran es liegt.
Eventuell kommst Du erst gar nicht in /opt/var/spool
wengi
@newbiefan
Miau läuft, solange ich es als root starte ohne probleme.
@wengi
das funktioniert alles :(
newbiefan
31-05-2010, 20:31
@newbiefan
Miau läuft, solange ich es als root starte ohne probleme
Naja, dann fehlt ja nur das chown auf den neuen Eigentümer/Gruppe von /opt/bin/miau, das hat zwar Ausführungsrechte, aber keine Schreibrechte!
ls -l /opt/bin/miau zeigt dir wo der Fehler liegt.
Und genau den Fehler bekommst du ja (Can't write....)
Schreibrechte hat nur der Eigentümer und das war der Admin.
Berichte bitte ob es stabil läuft!
LG
Newbiefan
Nachtrag: hätte ich fast vergessen: natürlich vor dem chown den File /opt/bin/miau (min) auf 770 setzen, sonst wird die Gruppe Inet nicht akzeptiert.
Kannst natürlich den Anderen dennoch eine 5 verpassen, also 775 (steht bei Installation auf 755) - aber so wie du willst.......
Ich habe die Rechte/besitz auf root zurückgesetzt und dann so neu vergeben:
chmod 770 /opt/bin/miau
chown miau:Inet /opt/bin/miau
chmod -R 770 /opt/var/spool/miau
chown -R miau:Inet /opt/var/spool/miau
ls -l /opt/bin/miau ergibt
-rwxrwx--- 1 miau Inet 117080 Jan 25 2008 /opt/bin/miau
ls -l /opt/var/spool/miau ergibt
drwxrwx--- 3 miau Inet 4096 Jun 1 07:57 .
drwxr-xr-x 5 benjamin root 4096 Feb 28 12:45 ..
-rwxrwx--- 1 miau Inet 0 Jun 1 07:57 inbox
drwxrwx--- 2 miau Inet 4096 Jun 1 07:57 logs
trotzdem kriege ich immer denselben Fehler: "Can't write to "/opt/var/spool/miau/"!"
Nur ein Versuch. Ich bin nicht sicher, ob es hilft:
cd /opt/var/spool/miau
chown miau:Inet ..
chmod 775 ..
wengi
Warum denn nicht gleich
chmod 777 /opt/* -R
? Wäre das ein Sicherheitsrisiko?
Alles world-writeable?
Das ist wohl eine Philosophie-Frage.
Ich würde es nur zum Testen machen.
wengi
@ wengi
hat leider nicht geholfen.
@bauerj
ja das ist ein sicherheitsrisiko.
Nachtrag: Jetzt bin ich aber richtig verwirrt... sobald ich miau mit dem -f switch im vordergrund starte läuft es und schreibt in die logs. (über den scriptaufruf mit "su miau -c -f..." oder wenn ich über su miau den user wechsle und direkt mit "miau -f" aufrufe...
Ich habe jetzt mal den ganzen Inhalt von /opt/var/spool/miau gelöscht. Sobald ich jetzt miau ohne -f starte, bekomme ich zwar den üblichen "can't write to directory ..." Fehler, aber es werden im Verzeichnis alle benötigten Ordner und dateien angelegt...
Ausgabe von miau wenn ich "su miau -c "miau -f -d /opt/var/spool/miau"" benutze
Jun 01 17:58:58 + Configuration read.
Jun 01 17:58:58 + Listening on port 6667.
Jun 01 17:58:59 + Trying server 'irc.**.**' on port 6667...
Jun 01 17:58:59 + TCP-connection to 'irc.**.**' established!
Jun 01 17:59:10 + Connected to '**.**'.
Jun 01 17:59:10 + Received a CTCP VERSION from **@**.**.
Jun 01 17:59:11 + Autojoining channels (#**).
Jun 01 17:59:40 + Client from '192.168.*.**'.
Jun 01 17:59:40 + Authorization successful!
Jun 01 17:59:40 + 1 client(s) connected.
Und wenn ich nur "su miau -c "miau -d /opt/var/spool/miau"" nutze:
Jun 01 18:05:29 + Configuration read.
Jun 01 18:05:29 + Listening on port 6667.
Jun 01 18:05:29 - Can't write to "/opt/var/spool/miau/"!
Hmm, und wieso:confused: Ich starte alle Programme als admin;) Andere User dürfen nicht über ssh (sowieso nur LAN) angemeldet werden und mein Passwort ist sicher... Sicher, wenn man Webseiten am Laufen hat, kann ich es verstehen aber auf einem Router? Naja, ihr seid da wohl eher die Experten:D
btw: Warum nimmst du nicht http://quassel-irc.org/ ? Das mit der grafischen Oberfläche ist schon sehr angenehm...
newbiefan
01-06-2010, 19:47
Einen nicht unerheblichen Fehler hätte ich da noch als Hinweis:
Das Homedirectory von miau zeigt ja in der passwd auf /usr/local/miau.
Nun ist es aber lt. Optware-Wiki so, dass die miau Konfig im Heimatverzeichnis des jeweiligen Users liegen soll. Das ist aber nicht der Fall.
Siehe: (Outstanding questions Pkt. 3.)
http://www.nslu2-linux.org/wiki/HowTo/ConfigureMiauForIRCLogging
Die eigentliche conf liegt auf /opt/etc/miau.conf, bei dir liegt diese (soweit ersichtlich) in /opt/var/spool miau. Woher soll miau wissen, welche config genommen werden soll? Im Verzeichnis /usr/local/miau liegt ja sicher keine......
Als Versuch schlage ich deshalb vor, entweder das Heimatverzeichnis vom user miau, oder zumindest die Rechte/Besitzer der originalen Conf in /opt/etc/miau.conf zu ändern
Hoffe es hilft...
Newbiefan
Ich habe jetzt mal folgendes versucht:
1) home-dir von miau auf "/opt/var/spool/miau" gesetzt
2) ein chown auf die miau.conf in /opt/etc/ (die in /opt/var/spool/miau gehört ebenso miau)
3) su miau; miau // ergibt wieder can't write to "/opt/var/spool/miau/miau" wobei das verzeichnis aber erstellt wird...
eine weitere Beobachtung:
nach einem "su miau" kann ich kein "ls" ausführen -> "permission denied", "ls ~" hingegen geht. (ebenso "ls miau" geht nicht wohl aber "ls ~/miau" was doch eigenlich dasselbe sein sollte?? )
"ls -l /opt/var/spool/" ergibt:
total 20
drwxrwx--- 5 miau inet 4096 Feb 28 12:45 .
drwxr-xr-x 7 benjamin root 4096 May 21 05:15 ..
drwxrwx--- 2 benjamin root 4096 Jan 25 2008 clientmqueue
drwxrwx--- 4 miau inet 4096 Jun 1 22:03 miau
drwxr-xr-x 2 benjamin root 4096 Feb 28 12:55 mqueue
"ls -l /opt/var/spool/miau"
total 36
drwxrwx--- 4 miau inet 4096 Jun 1 22:03 .
drwxrwx--- 5 miau inet 4096 Feb 28 12:45 ..
drwx------ 2 miau inet 4096 Jun 1 21:56 .mc
drwxrwx--- 3 miau inet 4096 Jun 1 22:03 miau
-rw-r--r-- 1 miau inet 18041 Mar 6 22:34 miau.conf
was soviel bedeutet wie ein "ls" als miau sollte erfolgreich sein da es "ls ." entspricht (Der Fehler lautet "cannot open directory .: Permission denied")
ps:bauerj
Ich will einen IRC-Bouncer, keinen client ;)
Das hab ich schon gelesen;) Aber imho ist ein Bouncer doch ein Programm, das auf dem Server läuft und alle offenen Chats speichert, sodass man später sieht was geschrieben wurde als man nicht da war. Oder nicht?
Quassel macht das jedenfalls auch, es speichert alles auf dem Server (quassel-core), auch wenn der client nicht an ist...:D
newbiefan
02-06-2010, 21:09
@bef
kannst du einmal ein top bei laufenden miau aufrufen und einen screenshot erstellen?
Wenn miau unter dem user miau läuft, muss auch der Zugriff auf das home-dir gegeben sein.
Hast du auch die S52miau beachtet?
LG
newbiefan
So geht es nicht:
cat /opt/etc/init.d/S52miau
#!/bin/sh
if [ -n "`pidof miau`" ]; then
/bin/killall miau 2>/dev/null
fi
#if [ ! -d /opt/var/spool/miau ] ; then
# mkdir -p /opt/var/spool/miau
#fi
su miau -c "/opt/bin/miau -d /opt/var/spool/miau/miau"
das führt zu:
/opt/etc/init.d/S52miau
miau v0.6.4 "What protocol?"
http://miau.sf.net/
Copyright (C) 2002-2006 Tommi Saviranta <wnd@iki.fi>
(C) 2002 Lee Hardy <lee@leeh.co.uk>
(C) 1998-2002 Sebastian Kienzl <zap@riot.org>
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO warranty.
Read 'COPYING' for copyright and licence details.
Jun 03 08:17:11 + Configuration read.
Jun 03 08:17:11 + Listening on host localhost/port 6667.
Jun 03 08:17:11 - Cannot write to logfile "/var/log/miau.log"!
Wenn ich im miau aufruf "-f" setze läuft es zwar, aber im vordergrund --> screenshot kommt von 2. SSH-Session (was unerwünscht für ist für autostart...):
cat /opt/etc/init.d/S52miau
#!/bin/sh
if [ -n "`pidof miau`" ]; then
/bin/killall miau 2>/dev/null
fi
#if [ ! -d /opt/var/spool/miau ] ; then
# mkdir -p /opt/var/spool/miau
#fi
su miau -c "/opt/bin/miau -f -d /opt/var/spool/miau/miau"
newbiefan
03-06-2010, 09:47
Na zumindest kommen wir ja etwas weiter...den Foreground-Schalter -f kannst wieder entfernen.
Wie man deinem Htop Screenshot entnehmen kann wird die S52miau nicht mehr beendet, nimm einmal den -f Schalter heraus und füge ein:
su - miau -c "/opt/bin/miau -d /opt/var/spool/miau" &
Das lässt miau mit den gleichen Einstellungen im Hintergrund laufen und die S52miau kann auch ordentlich beendet werden.
LG
newbiefan
Nachtrag: Starte den miau mit su, aber setze ein nohup vor der Befehlzeile und danach noch ein & - das startet miau in einer neuen Shell und arbeitet im Hintergrund.
So sollte es gehen......
sobald ich "-f" entferne und "&" anhänge, kommt der altbekannte Fehler wieder -.-
/opt/etc/init.d/S52miau
miau v0.6.4 "What protocol?"
http://miau.sf.net/
Copyright (C) 2002-2006 Tommi Saviranta <wnd@iki.fi>
(C) 2002 Lee Hardy <lee@leeh.co.uk>
(C) 1998-2002 Sebastian Kienzl <zap@riot.org>
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO warranty.
Read 'COPYING' for copyright and licence details.
Jun 03 12:58:21 + Configuration read.
Jun 03 12:58:21 + Listening on host localhost/port 6667.
Jun 03 12:58:21 - Can't write to "/opt/var/spool/miau/miau/"!
newbiefan
03-06-2010, 12:16
sobald ich "-f" entferne und "&" anhänge, kommt der altbekannte Fehler wieder -.-
jetzt nur noch nohup....
Die Zeile im S52miau script sieht nun so aus:
nohup su miau -c "miau -d /opt/var/spool/miau/miau" &
output:
appending output to `nohup.out'
Top zeigt danach aber keinen laufenden Process für miau an, aka es läuft nicht :(
newbiefan
03-06-2010, 16:27
Die Zeile im S52miau script sieht nun so aus:
nohup su miau -c "miau -d /opt/var/spool/miau/miau" &
output:
appending output to `nohup.out'
Top zeigt danach aber keinen laufenden Process für miau an, aka es läuft nicht :(
Probiers einmal so: (Auszug aus dem nslu-wiki)
Awnser to question 3
Other users can also start miau if they desire by starting it from the shell.
The settings should be in .miau/miaurc in the home directory of the user.
Note that whereas the root miau from above restarts when the system reboots, whereas user started versions will not restart. If you want to start a session as a regular user and want to keep it running if you logout either start miau in the background (e.g. with:
nohup miau &
) or run it under screen.
Also zuerst einmal auf user miau wechseln, dann miau aufrufen, shell verlassen.
Bin gespannt....aber warum willst du unbedingt einen anderen User?
Nachtrag: lege auch die nohup.out an! Siehe: http://de.linwiki.org/wiki/Linuxfibel_-_Nutzerkommandos_-_Prozesssteuerung
die nohup.out wird automatisch angelegt...
Momentan steht in der S52miau folgende Zeile:
nohup su miau -c "miau -f" &
das funktioniert jetzt, wenn ich "/opt/etc/init.d/S52miau" von Hand ausführe. Wenn ich allerdings einen reboot ausführe gehts wiederum nicht. (wenn alle init scripte ausgeführt werden.
su miau //erst user wechseln dann miau starten
nohup miau &
das führt zu: "failed to render standard input unusable: Permission denied"
zum Sinn und Zweck dieser Übung: ich will eigentlich ein paar dienste die direkt aus dem Internet erreichbar sein sollen von meinem root-user abkoppeln (wegen paranoia ;) )
newbiefan
04-06-2010, 10:12
zum Sinn und Zweck dieser Übung: ich will eigentlich ein paar dienste die direkt aus dem Internet erreichbar sein sollen von meinem root-user abkoppeln (wegen paranoia ;) )
Naja, dann geht es wenigstens soweit - bis auf Autostart.
Da musst du leider selber goggeln...ich habe nur verschiedene User für ftp und die liegen ausserhalb des Systems, also nicht in der üblichen passwd.
Im Zusammenhang mit meinem avbf-Script und der richtigen Konfiguration, habe ich noch jeden Angriff souverän überstanden, da beissen sich sogar die üblichen Script-Kiddies die Zähne aus. So gesehen ist es ein riesiger Vorteil, wenn der Asus als AP hinter der Fritzbox sitzt. Und für die wenigen, offenen Ports empfehle ich dir einmal das Modul ipt_recent genauer anzusehen - das geht sogar für jeden offenen Port.
Deine Paranoia ist aber trotzdem nicht ganz unbegründet - so ist es mit Sicherheit sinnvoll, die Logfiles im Auge zu behalten. Sobald irgend ein bekannter Port im unteren Bereich offen ist, kommen die Plagegeister - deshalb habe ich den gesamten asiatischen Raum komplett ausgesperrt.
Seither ist Ruhe im System...:cool:
Google hat mich bisher nicht allzuweit gebracht, aber es läuft und so häufig starte ich meinen Router auch nicht neu :P
Ich habe die Vermutung, dass das Problem ein Bug in der Firmware sein könnte, weils nur dann Probleme gibt wenn man nicht selber an der console sitzt. So wie mit dem SVN-Sever und ssh-tunnel, wo ähnliche Probleme auftauchen...
Zu guter Letzt noch ein herzliches Dankeschön für die Hilfe :)