
おはよう、
CentOS マシン上で、あるユーザーのホーム ディレクトリから別のユーザーのホーム ディレクトリにファイルを転送する cron ジョブを設定しようとしています。
btiseis@mymachine [~]# mv ./myfile.csv /home/mmh/tmp
tmp ディレクトリに 0777 権限があることを確認しましたが、次のエラー メッセージが表示されます。
mv: accessing '/home/mmh/tmp': Permission denied
この問題は、ホームディレクトリ間でファイルを転送したことが原因であると思われます。
何か案は?
ダン
答え1
ホーム ディレクトリは特別なものではありません。ユーザーがこのように名前を付けるだけです。システムでは、ディレクトリがユーザーの「ホーム ディレクトリ」であるかどうかは考慮されません。
すべてのディレクトリに対する権限が必要です。したがって、/home/mmh/tmp に対する書き込み権限と、/home/mmh に対する読み取り + 実行権限が必要です (読み取りまたは実行のどちらかで十分ですが、どちらかがわかりません。ただし、通常、ディレクトリに対して読み取りと実行の両方が設定されているか、設定されていないかのどちらかです)。そうすることで、/home/mmh/tmp に実際にアクセスできます。
cronjob を root として実行すれば、これらすべてを回避できます。絶対に必要な場合を除き、一般的にはアクセス権限を広げることはお勧めできません。あなたのケースでは問題になるかどうかはわかりませんが (他のユーザーはいないと思います)、悪い習慣は後から取り除くのが困難です。
編集: 2 人のユーザーが「友好的」な場合 (自分自身の 2 つの化身のように、他のユーザーが自分のデータを覗き見してもまったく気にならない場合)、「ターゲット」ユーザーのメイン グループを「送信」ユーザーのグループ リストに追加し、グループ権限を使用できます。多くのシステムでは、すべてのユーザーが独自のプライベート グループで作成されます。