ユーザーからの ssh アクセスをブロックし、 sftp と su アクセスができるようにする
Environment
- Red Hat Enteprise Linux 6
Issue
以下のアクセス権限だけをユーザーに付与するにはどうすれば良いですか?
-
ssh からログインできるようにする
-
別のユーザーでログインし、
su
コマンドを実行してそのユーザーに切り替えることができるようにする (つまり、シェルを持つ) - sftp からログインできるようにする
Resolution
/etc/ssh/sshd_config ファイルの設定を以下のように変更して、sshd サービスを再起動します。
Subsystem sftp internal-sftp
Match User user_name
ForceCommand internal-sftp
Root Cause
Red Hat Enteprise Linux 6 に同梱される openssh パッケージで利用できる Match
ディレクティブを使用して、sftp アクセスだけを付与するユーザーおよびグループに internal-sftp を割り当てることができます。passwd ファイルにはシェルが定義されているため、su は有効です。
Red Hat Enteprise Linux 5 以前のバージョンに同梱される Openssh パッケージでは Match
ディレクティブはサポートされないため、上述の要件は、openssh サーバーの 2 つのインスタンスを実行するたけで実現できます。
Diagnostic Steps
# sftp user_name@localhost
Connecting to localhost...
user_name@localhost's password:
sftp> quit
# ssh user_name@localhost
user_name@localhost's password:
Connection to localhost closed.
# su - user_name
$ whoami
user_name
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments