Cygwin / etc / passwd berücksichtigt / bin / bash nicht

831
WilliamKF

Wie kann ich Cygwin dazu bringen, die Datei / etc / passwd zu ehren und meine Standard-Shell-bash anstelle von sh zu erstellen?

Ich gehe davon aus, dass es irgendwie von Windows XP gesteuert wird, da ich zuvor ein Problem mit Berechtigungen hatte und die Datei / etc / passwd nach der Aktualisierung der Berechtigungen unter Windows XP für meine Benutzer-ID neu generieren musste.

0
Wie rufen Sie die Shell auf? Überprüfen Sie auch, ob die SHELL-Variable, die die Einstellung / etc / passwd überschreiben würde, nicht gesetzt ist. ak2 vor 13 Jahren 0
Das `SHELL = / bin / bash` wird von emacs über` meta-x shell` aufgerufen, das von einem x-Fenstersystem ausgeführt wird, das von `startx` gestartet wird WilliamKF vor 13 Jahren 0
Recht. Woher wissen Sie, dass Sie / bin / sh anstelle von / bin / bash ausführen? ak2 vor 13 Jahren 0
Weil die Eingabeaufforderung `sh-4.1 $ 'ist und wenn ich` bash` ausführe, erhalte ich eine neue Eingabeaufforderung von [xp-pro-sp3 ~] ??? ` WilliamKF vor 13 Jahren 0
Meinetwegen. Sind Sie sicher, dass Ihr `/ etc / passwd`-Eintrag korrekt ist? Sie können `mkpasswd -c` verwenden, um einen entsprechenden Eintrag für den aktuellen Benutzer zu drucken. Eine andere Sache, die Sie versuchen sollten, ist, eines der Cygwin-Terminals wie "mintty" oder "rxvt" aufzurufen, die Ihre Standard-Shell aufrufen, sofern nicht anders angegeben. Wenn Sie dort Bash bekommen, wird dies zu einem Emacs-Problem. ak2 vor 13 Jahren 0
Ich regenerierte mit `mkpasswd -c`, was zu einem etwas anderen Eintrag führte, jedoch zu gleichen Ergebnissen wie sh anstelle von bash. Ich habe auch bestätigt, dass "Mintty" auch in sh statt Bash erscheint. WilliamKF vor 13 Jahren 0
Nun, ich bin verblüfft. Wahrscheinlich am besten, um dies der Cygwin-Mailingliste mit den Cygcheck-Details zu melden, die unter http://cygwin.com/problems.html angefordert werden. Kleine Unterschiede im SID-Feld (S-1-5-21 -...) können entscheidend sein, aber ich nehme an, Sie haben den fraglichen Eintrag jetzt ersetzt. Können Sie als Benutzer "/ etc / passwd" tatsächlich als den Benutzer lesen, als den Sie versuchen, Ihre Shell auszuführen, dh welche Berechtigungen zeigen "ls -l" dafür? ak2 vor 13 Jahren 0
Habe es kürzlich nicht probiert, aber zuletzt habe ich es versucht, es war immer noch ein Problem. WilliamKF vor 12 Jahren 0

1 Antwort auf die Frage

1
Fran

Try putting this code in your ~/.emacs startup file (and restarting Emacs):

(setq shell-file-name "bash" explicit-shell-file-name "bash") 

You could also temporarilly rename /bin/sh to /bin/sh.hold to be absolutely certain whether Emacs is invoking /bin/sh or /bin/bash. Keep in mind that in certain cases (see the Bash man page) Bash will behave as sh depending on how it is invoked (e.g., if argv[0] is "sh").