私はしばらくLinuxを使用してきましたが、常にrootアクセス権を持っていたので、権限の問題はあまり問題にはなりません。しかし、今はrootアクセス権がないので、狂うようです。
SSH経由でWebサーバーに接続できます。これは私のユーザーにアクセスでき、PHPバックティックを介してそのユーザーにアクセスgabitoptalentro
できることを意味します。apache
一部のフォルダに問題がありますtmp
(いいえ /tmp
)。ls -l
説明する:
drwxrwxrwx 2 gabitoptalentro toptalentro 4096 Jun 15 19:15 tmp
そのフォルダにtouch
ファイル()を作成しようとするとtouch tmp/QQ
機能します(ファイルが生成されます)。しかし、には表示されませんls -l
。の項目です。私のSSHアカウント:
-rw-r--r-- 1 apache apache 0 Jun 15 19:37 QQ
したがって、ファイルは実際に属していますが、apache
読み取るapache
ことはできません。
chown
また、フォルダ全体をコピーしようとしましたが、apache
許可されていません(chown: changing ownership of ...: Operation not permitted
)。まあ、私のフォルダを他の人が利用できなくなりますか?
apache
それでは、私がこの状況から離れてそのファイル自体を読むのを助けることができるのを知っていますか?
答え1
一般的なUnixファイル権限またはSELinuxベースの役割の拡張であるアクセス制御リストを使用するようにサーバーを設定できます。
次のようにディレクトリでACLを確認できます。
> getfacl /path/to/your/tmp
すべてがうまくいけば、次のような結果が出るでしょう...
# file: tmp
# owner: apache
# group: apache
user::rw-
group::r--
other::r--
次のような行が見えたら...
user:someotheruser:---
group:someothergroup:---
...ACLを扱っているファイル/ディレクトリです。お分かりのように、これにより特定のユーザーとグループの権限を設定できます。コマンドを使用してこれを変更できます(許可を許可)setfacl
。ディレクトリのACLには、予期しない権限で新しいファイルが生成されるようにするさまざまなデフォルト値があります。
これがうまくいかない場合は、SELinuxでロールベースのセキュリティを処理する必要があります。コマンドを実行してくださいgetenforce
。強制すると、Apache は HTTP コンテキストのファイルのみを読み込みます。
> /usr/sbin/getenforce
Enforcing
chcon
tmpディレクトリが必要です(コンテキスト変更)...
> chcon -R -t httpd_sys_content_t /path/to/your/tmp
役に立ったことを願っています!
答え2
新しく作成されたファイルに対する権限はpassですumask
。しかし、umask
この場合は大丈夫です。
-rw-r--r-- 1 apache apache 0 Jun 15 19:37 QQ
フラグ 2、3、4 は所有者の権限です。 rw-
これは、Apacheがこれらのファイルを読み書きできることを意味します。
読み書きするときにApacheとしてログインしていることを確認してください。