Debian バスターサーバーに新しいローカルアカウントを設定しています。アカウント名は「自動アップロード」です。の項目は/etc/passwd
次のとおりです。
auto-upload:x:1060:1060:auto-upload:/home/auto-upload:/usr/sbin/rush
ご覧のとおり、私が使用しようとしています。「ラッシュ」制限シェル(バージョン1.8)このアカウントを使用してください。ラッシュの構成ファイルは次のとおりです。
debug 1
rule default
acct on
limits t10r20
umask 002
env - USER LOGNAME HOME PATH
fall-through
rule scp-to-debrepo
command ^scp (-v )?-t( --)? /srv/repos/?
set[0] /usr/bin/scp
match[$] ! /\.\.
transform[$] s,^/incoming/,,
chroot /srv/repos
chdir /srv/repos
そのアカウントにファイルを送信しようとすると、scp
サーバーログに次のものが表示されます。
2021-12-03T12:20:25.240111-08:00 myserver rush[22679]: debug level set to 1
2021-12-03T12:20:25.240755-08:00 myserver rush[22679]: Serving request "scp -t /srv/repos/basic/incoming" for auto-upload by rule default
2021-12-03T12:20:25.240971-08:00 myserver rush[22679]: Serving request "scp -t /srv/repos/basic/incoming" for auto-upload by rule scp-to-debrepo
2021-12-03T12:20:25.254718-08:00 myserver rush[22679]: invalid uid 1060
2021-12-03T12:20:30.257645-08:00 myserver sshd[22678]: Received disconnect from 192.168.225.188 port 45518:11: disconnected by user
「間違ったuid 1060」というメッセージが表示されるのはなぜですか、それを解決する方法は何ですか?
答え1
invalid uid
エラーが問題の実際の原因とどのように関連しているかはわかりませんでしたが、間違いなくchroot
オプションの設定が間違って発生しました。マンページで提供される構成例です。(そしてあなたの質問に言及されています)デフォルトでは動作しません
上記のようにchroot
緊急設定オプションのマニュアルページ- chrootディレクトリにバイナリが必要です。そうしないと、ユーザーはバイナリにまったくアクセスできません。
設定パラメータは、ディレクトリが次のように処理されるchroot /srv/repos
ことを意味するため、パスの下にscpバイナリが必要です。それ以外の場合は動作せず、エラーが発生します。/srv/repos
/
/srv/repos/usr/bin/scp
invalid uid
ルール:chroot 目次
ルートディレクトリをdirで指定されたルートディレクトリに変更します。このディレクトリは、「/」で始まるファイル名に使用されます。 ...
コマンドを実行するには、ディレクトリdirを正しく設定する必要があります。たとえば、次のルールは、ユーザーのホームディレクトリとしてルートを指定した環境でsftp-serverを実行することを定義します。
rule sftp match $program ~ "^.*/sftp-server" set [0] = "bin/sftp-server" chroot "~"
そのためには、各ユーザーのホームディレクトリには、sftp-serverのコピーを含むbinディレクトリが必要です。、これを実行するために必要なすべてのディレクトリとファイル、特にlib。