私は誰かがこの問題を助けてくれることを望んでいた
「アクセスが制限されたSFTPユーザーをセットアップしようとしています。」
DigitalOceanサーバーでUbuntu 16.04.2 x64を実行しています。これを DigitalOceanフォーラム にも投稿しました。
system user
はserverpilot
と呼ばれますserverpilot
にはルート権限があり、home
フォルダーは次の場所にあります:/srv/users/serverpilot
public
フォルダーは次の場所にあります:/srv/users/serverpilot/apps/test-app/public/
2番目のユーザーを追加したいが、ユーザーができることを制限したい:
newsletters
という名前の単一のフォルダーにのみアクセスします。public
フォルダーにあります。newsletters
、フォルダーから移動できないようにする必要がありますこれは、newsletters
フォルダーへのフルパスです:/srv/users/serverpilot/apps/test-app/public/newsletters
このガイドに従いました ユーザーを特定のディレクトリに制限するにはどうすればよいですか? Maxamilian Demian(@Maxoplata)による、Jonathan Tittle(@jtittle)によるすばらしい返信があります。
ただし、SFTP
を介したログインにまだ問題があります
私が行ったすべてのステップをリストアップしました-うまくいけば、より多くの経験を持つ誰かが私のエラーを見つけることができるでしょう!
root
としてログインuser-sftp-only
という新しいユーザーを作成しましたadduser user-sftp-only
compgen -u
user-sftp-only
はリストの一番下にありますgrep user-sftp-only /etc/passwd
出力:
user-sftp-only:x:1004:1007:,,,:/home/user-sftp-only:/bin/bash
user-sftp-only
ルート権限を付与しますgpasswd -a user-sftp-only Sudo
root
としてログアウトuser-sftp-only
としてログインしましたpublic
という新しいディレクトリをnewsletters
という名前で作成します。cd /srv/users/serverpilot/apps/test-app/public/
Sudo mkdir newsletters
前のステップのpublic
フォルダー内で、実行します
$ ls -al
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar 7 15:26 .
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar 3 16:22 ..
-rw-r--r--+ 1 serverpilot serverpilot 3393 Mar 3 16:22 index.php
drwxrwxr-x+ 2 root root 4096 Mar 7 15:26 newsletters
DigitalOceanのさまざまな投稿を読んで、グループを作成して新しいユーザーuser-sftp-only
をそのグループに割り当て、root root
をユーザーとグループの名前に変更する必要があることを知っています。
user-sftp-only
としてログインしましたSudo groupadd group-sftp-only
compgen -g
group-sftp-only
はリストの一番下にあります注:_user-sftp-only
という新しいユーザーもこのリストに含まれていますか?
root
としてログインuser-sftp-only
をgroup-sftp-only
というグループに追加しましたこれを行うと、ユーザーuser-sftp-only
としてSSHで接続できなくなります
usermod -g group-sftp-only -d /srv/users/serverpilot/apps/test-app/public/newsletters -s /sbin/nologin user-sftp-only
-g
はグループ名を指定します-d
は、ユーザーのホームディレクトリを指定します-s
はシェルアクセスを指定します(/ sbin/nologinは、このユーザーに対してSSHが無効であることを意味します)root
としてログイン
$ grep user-sftp-only /etc/passwd
user-sftp-only:x:1001:1004:,,,:/srv/users/serverpilot/apps/test-app/public/newsletters:/sbin/nologin
root
としてログインnano /etc/ssh/sshd_config
#Subsystem sftp /usr/lib/openssh/sftp-server -l INFO
sshd_config
のvery bottomに以下を追加しました:
Subsystem sftp internal-sftp
Match group group-sftp-only
ChrootDirectory %h
ForceCommand internal-sftp
root
としてログインしていますservice ssh restart
root
としてログインしていますuser-sftp-only
のホームディレクトリです/srv/users/serverpilot/apps/test-app/public/newsletters
これを使用して、ホームディレクトリがユーザーとグループによって所有されていることを確認します
chown -R user-sftp-only:group-sftp-only /srv/users/serverpilot/apps/test-app/public/newsletters
まだroot
としてログインしています:
$ cd /srv/users/serverpilot/apps/test-app/public/`
$ ls -al
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar 7 15:26 .
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar 3 16:22 ..
-rw-r--r--+ 1 serverpilot serverpilot 3393 Mar 3 16:22 index.php
drwxrwxr-x+ 2 user-sftp-only group-sftp-only 4096 Mar 7 15:26 newsletters
$ cd /srv/users/serverpilot/apps/test-app/public/newsletters
$ ls -al
drwxrwxr-x+ 2 user-sftp-only group-sftp-only 4096 Mar 7 15:26 .
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar 7 15:26 ..
それは私がやっていることです。ただし、新しいユーザーuser-sftp-only
としてSFTP
経由でログインできません
tail -f /var/log/syslog
User-sftp-onlyアカウントにsftpしてみてください注成功/失敗情報メッセージ
失敗した場合、次の行を/etc/ssh/sshd_config
に追加します。
AllowUsers user-sftp-only
次に実行します:
Sudo service sshd restart