web-dev-qa-db-ja.com

制限されたシェルでユーザーを作成する方法

私はこのような他の質問があることを知っています、そして、私はすでにそれらのいくつかを読みました。しかし、それは私の問題を解決しませんでした。 ホームディレクトリのみにsftpアクセスできるユーザーを作成し、このディレクトリの上のファイル/フォルダを表示できないようにします。また、このディレクトリでシェルコマンドを実行できる必要があります。(ノードプロセスの開始例)

これまでのところ、sftpアクセスは機能しています。ユーザーは自分のホームディレクトリに制限され、ファイルを編集/削除できます。

シンボリックリンクSudo ln -s /bin/bash /bin/rbashを作成しようとしましたが、file already existingと表示されるため、ユーザーシェルをSudo usermod -s /bin/rbash userに設定しましたが、ユーザーがshhを介してログインすると、Ubuntuのウェルカムテキストと/bin/rbash: No such file or directoryが表示されます。シェルをbashに設定した場合も同じことが起こります。

私のsshd_confは次のようになります。

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Match group sftp
        ChrootDirectory /home/userdirectory
        AllowTcpForwarding no
#       ForceCommand internal-sftp

また、/bin/bashから/home/userdirectory/bin/bashへのシンボリックリンクを作成しようとしましたが、ユーザーがssh経由でログインするとToo many symbolic linksと表示されます。

/bin/bash/home/userdirectory/bin/bashにコピーすると、no such file or directoryと表示されます。

3
omnomnom

/bin/bash/home/userdirectory/bin/bashにコピーして、これを解決しました。

その後、必要なライブラリをリストしました

ldd /bin/bash

それらをすべてchroot /home/userdirectoryの下の適切なディレクトリにコピーしました。

シェルでさらにコマンドを使用する場合は、/binから/home/userdirectory/binにコマンドをコピーし、ライブラリを追加する必要があります。

2
omnomnom