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: