制限されたシェルラッシュ「無効なuid」エラー

制限されたシェルラッシュ「無効なuid」エラー

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/scpinvalid uid

ルール:chroot 目次

ルートディレクトリをdirで指定されたルートディレクトリに変更します。このディレクトリは、「/」で始まるファイル名に使用されます。 ...

コマンドを実行するには、ディレクトリdirを正しく設定する必要があります。たとえば、次のルールは、ユーザーのホームディレクトリとしてルートを指定した環境でsftp-serverを実行することを定義します。

rule sftp
  match $program ~ "^.*/sftp-server"
  set [0] = "bin/sftp-server"
  chroot "~"

そのためには、各ユーザーのホームディレクトリには、sftp-serverのコピーを含むbinディレクトリが必要です。、これを実行するために必要なすべてのディレクトリとファイル、特にlib。

関連情報