一部のファイルを含む特定のディレクトリの権限を640からそのフォルダに作成されたファイルに変更し、一部の特定のユーザーがそのファイルにアクセスできるようにファイルを作成してから644に変更できますか?
環境 - Oracleデータベースを実行するRHEL 6
答え1
chmod(1)
マニュアルページをお読みください。
640
これが意味するのは、rw-r-----
所有者が読み取り/書き込み(最初のトリプル)でき、ファイルを所有するグループのユーザー(2番目のトリプル)が読み取ることができ、他の誰も何もできません。
(全員が読み取り、所有ユーザーが書き込み)に変更するには、644
他のユーザーに読み取り権限を追加するだけです。
$ chmod o+w file
または、次のように明示的に設定します。
$ chmod 644 file
または
$ chmod a=r,u+w
つまり、ディレクトリやファイルの権限を変更していることを確認してください(あなたの質問では明確ではありません)。ここで重要なのは、ディレクトリから実行権限を削除すると、ディレクトリを参照できなくなることです。つまり、ディレクトリに対する実行権限を持たないユーザーはディレクトリを変更できず、その中のファイルを読み取ることもできません。
答え2
ACLはこの場合必須であり、RHEL 6でサポートされています。たとえば、これらのファイルを特定のディレクトリに配置します。/dir
現在のディレクトリにある権限を維持しながら、特定のグループまたはユーザーにフォルダやそのコンテンツへのアクセス権がないディレクトリ、およびそのサブディレクトリへのアクセス権も付与しようとしています。たとえば、グループに読み取り権限を付与するには、次のコマンドを実行します。
setfacl -dR -m "g:groupname:rwX" /dir
-d
新しいコンテンツがこのディレクトリに追加されたときにaclを継承するように、aclをデフォルト値に設定します/dir
。
再帰のために-R
。
bigはX
このグループのユーザーがcd
ディレクトリに入ることを保証しますが、内部のファイルを実行可能にすることはありません。
その後、次のコマンドを実行して正しく適用されたことを確認できます。
getfacl /dir
ここにいるマニュアルページのためsetfacl
:
答え3
システムは、ファイルが完全に作成されたことをどのように知ることができますか?
プロセスがファイルを生成していてそのプロセスを制御できる場合は、最後にファイル権限を変更する手順を追加することをお勧めします。
逆に、ファイル生成プロセスを制御できない場合の最善の選択肢は、数分ごとにcronジョブを実行することです。ジョブはしばらく変更されていないファイル(まだ記録されているファイルが見つからないことを確認するため)と変更する権限を見つけ、権限を変更する必要があります。それは次のとおりです。
find /the/directory -type f -mmin +5 -perm 0640 -exec chmod 644 '{}' ';'
cronで5分ごとに実行すると、比較的強力なソリューションが得られます。
答え4
権限を変更するには、chmodコマンドを使用します。もし。 Chmod 777ファイル名は、オペレーティングシステムのユーザー、グループ、およびその他のユーザーに読み取り、書き込み、実行権限を付与します。