ユーザーが入力した情報を含むアップロードディレクトリがあります。ユーザーが参加するたびにアップロードディレクトリにフォルダを作成し、そこに写真を保存する画像を送信します。問題は、デフォルトでは、このアップロードディレクトリとその中の写真がそれぞれ0755と0644であることです。そして、新しいファイルやフォルダのデフォルト値を確実に変更する方法が見つかりません(umaskは便利な検索のようですが、私の具体的な状況に応じてアドバイスを求めると思いました)。
アップロード時に新しいフォルダが作成されると、所有者と管理者だけがフォルダにアクセスできるようになり、そのフォルダに作成されたすべてのファイルにも同じことが期待されます。これの究極の目標は、自分と管理者だけがアクセスできる個人的な「プロフィール」領域を作成することです。どんな助けでも大変感謝します。
答え1
新しいファイルの権限は実際には作成プロセスの影響を受けますが、ファイルの作成umask
時にシステムコールに使用されるプロセスの権限によっても制限されます。open()
(つまり、制限された権限で明示的に生成されたファイル(このような個人的な内容を考えてみてください~/.ssh/id_rsa
)は、より広い権限を持つことはできません。)
新しいファイルが受け取る権限を変更するもう1つの方法は、POSIX ACL、特にデフォルトのACLを使用することです。ディレクトリにデフォルトのACLがある場合は、新しいファイルに代わりに使用されますumask
。
admin
これにより、所有者、所有者グループ、呼び出し元、および他の人が現在のディレクトリ内のすべての新しいファイルにアクセスできなくなります。
$ setfacl -d -m user::rwx -m user:admin:rwx -m other::- .
追加する-m group::-
と、自分が属するグループからもアクセス権を削除できます。
ファイルを生成するときに使用される権限は依然として適用されますが、ファイルのアップロードに使用されるユーティリティに問題がある可能性はありません。
答え2
次のいずれかの名前でファイルを作成します。
.cshrc
.profile
.bash_profile
(これらのファイルは非表示になります)
ファイルの内容を追加してumask
保存すると、新しいファイル/フォルダの既存の権限が維持されます。