2016-04-26 12 views
1

Ich bin als root in Linux angemeldet. Ich habe eine Datei mit 777 Berechtigungen. Ich habe die Datei im selben Verzeichnis mit cp kopiert.Warum hat die kopierte Datei unter Linux unterschiedliche Berechtigungen?

cp settings.php settings_copy.php 

Die kopierte Datei hat jedoch unterschiedliche Dateiberechtigungen.

[[email protected] default]# ls -l setting* 
-rwxr-xr-x. 1 root root 29105 Apr 26 11:48 settings_copy.php 
-rwxrwxrwx. 1 root root 29105 Apr 26 09:48 settings.php 

Ist das normal? Wie kann ich sicherstellen, dass die kopierte Datei die gleichen Berechtigungen erhält? Ich glaube, dass dies das Standardverhalten für den Kopierbefehl in jedem Betriebssystem ist.

+0

Überprüfen Sie die Umask-Einstellungen zusätzlich zu den unten stehenden 'cp -p'-Vorschlägen. Die Umask wird auf die Berechtigungen für die Kopie angewendet. Vor allem mit der Wurzel ist es eine wichtige Überlegung. Siehe beispielsweise http://unix.stackexchange.com/questions/115246/file-inheriting-permission-of-directory-it-is-copied-in. Diese Frage wäre wahrscheinlich im Bereich "Unix & Linux" besser. – KevinO

Antwort

3

Verwenden Sie die Option -p die Berechtigungen zu erhalten:

cp -p settings.php settings_copy.php 

Wenn Sie eine Datei kopieren, erstellen Sie eine neue Datei. Seine (neuen Datei-) Berechtigungen hängen also von der aktuellen Dateierstellungsmaske ab, die Sie über den Befehl umask ändern. Lesen Sie man umask für weitere Informationen.

1

haben Sie bei man cp sah

Dies ist der entsprechende Abschnitt:

-p  same as --preserve=mode,ownership,timestamps 

--preserve[=ATTR_LIST] 
    preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all 

Also das gleiche Eigentum zu halten und Modus würden Sie den Befehl ausführen:

cp --preserve=mode,ownership 

Wenn Sie wissen, das ist immer was du willst und du willst es nicht behalten, du kannst es als Alias ​​zu deinem .bashrc hinzufügen;

alias cp='cp --preserve=mode,ownership'