2016-04-26 12 views
1

私はLinuxにrootとしてログインしています。私は777の権限を持つファイルを持っています。 cpと同じディレクトリにファイルをコピーしました。Linuxでコピーしたファイルの権限が異なるのはなぜですか?

cp settings.php settings_copy.php 

ただし、コピーされたファイルのファイルアクセス権は異なります。

[[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 

これは正常ですか?コピーしたファイルに同じ権限が与えられるようにするにはどうすればよいですか?私はそれがどのOSでもcopyコマンドのデフォルトの動作だと信じています。あなたは、ファイルをコピーすると

cp -p settings.php settings_copy.php 

、新しいファイルを作成している:

+0

以下の 'cp -p'の提案に加えて、umaskの設定を確認してください。 umaskは、コピーに対するアクセス権に対して適用されます。特に根を持つことは、重要な考慮事項です。例えば、http://unix.stackexchange.com/questions/115246/file-inheriting-permission-of-directory-it-is-copied-inを参照のこと。この質問は、おそらく "Unix&Linux"領域では良いでしょう。 – KevinO

答えて

3

は、アクセス権を保持する-pオプションを使用します。したがって、その(新しいファイル)アクセス許可は、コマンドで変更する現在のファイル作成マスクに依存します。詳細については、man umaskをお読みください。あなたが知っている場合

cp --preserve=mode,ownership 

:コマンドを実行しますので、同じ所有権とモードを維持するために

-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 

1

あなたはこれが関連するセクションであるman cp

を見てきましたそれは常にあなたが望むものであり、覚えたくないので、.bashrcにエイリアスとして追加することができます。

alias cp='cp --preserve=mode,ownership' 
関連する問題