How IT

언제든지 물어보세요.

컨텐츠로 건너뛰기
  • 홈
  • Unix
  • Apple
  • Java
  • Android
  • C#
  • C++

원격으로 만 스크립트를 실행할 수있는 사용자 추가 디렉토리에서 실행 권한이없는

한 가지만 할 수있는 사용자를 만들고 싶습니다 .ssh를 통해 하나의 특정 폴더에있는 스크립트 (및 스크립트에 대한 명령 줄 인수)를 지정하고 (이 질문의 목적으로 호출하십시오 /local/remote_only_scripts/foo) 해당 스크립트를 실행하십시오 출력을 반환합니다.

사용자가 할 수 있기를 원하지 않는 것들의 예를 분명히하기 위해 :

  • 계정에 로컬로 로그인하십시오. 로그인 응용 프로그램은 /bin/login입니다. /local/remote_only_scripts/foo폴더 의 스크립트 가 아니므로 사용자가 호출해서는 안됩니다.
  • 계정에 원격으로 로그인하십시오. 다시 로그인하십시오 (ssh?라고하는 것입니다)는 관련 폴더의 스크립트가 아닙니다.
  • 디렉토리의 내용을 나열하십시오. ls에 /bin/ls있습니다. 적절한 디렉토리에있는 스크립트가 아닙니다.
  • 해당 디렉토리에서 파일을 편집하십시오. emacs, vi, gedit 대부분의 다른 편집자는 해당 디렉토리의 스크립트가 아닙니다.
  • 해당 디렉토리의 파일 내용을보십시오.
  • 해당 디렉토리에서 실행 권한이없는 파일을 실행하십시오.

이들은 사용자가 할 수없는 많은 다른 행동 이있는 예 입니다. 조치를 고려할 때 “이것이 스크립트로 수행 /local/remote_only_scripts/foo됩니까?” 대답이 없으면 사용자가 할 수 없어야합니다. 대답이 예이면 사용자가 그렇게 할 수 있어야합니다.

추신 : “사용자 추가”를 통해 내가 의미하는 바를 명확히하겠습니다. ssh 하위 시스템에 사용자를 추가한다는 의미는 아닙니다. 오히려 컴퓨터 시스템에 사용자를 추가하는 것을 의미합니다. 예를 들어, 데비안 안정적인 시스템을 운영하고 있습니다. 주소는 www.hg.bar.com입니다. kuser, users-admin 또는 useradd 또는 유사한 방법을 통해 사용자를 hg_guest라고 부르고 싶습니다. hg_guest는 로컬로 로그인하거나 위의 목록에있는 작업을 수행 할 수 없습니다. hg_guest가 할 수있는 모든 것은 “원격으로”스크립트를 실행하는 것입니다. 나는 그가 ssh를 통해 그렇게 할 수 있어야한다고 말했지만 지금 그것에 대해 생각하면 아마도 ssh를 사용하도록 허용하면 로컬로 로그인 할 수 있으므로 다른 메커니즘이 필요할 수 있습니다.



답변

certified_keys 파일 에는 명령 옵션이 있습니다. 이 옵션은 원하는 것을 정확하게 수행하는 것 같습니다.

chroot 또는 제한된 쉘이 아닙니다. ssh를 통해 해당 명령 만 실행할 수 있습니다. 귀하의 예를 들면 다음과 같습니다.

ssh somehost /local/remote_only_scripts/foo

이 authorized_keys 파일의 경우 :

command="/local/remote_only_scripts/foo",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ...public key...

사용자가 로컬로 로그인 할 수 없도록하려면 많은 방법이 있습니다. 다음 중 하나를 수행 할 수 있습니다.

  • 쉘을 / bin / false 로 설정하기 만하면됩니다 ( / bin / true 가 필요할 수도 있습니다) ssh에 유효한 로그인이 필요하기 때문에 )
  • 암호를 잠그십시오. 참조 passwd -l

