私はプログラミングの初心者で、すでにいくつかの場所で検索したのですが、見つからなかったので、このフォーラムで助けを求めたいと思います。
私は、serverpilot をインストールした Digitalocean の Ubuntu サーバーを持っています。そこで作成した唯一のユーザーは「serverpilot」ですが、プログラマーがこのサーバーにインストールしたサイトへのアクセスを要求しました。そこで彼はテンプレートをプログラムし、データベースにいくつかの変更を加える予定ですが、私は「serverpilot」ユーザーにログイン権限を与えたくなかったので、このサイト (そのフォルダーとサブフォルダー) にアクセスするための特定の FTP ユーザーを作成するよう彼にしばらく依頼しました。これを行う方法を調べ、いくつかのチュートリアルをテストしましたが、まだ行き詰まっています。
なんとか vsftpd をインストールして、curl up を始めました。
この新しい FTP ユーザーに、ディレクトリ "/srv/users/serverpilot/apps/cronegame2/public" にある特定のサイトへのアクセス権のみを与え、そのサイトのフォルダ、サブフォルダ、データベースにアクセスして変更できるようにしますが、それ以上のことはできません。また、ポート 21 経由でのみログインできるため、ROOT にはアクセスできません。
これを達成するために私を助けてください。
答え1
特定の Web サイト ディレクトリへのアクセスが制限された FTP ユーザーを作成するには、次の手順に従います。
FTP アクセス用の新しいユーザーを作成します:
sudo adduser ftpuser
新しいユーザーのパスワードを設定します。
FTP アクセス用の新しいグループを作成します。
sudo groupadd ftpaccess
FTP ユーザーを新しいグループに追加します。
sudo usermod -aG ftpaccess ftpuser
ウェブサイト ディレクトリの所有権を新しいグループに変更します。
sudo chown -R serverpilot:ftpaccess /srv/users/serverpilot/apps/cronegame2/public
新しいグループが読み取り、書き込み、実行できるように、Web サイト ディレクトリの権限を変更します。
sudo chmod -R g+rwx /srv/users/serverpilot/apps/cronegame2/public
特定のディレクトリへのアクセスのみを許可し、ルート ディレクトリへのアクセスを制限するように vsftpd を設定します。
ファイルを編集し/etc/vsftpd.conf
、最後に次の行を追加します。
# Allow access only to the specific directory
chroot_local_user=YES
local_root=/srv/users/serverpilot/apps/cronegame2/public
# Restrict access to the root directory
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.allowed_users
最後に、/etc/vsftpd.allowed_users ファイルを作成し、そこに FTP ユーザーを追加します。
sudo sh -c "echo 'ftpuser' >> /etc/vsftpd.allowed_users