Centos / Linuxインストールでのみ特定の/dir/アクセス権を持つFTPユーザーを作成する方法

Centos / Linuxインストールでのみ特定の/dir/アクセス権を持つFTPユーザーを作成する方法

だから私はVPS - CentOS Linuxインストールを使用しています。私のサーバーにvsFTPdがあります。現在、rootユーザーを介してサーバーへのSFTPアクセス権がありますが、サーバー上の特定のディレクトリに対してのみFTPアクセス権を持つように新しいユーザーを作成しようとしました。

1. mkdir /var/www/mydomain.com
2. mkdir /var/www/mydomain.com/html
3. useradd <-username>
4. passwd <-username>
5. chown –R <-username> /var/www/mydomain.com
5. groupadd <-groupname>
6. gpasswd -a <-username> <-groupname>
7. chgrp -R <-groupname> /var/www/mydomain.com
8. chmod -R g+rw /var/www/mydomain.com

私がやろうとしているのは、次にのみアクセスできるユーザーを作成することです。 /var/www/mydomain.com- ユーザーが正しいフォルダに正しくログインしたが、ユーザーが別のディレクトリに「戻る」ナビゲートできることを観察しました。ユーザーが特定のフォルダにとどまって、後ろに「参照」できなくなることを望みます。

どんなアイデアがありますか?

chrootingに関するさまざまな記事が見つかりましたが、上記の手順でchrootingを使用する方法が見つかりませんでした。

答え1

これはとても簡単です。

vsftpd.conf ファイルに次のオプションを追加する必要があります。

chroot_local_user=YES

構成ファイル内の文書は説明を必要としません。

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().

つまり、ユーザーはユーザーのホームディレクトリとして構成されたフォルダにのみアクセスできます。以下にユーザーパスワード入力の例を示します。

upload_ftp:x:1001:1001::/var/www/sites/:/bin/bash

次のコマンドを使用して、ユーザーのホームディレクトリを設定します。

usermod -d /var/www/my.domain.example/ exampleuser

メモ:私の例では、このユーザーはLinux内のいくつかのスケジュールされたジョブの有効なユーザーでもあります。この要件がない場合は、/sbin/nologinユーザーシェルをbash

答え2

含めるように構成を変更した後chroot_local_user=YES

/usr/sbin/nologinパスワードが破損した場合は、一部のリスクを軽減するためにユーザーのシェルを変更できます(ホームディレクトリも設定)。シェル/etc/shellsもリストする必要があります。それ以外の場合、認証は失敗します。

usermod -d /var/www/my.domain.example -s /usr/sbin/nologin 例ユーザー

-d, --home HOME_DIR ユーザーの新しいログインディレクトリです。 -m オプションを指定すると、現在のホームディレクトリの内容が新しいホームディレクトリに移動されるか、ディレクトリがまだ存在しない場合に作成されます。

-s, --shell SHELL ユーザーの新しいログインシェル名です。このフィールドを空白に設定すると、システムはデフォルトのログインシェルを選択します。

https://security.appspot.com/vsftpd/FAQ.txt

答え3

以下は、ユーザーを設定し、FTP(SSHなしなど)を介してのみユーザーアクセスを許可し、特定の(ユーザーホーム)ディレクトリへのアクセスを制限する手順です。プロフェッショナルソフトウェア:

  1. 新しいユーザーを追加:adduser newusername

  2. パスワードを設定してください:passwd newusername

  3. ユーザーのホームディレクトリをデフォルトから新しいフォルダに変更します。

    usermod -d /target/directory username

  4. shellsファイルを編集して最後にvi /etc/shells追加します。/dev/null

  5. newusernameファイルのエントリを変更しますpasswdvi /etc/passwdアイテムが次のように見えるように、以前に追加します。/./newusername

    newusername:x:502:502::/home/ftp/./newusernamehomedirectory/:/dev/null

    ステップ4と5の詳細については、こちらをご覧ください。

  6. /etc/proftpd/proftpd.confファイルを編集してその行のコメントを外します。DefaultRoot ~

答え4

ルートフォルダの権限を次のように設定します。711ルートアカウントを使用してください。

関連情報