편집 : 더 많은 제한 옵션을 추가하고 로컬 액세스를 제거하는 방법을 명확히하십시오.


답변

이것을 사용자의 로그인 쉘로 사용해보십시오.

#!/bin/sh
basedir=/local/remote_only_scripts
while read -p '$ ' prog args; do
    if [ ! -x "$basedir/$prog" ]; then
        echo "Invalid program: $prog"
    else
        case "$prog $args" in
            *\**|*\?*|*\^*|*\&*|*\<*|*\>*|*\|*|*\;*|*\`*|*\[*|*\]*)
                echo "Invalid character in command";;
            *)
                eval "$prog $args"
                echo;; # force a trailing newline after the program
        esac
    fi
done

authorized_keysCoren의 답변과 같이 파일에 명시 적으로 추가 하고 싶을 것입니다 . 그러나 ‘… / foo; 여기에 프로그램과 함께. 즉 같은 SSH에서 명령을 방지 할 수 있습니다 sftp, scp하고 ssh hostname command.


답변

오프 기회에 그들은 하나의 스크립트에만 액세스하면됩니다. 이것은 저에게 정말 효과적입니다. 사용자를 추가하고 기본 쉘을 스크립트 경로로 변경하십시오. 그들이 ssh를 통해 연결하면 스크립트를 실행하고 세션을 닫습니다.

server1:/ # useradd -s "/local/remote_only_scripts/foo/script.sh" hg_guest

server1:/ # grep hg_guest /etc/passwd

hg_guest : x : 2002 : 100 :: / home / hg_guest : /local/remote_only_scripts/foo/script.sh


답변


이 글은 Unix 카테고리에 분류되었고 account-restrictions, ssh 태그가 있으며 소장 마님에 의해 2022-02-06에 작성되었습니다.

글 네비게이션

← 이 비디오를 다운로드하는 방법 다운로드를 시작할 때마다 1MB 미만으로 Cisco Catalyst 2960 스위치-공기 흐름을 되돌릴 수 있습니까? 곧 새로운 데이터 →

태그

  • android
  • apt
  • bash
  • boot
  • c#
  • c++
  • code-golf
  • command-line
  • debian
  • firefox
  • git
  • google-chrome
  • hard-drive
  • html
  • java
  • keyboard
  • linux
  • mac
  • macos
  • math
  • memory
  • microsoft-excel
  • mysql
  • networking
  • performance
  • permissions
  • python
  • r
  • regression
  • security
  • shell
  • sql-server
  • ssh
  • string
  • terminal
  • ubuntu
  • unity
  • usb
  • vim
  • virtualbox
  • windows
  • windows-7
  • windows-8
  • windows-10
  • windows-xp

최신 글

  • Windows에서 파티션 크기를 조정 한 후 APFS 파티션이 손실 됨 00 80
  • App Store에서 El Capitan을 강제로 다시 다운로드 하시겠습니까? 업데이트 된 플래시 드라이브 설치 프로그램을 빌드하기
  • 기존 시스템에 부팅 드라이브로 SSD 추가 백업에 큰 관심이 없습니다. 내가 걱정하는 것은이
  • geoJSON featureCollection에 properties 요소를 갖는 것이 유효합니까?
  • 추세를 식별하기 위해 신호 처리 원리를 신중하게 사용 매우 시끄러운 장기 데이터에서 추세를

카테고리

  • Android
  • Apple
  • C#
  • C++
  • cooking
  • cs
  • cstheory
  • diy
  • drupal
  • electronics
  • emacs
  • Gis
  • Git
  • Html
  • Java
  • Javascript
  • magento
  • photo
  • Python
  • raspberrypi
  • scicomp
  • Server
  • Software
  • Sql
  • stats
  • Superuser
  • ubuntu
  • Unix
  • vi
  • webapps
  • webmasters
  • wordpress
  • 게임개발
  • 코딩
Proudly powered by WordPress
Exit mobile version