web-dev-qa-db-ja.com

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

だから私はVPS-CentOS Linuxをインストールしています。サーバーにvsFTPdがあります。現在、ルートユーザー経由でサーバーに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-ユーザーが正しいフォルダに正しくログインしていることを確認しましたが、ユーザーは他のディレクトリに「戻る」ことができます。 ユーザーが特定のフォルダにとどまり、「閲覧」できないようにしたい

何か案は?

私はchrootに関するさまざまな記事を見つけましたが、上記の手順で使用するためにそれを理解していません。

45
user1231561

とても簡単です。

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().

これは、ユーザーがユーザーのHOMEとして設定したフォルダーにアクセスできることを意味します。以下に、ユーザーのpasswdエントリの例を示します。

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

次のコマンドでユーザーのホームディレクトリを設定します

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

注:私の例では、このユーザーはLinux内のいくつかのスケジュールされたタスクの有効なユーザーでもあります。この必要がない場合は、ユーザーのシェルをbashではなく/sbin/nologinに変更してください。

39
user34720

chroot_local_user=YESを含めるように設定を変更した後

ユーザーのシェルを/usr/sbin/nologinに変更すると、パスワードが漏洩した場合にリスクが軽減されます(ホームディレクトリも設定します)。シェルも/etc/shellsにリストされている必要があります。そうでない場合、認証は失敗します。

usermod -d /var/www/my.domain.example -s/usr/sbin/nologin exampleuser

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

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

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

6
Shapeshifter

ユーザーを設定し、FTP経由でのみユーザーにアクセスを許可(つまりSSHなし)し、proftpd

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

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

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

    usermod -d /target/directory username

  4. shellsファイルを編集:vi /etc/shellsと追加/dev/null 最後に

  5. newusernameファイルのpasswdエントリを変更します:vi /etc/passwd たす /./の前にnewusernameを付けると、エントリは次のようになります。

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

    ステップ4および5の詳細はこちら:

  6. 編集/etc/proftpd/proftpd.confファイルし、行のコメントを解除しますDefaultRoot ~

4
pTeJa