LINUX

  
の下でのFTPユーザーとapacheユーザー権利の問題

もともとフォーラムスペースの必要性、外国のVPSの購入、LINUXシステムのインストールのためにLINUXシステムを研究していませんでした。バックグラウンドアカウントを取得したとき、私は完全に気を失いました空白、システムなし、HTTPサーバーなし、それは裸の "ネットワークハードドライブ"です。幸いなことに、私は "月に水をまく"ことができるように、Baidu叔父がいるので、わからない、チェックしないでください、これらの外国のVPS素材の元の使用も非常に貧弱です。 。 。私はなんとかSSHを習得できましたが、ついにkloxoパネルをインストールするのは大変な作業でした。これはついに良いです、HTTPがあります、そしてFTPも利用可能です。 。 。情報を送信した後、私は許可の問題が非常に深刻であることがわかりました。「ユーザー名」、「ユーザーグループ」、およびその他の「所有者」は、「所有者」を変更するのにchownコマンドを使用します。めまいがする。 。最後に、フォーラムを実行してみましょう。問題が再発するのにそれほど時間はかかりませんでした。何が起こっているのか私にはわかりません、FTPファイルが表示されない、そしてそれがkloxoパネルに表示されることができません。 。 。 Baiduおじさんも利用可能な情報を見つけることができなかった、それは私がこの問題に遭遇したと推定されています! FTPのアクセス権の問題に関しては、私は長い間考えていましたが、FTPユーザーのアクセス権とディレクトリの所有者に問題があると推定されています。 kloxoパネルのFTPユーザー管理機能は非常に単純であり、変更するのは無駄ですので、関連コマンドを確認する必要があります。黄天は、最終的に私はコマンドモード管理のFTPユーザーを見つけることができます、返済します。sudo useradd -g apache-d /dev /null -s /bin /false ftpadmin最初にapacheユーザーグループの結果に属するftpadminユーザーを作成しますメールボックスファイルを作成しています:ファイルが存在しますuseradd:警告:ホームディレクトリは既に存在しますskelディレクトリからその中にファイルをコピーしていない次のコードに関係なく、以前に同じファイルが作成されていると推定されます。 Sudo pure-pw useradd admin -u ftpadmin -d /home/admin/XXX.comこれは、pure-ftpdプログラムでFTPユーザーadminを作成し、作成したばかりのシステムユーザーftpadminにバインドすることです。 /home/admin/XXX.comが各コマンドを実行した後、pure-pwはアカウントのパスワードを要求します。 FTPアカウントは、パスワードを2回続けて入力した後に生成されます。 sudo pure-pw mkdb最後に、Webサイトのルートディレクトリの所有者をftpadminに変更しないと、FTPファイルをアップロードできません。 。 Chown -R ftpadmin /home/admin/XXX.com ------------

インストールした後に、ディレクトリ全体を削除したい場合は、PHPプログラムを使用します。あなたはapacheユーザがいくつかのファイルを生成したことを見つけるでしょう、ftpユーザは削除することができません。

実際、これは解決策です。

方法1.ユーザーグループの制御方法最初にすべての仮想ホストホストの仮想ユーザー(ftpユーザー)をapacheグループに追加してから、umaskを002に設定します。 。これは簡単な方法ですが、安全ではありません。同じグループであるため、異なるユーザーが相手のファイルを削除できます。グループには実行権限の読み取りと書き込みがあります。

方法2:linux advanced permissions management aclを使用します。

ユーザー自身のユーザーグループに加えて、ディレクトリに二重のアクセス権を設定し、読み取りおよび書き込みアクセス権を付与するために彼にapacheを追加しますこのユーザーは、apacheによって生成されたファイルを削除できます。仮想ユーザーは削除できません。

2番目の制御方法を見てみましょう。

Linuxシステム内では、所有者、同じユーザーグループ、および他のユーザーだけではありません。これら3つのタイプの人はファイル(ディレクトリ)パーミッションを割り当てます、あなたは他のユーザやグループを指定することもできますが、前提はaclオプションでパーティションをマウントすることです:mount /dev /hda1 /home -o acl 。

次に、setfacl -mu:ftp:rwx /home /ftp /wwwコマンドを使用して、/home /ftp /wwwディレクトリに対するすべての権限をftpユーザーに割り当てます。 /ftp /www /新しく作成されたディレクトリとファイルは同じ権限を持ちますsetfacl -d -mu:ftp:rwx /home /ftp /www

このコマンドは複数のユーザーを実装することもできます。 setfacl -mu:ftp:rwx /home /www; setfacl -mu:tmp:rx /home /www; ftpユーザーにはすべての権限があり、tmpユーザーには読み取り専用権限があります。

マスクの値を設定することもできます。setfacl -mm :: rwx /home /www;

このようにして、仮想ホストユーザーとapacheユーザーに操作権限を与えることができます。 apacheユーザーusernameがapache、仮想ホストusernameがvmuser、ディレクトリが/home /vmuser /wwwなどのファイルとディレクトリ。次のコマンドを使用できます。setfacl -mu:vmuser:rwx /home /vmuser /www; setfacl -mu:apache:rwx /home /vmuser /www; setfacl -d -mu:vmuser:rwx /home /vmuser /www; setfacl -d -mu:apache:rwx /home /vmuser /www; setfacl -mm :: rwx /home /vmuser /www; setfacl -d -mm :: rwx /home /vmuser /www;

この方法では、PHPプログラムをインストールするときに、apacheユーザーに権限がないことを確認するプロンプトは表示されません。ファイルを書いているときにディレクトリを削除したい場合、以下のapacheユーザによって生成されたファイルがあるので削除されません。もちろん、この方法ではext2とext3のパーティションフォーマットしか使用できないという制限があり、xfs、jfsなどの他のフォーマットは直接使用することはできず、変更後に使用することもできます。

Copyright © Windowsの知識 All Rights Reserved