Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Shell: Probleme mit getcwd?

Shell: Probleme mit getcwd?

Agrajag15.06.0517:58
Ich arbeite seit kurzem mit einem normalen User-Account, hab also keine Admin-Rechte mehr. Für administrative Aufgaben hab ich bei der Installation einen Admin-User angelegt (der erste User).
<br>
<br>Wenn ich mir direkt als Admin anmelde kann ich mich ganz normal im Terminal bewegen.
<br>
<br>Melde ich mich aber als normaler User an und ich wechsel im Terminal via "su admin" in den Admin-Account, dann bekomme ich sofort diese Meldung:
<br>
<br>
<br>---
<br>shell-init: could not get current directory: getcwd: cannot access parent directories: Permission denied
<br>---
<br>
<br>
<br>Versuche ich dann z.B. mit "cd" in ein anderes Verzeichnis wechseln möchte, dann macht er das auch, aber ich bekomme diese Meldung:
<br>
<br>
<br>---
<br>chdir: could not get current directory: getcwd: cannot access parent directories: Permission denied
<br>---
<br>
<br>
<br>Warum macht "getcwd" Probleme, wenn ich mich über mein Account in den Admin-Account einlogge. Und warum ist alles in Ordnung, wenn ich mich direkt als Admin einlogge?
<br>
0

Kommentare

