そのため、職場でプロキシ、DNS、FTPなどの一部のサービスをWindowsからLinuxに移行するためにフリーソフトウェアを使用するように求められました。 GUIをできるだけ使用しないようにしてCentOS 7を選択しました。
長い間、苦労してCentOS 7を正常にインストールし、vsftpdを同時に実行しました。管理者アカウントを作成し、すべてが順調に行われました。
実際のFTPからディレクトリツリーをコピーするのに問題があります。私は上記のFTPを使用して30人の顧客にファイルを転送します。誰もが1から30までの顧客IDで番号付けされたフォルダを持っており、自分のフォルダとサブフォルダにのみフルアクセス権を持っています。これらのクライアントフォルダは、各クライアントへのファイルのアップロードを担当する領域で管理されているクライアントフォルダの下にネストされています。このゾーンには、各顧客IDフォルダへのフルアクセス権が必要です。これで、次のようになります。
-FTP
-Clients
-01
-02
-##
-30
同様の作業を行うために、次のアカウントを作成しました。
adduser uploaders -d /home/clients
adduser clientname01 -d /home/clients/01
adduser clientname02 -d /home/clients/02
adduser clientname## -d /home/clients/##
adduser clientname30 -d /home/clients/30
そしてそれらをchrootに閉じ込めます。
chroot_local_user=YES
アカウントにログインすると
uploaders
chrootにロックされますが、番号付きフォルダにアクセスできません。あるクライアントのアカウントにログインすると、私はルートディレクトリにあり、そこにあるほぼすべてのフォルダにアクセスできます。
私が達成したい目標を達成する正しい方法は何ですか?
答え1
ユーザーのホームディレクトリ設定を使用している場合は、adduser
chrootする必要はありません。ユーザーはlocal_enable
このオプションを使用してホームディレクトリに自動的にアクセスできます。
ファイルが別の場所にある場合は、home
その場所に変更するだけです。彼らが来たくない限りssh
問題はないでしょう。
ファイルに以下が含まれていることを確認してくださいvsftpd.conf
。
anonymous_enable=NO
local_enable=YES
write_enable=YES
そして行がありませんchroot
。ユーザーがFTPを介して自分のホームディレクトリに書き込もうとしたくない場合も同様ですwrite_enable
。NO