[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fehler beim Upgrade von Lenny auf Squeeze in /etc/shells



On Tue, 14 Feb 2012 15:03:45 +0100, "CSI | Patrick G. Stößer" <patrick.g.stoesser@csi.uni-heidelberg.de> wrote:
>
> Zumindest, wenn man manuell eine Shell in /etc/shells eingetragen hatte 
> (bei mir war es /bin/false wegen vsftpd), wird der Eintrag /bin/dash 
> nicht ein eine neue Zeile geschrieben, sondern an die letzte Zeile 
> angehängt, so dass also /etc/shells statt
>
> [...]
> /bin/false
> /bin/dash
>
> so aussieht:
>
> [...]
> /bin/false/bin/dash
>
> was natürlich zu Ärger führt.
>
> Ist das schon bekannt?

Naja, in alter Unix-Tradition ist es ein Fehler, wenn die letzte Zeile
einer Textdatei nicht in einem Newline-Zeichen endet, daher
funktionieren dann krude Editiermethoden ala "echo /bin/dash >>
/etc/shells" dann ganz gut. Wie am Ende gezeigt beschweren sich auch
einige Utilities ueber das Fehlen des Zeilenendezeichens.

Ich denke nicht das die Upgrade-Skripte dahingehend geaendert werden das
alle moeglichen Probleme mit der Handeditierung von Confdateien
abgefangen werden koennen.

Ich wuerde mir an deiner Stelle auch angewoehnen zumindest den Dateien
in /etc eine Extrazeile am Ende zu spendieren.

$ echo -n "test" > file
$ sed "1itest2" < file >file2
$ diff -u file file2
--- file        2012-02-14 16:41:01.000000000 +0100
+++ file2       2012-02-14 16:41:30.000000000 +0100
@@ -1 +1,2 @@
+test2
 test
\ No newline at end of file

Peter


Reply to: