Ich möchte eine Datei entfernen, wenn rc.sysinit ausgeführt wird. Ich habe Folgendes geschrieben:
ja | rm / etc / anImportantFileWhichBelongsToSystem
Ich vermute, der übergeordnete Benutzer für die Ausführung von rc.sysinit ist "root", was bedeutet, dass er alles tun kann, was er will, aber in meinem Fall kann ich eine einfache Datei nicht von der Festplatte entfernen und der Fehler wird nicht angezeigt. Das Attribut der Datei lautet: 700
was soll ich machen?
rm -f
anstatt deryes
Rohr?Antworten:
wie @Daniel Beck sagte, sollten Sie dafür wirklich rm -f verwenden. Du brauchst nicht den seltsamen (aber funktionierenden) Ja-Pipe-Hack.
Das Dateisystem ist zu diesem Zeitpunkt möglicherweise nicht beschreibbar. Haben Sie getestet, ob Sie an dieser Stelle im Skript eine Datei erstellen können?
touch /etc/testfile
oder so, nur um sicherzustellen, dass es eingehängt und beschreibbar ist.Die Datei enthält möglicherweise erweiterte Attribute. Erweiterte Attribute sind Dinge, die Root-Rechte überschreiben. Was macht
lsattr file
sagen.quelle
versuche es zu bewegen
/dev/null
oderunlink
oderecho :> /etc/anImportantFileWhichBelongsToSystem
quelle
Mögliches Problem ist, dass das Dateisystem zu diesem Zeitpunkt möglicherweise nicht und / oder nicht als R / W gemountet ist. Möglicherweise müssen Sie dies später tun, nachdem rc.sysinit abgeschlossen wurde.
quelle