사용자 액세스를 /proc에서만 읽도록 제한

사용자 액세스를 /proc에서만 읽도록 제한

일부 베어본 시스템 모니터링을 설정하는 방법으로 SSH에 스크립트를 설정하고 몇 가지 기본 셸 명령을 실행하여 /proc. 이 작업을 위해 특정 사용자 계정을 생성하고 싶습니다. 해당 계정에는 다음 액세스 권한이 있어야 합니다.

  • SSH
  • 세게 때리다
  • 읽기 전용/proc

다른 게시물에서는 rssh 또는 Chroot를 언급했지만 이것이 최선의 방법입니까? 권한 없이 사용자를 생성하고 필요한 것만 추가하여 SSH가 아닌 파일 시스템 수준에서 제한을 적용하는 방법이 있어야 할 것 같습니다. 이것이 가능한가?

지금 모니터링하고 싶은 모든 시스템은 Ubuntu를 실행하고 있지만 특정 배포판에만 국한되고 싶지는 않습니다.

답변1

첫째, 권한입니다. 새 계정을 만들면( adduserDebian 기반 시스템에서는 어쨌든 다른 시스템은 약간 다를 수 있음) 동일한 이름을 가진 새 사용자와 새 그룹을 얻게 됩니다. 또한 사용자의 홈 디렉터리도 얻습니다. 이 새 사용자는 자신의 홈 디렉터리에 대한 사용자 및 그룹 읽기/쓰기 권한을 갖게 됩니다. 또한 누구나 읽을 수 있는 것으로 지정된 모든 항목에 액세스하고 누구나 쓸 수 있는 항목을 수정할 수 있습니다.

제가 아는 한 구체적으로 말씀드릴 수는 없습니다.들어오지 못하게 하다기존 POSIX 권한 시스템을 사용하는 전 세계 읽기/쓰기 권한의 사용자 또는 그룹 1개. 너~할 수 있다그러나 특정 거부 권한을 설정할 수 있는 고급 ACL(익숙한 경우 Windows의 NTFS와 유사)을 활성화합니다.


또 다른 방법은사용자 정의 로그인 셸, chsh명령을 사용하거나 수정하여 /etc/passwd. 로그인하면 사용자 입력이 표준 입력으로 리디렉션되고 표준 출력/오류가 터미널 출력으로 리디렉션되면서 이 '셸'이 실행됩니다. 이 '쉘'을 다음과 같이 설정할 수 있습니다.어느자신의 C 프로그램, bash/python/perl 스크립트 등을 포함하되 이에 국한되지 않는 시스템에서 실행 가능한 파일입니다.

이를 수행할 수 있는 몇 가지 방법이 있습니다. 로그인 쉘을 원하는 데이터를 단순히 출력하고 입력을 받지 않는 스크립트로 설정할 수 있습니다. 데이터를 출력하고 종료하고 SSH 세션을 닫습니다. 이는 유연하지는 않지만 가장 안전한 방법입니다.

또는 스크립트에서 일부 입력을 받아 해당 입력을 사용하여 인쇄할 내용을 결정할 수도 있습니다. 이를 수행하는 방법은 귀하에게 달려 있습니다. 스크립트를 사용하는 경우 명령문 또는 일련의 명령문 과 함께 bash사용할 수 있습니다 . 하지만 사용자로부터 직접 삭제되지 않은 명령을 실행하지 않도록 주의해야 합니다. 신뢰할 수 없는 입력을 수행하면 다른 보안 문제가 발생할 수 있습니다. 예를 들어, 의 입력을 받아 출력을 반환 할 수 있습니다 .readcaseifprocessesps -e

원하고 C에 능숙하다면 bash다른 디렉터리에 액세스할 수 없도록 자체를 수정할 수도 있습니다. 그러나 어떤 디렉터리를 제한하려고 시도하는 것보다 입력을 받지 않거나 허용된 특정 명령만 필터링하는 것이 훨씬 더 안전합니다. 접근할 수 있습니다. 복잡한 C 프로그램을 수정하는 것보다 빠른 쉘 스크립트를 작성하는 것이 더 쉽습니다.

답변2

/proc에 읽기 전용을 적용하려면 /proc의 sshfs 읽기 전용 복제본에 액세스하면 됩니다.

관련 정보