데비안 버스터 서버에 새 로컬 계정을 설정하고 있습니다. 계정 이름은 "자동 업로드"입니다. 의 항목은 /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.