クライアントファイルを安全に受信するために、CentOSサーバーをSFTPサーバーとして構成しました。その後、SMBを介してこれらのファイルにアクセスできる必要があります。
- 私のSFTP "root"は/var/inbound/にあります。
- その後、/var/inbound/の下に各顧客のディレクトリがあります(例:/var/inbound/customer1/
- その後、ユーザーを刑務所に送信するために、各顧客ディレクトリの下にuploadsというサブディレクトリがあります(例:/var/inbound/customer1/uploads/)。
期待どおりに機能する権限があり、SFTPへのクライアントアクセスをサポートするためにすべてが正常です。 1つの重要な側面は、ユーザーを/var/inbound/ディレクトリに「閉じ込める」ことです。
これで/var/inboundディレクトリを作成しました。
sudo mkdir /var/inbound
sudo chown root.root /var/inbound #root must be owner of directory
各クライアントのサブディレクトリを作成する方法は次のとおりです。
sudo mkdir -p /var/inbound/[username]/uploads
sudo chown root /var/inbound/[username]
sudo chmod go-w /var/inbound/[username]
sudo chown [username]: /var/inbound/[username]/uploads
sudo chmod 770 /var/inbound/[username]/uploads
メモ:/var/inbound/[username]/ および /var/inbound/[username]/uploads/ ディレクトリには特別な権限セットが必要です。 [username]をそのユーザーに置き換えて、次のコマンドを実行します。
次に、SSH/SFTP 構成の残りの部分について説明します。ただし、ユーザーを自分のディレクトリに閉じ込め、SCPONLYを使用してSSH /コンソールアクセスを無効にできるだけで十分です。
これで状況が複雑になります。
これで、特定のアカウントにSMBアクセス権を付与する必要があります。ファイルアクセス)をWindows Serverホストからアクセス可能な/ var / inbound /ディレクトリにコピーします。私はサブディレクトリを含む/var/inboundディレクトリをWindows共有として扱いました。ただし、一部のファイルを表示できず、必要なファイルへの書き込みアクセス権がありません。
$ ls -l /var/inbound
total 0
drwxr-xr-x. 3 root root 20 Jan 5 11:53 testuser
$ ls -l /var/inbound/testuser
total 0
drwxrwxr-x. 2 testuser sftponly 53 Jan 5 12:26 uploads
今これは私がアクセスしたいディレクトリですファイルアクセスアカウント:
$ ls -la /var/inbound/testuser/uploads/
total 12
drwxrwx---. 2 testuser sftponly 53 Jan 5 15:12 .
drwxr-xr-x. 3 root root 20 Jan 5 11:53 ..
-rw-r--r--. 1 fileaccess sftponly 30 Jan 5 12:26 test2.txt
-rw-r--r--. 1 testuser sftponly 26 Jan 5 12:25 test3.txt
-rw-rw-r--. 1 dmgmadmin dmgmadmin 14 Jan 5 11:53 test.txt
SMB経由で接続する場合ファイルアクセスアカウントではtest.txtしか表示できませんが、ファイルを開くことはできません(アクセスが拒否されました)。
これは私のsmb.confです。ご覧のとおり、私はさまざまなオプションを試してきました。
[global]
workgroup = <MYDOMAINNAMEGOESHERE>
security = user
passdb backend = tdbsam
[inbound]
comment = Incoming files (as %u)
path = /var/inbound/
valid users = fileaccess
guest ok = No
read only = No
writeable = Yes
browseable = Yes
create mask = 0640
directory mask = 0750
メモ:ドメインはありますが、このCentOSシステムはドメインの一部ではありません。私のWindows AD DNSにエントリがあり、DNSサーバーを使用するように構成されていますが、それは終わりです。このマシンを隔離したいです。したがって、ローカルCentOSアカウントを使用してサーバーに接続してみてください。
特に、これがLinuxファイルシステムアクセスの問題であり、必要な変更が必要なSFTP権限と競合する可能性があることが懸念されます。たとえば、SFTP では、/var/inbound// ディレクトリをルートが所有する必要があります。
アカウントに参照/読み取り/権限があるように、SMB.confで問題のアカウントへのアクセス権を適用する方法があるかどうか疑問に思います。 smb.confでさまざまな設定オプションを試しました(smb.confのマニュアルを読みました)。ここ)。
ベストアンサー1
また、「acl」パッケージを確認することをお勧めします。 Advanced ACLは従来のUnix ACLよりもはるかに便利なので、今はいつも使用しています。