web-dev-qa-db-ja.com

特定のフォルダーのみにアクセスするための新しいsshユーザーアカウントを作成する

Apache 2サーバーをubuntu 16.04で実行しています。現在、特定のフォルダー内のプロジェクトファイルにアクセスするたびに、php関数を実行するためにrootユーザーを使用し、端末内でchown -R www-data:www-data .を実行する必要がある後、いくつかのファイルを編集しますなぜなら、php関数を実行した後、ファイルの所有者はuser:user(root:root)になるからです。私が必要なのは:

  1. サーバーの新しいユーザーを作成する
  2. Sshを使用してサーバーにアクセスすると、このユーザーは自動的に特定のフォルダー内になります
  3. このユーザーに、この特定のフォルダー内で何かを行う権限を付与します

たとえば、tonyaという名前のユーザーを作成します。誰かtonyassh [email protected]を使用してサーバーにアクセスすると、彼は/ var/www/specific_folder、ユーザーtonyaはこのフォルダー内で何でもできます。tonyaがphpファイルの所有者またはフォルダーをtonya:www-dataに設定すると、ファイルの所有者をwww-data:www-dataに設定したときと同じように動作します

7
simple guy

あなたはこれを達成できるはずです

adduser --home /var/www/specific_folder --Shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya
  • adduserはユーザーの追加に使用されます

  • --homeは、ユーザーがログインするときのホームディレクトリを指定します

  • --Shellはシェルを指定するためのものであり、デフォルトでは通常/bin/shであり、/bin/bashほどユーザーフレンドリーではありません

  • --no-create-homeはホームディレクトリを作成しないため、既に存在するものを使用する必要があります

  • --ingroupは、指定されたグループにユーザーを追加します

  • 最後の引数はユーザー名です

このガイドを使用して、ユーザーを投獄することができます。

ユーザーを刑務所に入れたとしても、刑務所から逃げることは非常に可能です。ユーザーにシステムへのアクセス権を付与する場合、シェルアクセス権を取得すると、ほとんどの場合ルートを取得できるため、ルートアクセス権を付与することもできます。刑務所を設定すると、基本的なユーザーが有害なことをするのを防ぐことができますが、悪意のあるユーザーが有害なことをするのを止めるためにはほとんど何もしません。

6
Desultory