rofl
rofl15.06.0518:05
su ist doch glaube ich nicht mehr gut, probier mal mit sudo...
0
thomast15.06.0519:12
Hi,
<br>irgend wie verstehe ich nicht so recht was Du machen willst!
<br>
<br>Unter Macos X ist es doch so, dass ein Administrator die Rechte hat mittels su oder sudo Administrationsaufgaben zu übernehmen. Ein User ohne Adminrechte darf das nicht.
<br>
<br>Welchen Sinn sollte es sonst haben ein Adminitrator zu sein?
<br>
<br>Unter Windows ist das anders! Da darf man als Administrator immmer alles (ohne sich noch mal zu anzumelden).
<br>
<br>Es gibt allerdings doch noch eine Möglichkeit, um als nicht Administrator Administratorrechte zu bekommen. Du mußt Dich im Terminal neu anmelden. das sollte mit "ssh admin@localhost" oder einem "telnet localhost" gehen.
<br>Allerdings mußt Du dazu ssh bzw telnet Dienst aktivieren
<br>
<br>Gruß
<br>
<br>Thomas
0
Agrajag16.06.0505:39
Mir geht es darum, daß ich normalerweise nur mit einem minderprevilligierten Account arbeiten möchte. Gelegendlich kommt es aber vor, daß ich etwas machen möchte, was Admin-Rechte erfordert. Für diese kleinigkeiten hab ich aber keine Lust mich über den grafischen Login in den Admin-Account einzuloggen (das dauert dann ja fast länger als das, was ich eigendlich machen möchte).
<br>
<br>Mit su kann ich mich im Terminal in meinen Admin Account einloggen, wo ich dann auch sudo-berechtigt bin. Also normaler User stehe ich ja nicht in der sudoers list.
<br>
<br>Das ist aber auch nicht das Problem. Das Problem ist, daß ich oben genanntes Verhalten bekomme und ich nicht verstehe, warum dieses unterschiedliche Verhalten passiert. Ich möchte, daß diese Meldungen nicht mehr erscheinen.
<br>
<br>Das ist das erste mal, daß ich mit einem Nicht-Admin-Account arbeite. Wenn man ein Admin-Account benutzt, dann taucht dieses problem nicht auf.
<br>
<br>Die Frage ist doch jetzt für mich: ist das ein Bug, an dem ich nichts machen kann oder ist da etwas durcheinander, was ich u.U. beheben kann. So wie es jetzt ist, ist das fast nicht brauchbar. Teilweise kommen diese Meldungen auch, wenn ich die Pfadvervollständigung nutzen will.
<br>
<br>MacMark... wo bist duuuuuuuu...
0
thomast16.06.0510:27
Hi,
<br>ich hätte doch Deinen Beitrag etwas besser lesen sollen.
<br>
<br>So wie Du es beschreibst, sollte es eigentlich funktionieren. Versuche doch mal, ob Du ein anderes Ergebnis bekommst, wenn Du mit "su - admin" den Benutzer wechselst.
<br>
<br>
0
MacMark
MacMark16.06.0511:49
Du befindest Dich im Verzeichnis des JoeLoser. Du machst "su JoeAdmin". Nun bist Du "JoeAdmin", befindest Dich jedoch im Verzeichnis von JoeLoser. JoeAdmin hat kein Recht getCurrentWorkingDirectory()==Verzeichnis von JoeLoser aufzurufen.
<br>Wenn Du Dich als JoeAdmin einloggst, dann ist getCurrentWorkingDirectory()==Verzeichnis von JoeAdmin, was er aufrufen darf.
<br>
<br>Wenn Du die Fehlermeldung vermeiden willst, wechsele in ein Verzeichnis, was JoeLoser und JoeAdmin sehen dürfen, bevor Du von JoeLoser auf JoeAdmin wechselst.
<br>
<br>Grüße von
<br>JoeMacMark
„@macmark_de“
0
MacMark
MacMark16.06.0511:54
Nachtrag: Dein Prompt ruft getCurrentWorkingDirectory() auf, um das Ergebnis im Prompt anzuzeigen, also den aktuellen Pfad vor der Eingabeblinkdingsbums.
„@macmark_de“
0
Agrajag16.06.0513:59
Ah, OK. Das macht Sinn. Dadurch, daß ich bisher immer mit einem Admin-Account gearbeitet hatte (und mich auch mit sudo in meinem Home-Ordner frei bewegen konnte), war meine Vorstellung die, daß ich das mit dem Admin-User auch im normalen User-Account machen könnte.
<br>
<br>Dem scheint ja nicht so sein. Wenn ich es so haben wollte, dann müsste ich meine beiden Accounts in eine gleiche Gruppe stecken und meinen Home-Ordner (und dem Inhalt) diese Gruppen-ID geben, oder? Nicht das ich dringend bräuchte. Es hat mich nur gewundert. Es geht mir eher um das Verstehen, was so in der Shell abgeht.
<br>
0
MacMark
MacMark16.06.0514:31
Mit sudo bist Du root. Root darf überall hin, also auch in das Verzeichnis von JoeLoser. JoeAdmin darf das nicht, daher die Fehlermeldung.
<br>
<br>Wenn Du also erst su JoeAdmin machst, dann bekommst Du die Fehlermeldung. Nach anschließendem sudo also JoeAdmin solltest Du keine weiteren Fehlermeldungen mehr bekommen.
<br>
<br>Ich würde die Userstruktur von OS X nicht verändern. Dir geht es doch bei der ganzen Aktion um Sicherheit. Userverzeichnisse gehören nur dem User. Ansonsten geht die Privatsphäre flöten.
„@macmark_de“
0
Agrajag16.06.0514:43
Hmmm, das dachte ich ja auch, nur irgendwie klappt das nicht so recht. Wenn ich die Shell starte, stehe ich in meinem Homeordner. Dann mache ich "su admin" und stehe immer noch in meinem Homeordner. Ich darf aber keine Verzeichnisse ansehen und bekomme diese Meldung. Wenn ich nun "sudo ls" sage, dann zeigt er mir mein Home-Verzeichnis an.
<br>
<br>Was nicht funktioniert ist "sudo cd Desktop". Ich bekomme nun zwar keine Fehlermeldung, aber er wechselt nicht in Desktop rein. Die Pfadvervollständigung macht er auch nicht.
<br>
<br>Witziger Weise kann zeigt er mir mit "sudo ls Desktop" den Inhalt von Desktop an. Die Pfadvervollständigung funktioniert hier aber auch nicht.
<br>
<br>Wie passt das zusammen?
0
MacMark
MacMark16.06.0515:47
Bevor Du su admin machst, gehe aus dem Homeordner raus in / oder so.
„@macmark_de“
0
ssb
ssb16.06.0516:09
"su admin" macht dich zum admin, nicht zu root.
<br>"su root" (oder nur "su") geht aber auch nur, wenn root aktiviert wurde.
<br>
<br>Also: "cd /", dann "su admin",
<br>dann kannst du als admin mit "sudo" den task mit "root"-Rechten ausführen.
<br>
<br>Dein normaler User wird "sudo" nicht benutzen können, da er nicht zu den "sudoers" gehört. admin gehört aber zu den "sudoers".
<br>
<br>Ist halt ein wenig umständlich, aber Sicherheit ist nun mal unbequem.
0
Agrajag16.06.0516:59
Das ich als normaler User nicht sudoen kann ist mir klar. Ich hätte nur gedacht, daß ich, wenn ich mit "su admin" in den Admin-Account wechsel, auch Zugriff auf meinen normalen User-Account hätte. Das klappt nicht (auch wenn ich vorher mit "cd /" ins Root-Verzeichnis wechsel). Per sudo kann mein Admin auch nicht auf meinen User-Account zugreifen.
<br>
<br>Das heißt also, ich müsste in den root-User wechseln, wenn ich Aktionen mit Admin-Rechten in meinem User-Account durchführen möchte. Also lieber so (root freischalten) an statt Admin und meinen User in eine Gruppe packen und die User-Daten auf diese Gruppe setzen?
<br>
0
Agrajag16.06.0517:09
Mir ist auch gerade aufgefallen: Es gibt in dem Informationsfenster vom Finder bei Laufwerken die Option "Eigentümer auf diesem Volume ignorieren". Ich bin der Meinung, daß es diese Option bei allen zusätzlichen Partitionen/Laufwerken gab.
<br>
<br>Jetzt stelle ich gerade fest, daß es diese Option nur auf den beiden Partitionen (Apps und Users) auf der Bootplatte (SCSI) gibt. Die beiden ATA-Platten haben diese Option nicht. Bei allen Partitionen ist "System" (soll ja wohl root heißen, oder?) Besitzer.
0
MacMark
MacMark16.06.0517:12
Root freizuschalten halte ich für deutlich riskanter als als Admin zu arbeiten. Mac OS X hat doch extra die sudo Funktion, um den Sicherheitsaspekt zu decken. Ich halte das Arbeiten unter Admin auf OS X für okay. Allerdings sollte man nicht jeden anderen auch zum Admin machen.
„@macmark_de“
0
thomast16.06.0517:18
Du kannst mit "su - admin" den User in admin ändern. Dann bist Du im Homeverzeichnis des Users admin (unbhängig davon wo Du vorher warst) und hast auch Umgebung des Users admin zur Verfügung (wenn Du nur "su admin" hast Du weiterhin die Umgebung des alten Users).
<br>
<br>Dann bist Du admin und darfst alles was admin darf.
<br>
<br>Um jetzt root-Rechte zu bekommen gibst Du einfach den Befehl "sudo bash" ein und Du hast eine Shell als root.
<br>
<br>Mit einem "exit" bist Du dann wieder admin und nach einem weiteren "exit" bist Du wieder der normale user
0
Agrajag16.06.0517:24
Also kann ich mit einem Admin nicht auf mein normales User-Verzeichnis zugreifen. Ich hatte z.B. mal den Fall, daß irgendwas in der Library andere Rechte hatte (ich weiß nicht mehr genau was es war, aber ich wollte sie ins Backup kopieren. Ich glaube es war eine plist). Dadurch, daß ich ein Admin-User war, konnte ich es leicht korrigieren.
<br>
<br>Jetzt könnte ich aber nichts dagegen machen. Als normaler User habe ich ja nicht die Möglichkeit solche Dateien auf mich umzubiegen. So wie es sich für mich gerade darstellt kann ich das mit dem Admin-Account auch nicht erledigen, da der Admin ja gar kein Zutritt in mein Verzeichnis hat -- dann bliebe ja nur noch root.
<br>
<br>Oder verstehe ich hier irgendwas nicht richtig? (ich dachte bisher eigendlich, daß ich das einigermaßen richtig verstanden hatte -- naja, Theorie != Praxis).
<br>
<br>Auf jeden Fall erstmal ein Danke für die Geduld
0
Agrajag16.06.0517:30
Es sollte heissen "Also kann ich mit einem Admin nicht auf mein normales User-Verzeichnis zugreifen, auch wenn ich es mit sudo machen will."
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.