Ich habe eine Datei, die einem Nicht-Root-Benutzer gehört:
# ls -l example.php
-rw------- 1 foo bar ... example.php
Ich habe gerade einen Patch mit einem Befehl wie angewendet
patch -p0 <<-EOF
--- .../example.php.orig 2012-06-20 15:07:13.000000000 +0200
+++ .../example.php 2012-06-20 15:43:05.000000000 +0200
...
EOF
as root und die Zieldatei Benutzer und Gruppe wurden beide in geändert root
. Ich konnte auf den man
Seiten keinen Hinweis darauf finden .
Gibt es eine Möglichkeit , um die Datei Eigentum nach wie vor zu verlassen , ohne su
, sudo
oder chown
?
su
scheint nicht in der Lage zu sein, eine Gruppe anzugeben.sudo -u foo patch ...
läuft gut, setzt aber die falsche Gruppe.sudo -u foo -g bar patch ...
kehrt zurückSorry, user root is not allowed to execute '/usr/bin/patch' as foo:bar on hostname
. Dies kann daran liegen, dass der Benutzerfoo
kein Mitglied der Gruppe istbar
.chown
Dies würde bedeuten, dass Sie die Berechtigungen vor dem Ausführen speichernpatch
und zwei weitere Codezeilen hinzufügen müssen.
Antworten:
patch
Erstellt eine neue Datei und enthält daher effektive Benutzeranmeldeinformationen.Eine Problemumgehung: Verwenden Sie diese Option,
patch -o
um eine temporäre Datei zu erstellen, undcat
tmp-Datei dann einfach in die Originaldatei.quelle