Ubuntu (Digitalocean+Serverpilot) でユーザーを作成し、特定の Web サイトへのアクセス権を付与する

Ubuntu (Digitalocean+Serverpilot) でユーザーを作成し、特定の Web サイトへのアクセス権を付与する

私はプログラミングの初心者で、すでにいくつかの場所で検索したのですが、見つからなかったので、このフォーラムで助けを求めたいと思います。

私は、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

関連情報