Linux에서 특정 계정에 대한 액세스를 제한하시겠습니까?

Linux에서 특정 계정에 대한 액세스를 제한하시겠습니까?

Redhat 컴퓨터에 서비스 계정을 만들었습니다. 이 계정의 목적은 내가 만든 bash 스크립트를 실행하는 것입니다.

bash 스크립트는 주로 cpuinfo, ifconfig, 네트워크 상태, 포트, 프로세스, 파일 권한 및 장치 상태 등과 같은 시스템 속성을 확인합니다.

이제 내 서비스 계정이 내가 만든 스크립트만 실행하도록 하려면 어떻게 해야 합니까? 계정이 아무 것도 하지 않아야 한다는 점을 제외하면, 누군가가 서비스 계정 자격 증명을 사용하여 내 서버에 로그인하더라도 스크립트 실행 외에는 아무것도 하지 않아야 합니다. ls, cp, mv, date 등과 같은 기본 명령입니다.

답변1

당신의 주제에 따라Linux에서 특정 계정에 대한 액세스를 제한하는 방법,

계정과 이에 대한 새 그룹을 생성합니다. 예를 들어 그룹 이름은 계정 이름과 동일할 수 있습니다. 결과적으로 해당 사용자 계정만 새 그룹에 있고 해당 그룹은 완전히 고유하며 시스템의 다른 계정에는 새 서비스 계정 이름 및 서비스 계정 그룹과 관련된 소유자 또는 그룹 권한이 없습니다. 그런 다음 해당 서비스 계정 및 서비스 그룹 이름이 소유하도록 bash 스크립트를 설정합니다. 또한 이 계정의 로그인 셸을 /bin/false또는 로 설정합니다 /bin/nologin.

/sbin/nologin과 /bin/false의 차이점은 무엇입니까?

하지만 기억하세요. 방금 스크립트 실행만을 목적으로 하는 새 계정을 만들었습니다.만들어진. 방금 보안 관점에서 별 가치가 없는 추가 단계를 수행했으며 이제 백그라운드에서 실행되는 이 새 서비스 계정을 무의식적으로 보는 사람은 머리를 긁적이며 이것이 도대체 무엇인지 궁금해할 것입니다.

더 나은 방법은 귀하의 스크립트이므로 귀하의 것으로 만드십시오.귀하는 유효한 사용자이며 일부 실행 중인 프로세스에 바인딩되면 모든 사람이 귀하의 계정을 인식할 것입니다.- 그런 다음 시스템 속성 확인에 대해 언급한 대부분의 내용에는 루트 권한이 필요하므로 스크립트의 setuid 비트를 사용하여 작업 수행 권한을 부여합니다.

SETUID 활용에 대해 언급했지만 현재 사용 중인 SETUID는 올바르지 않습니다.쉘 스크립트, 그 이유는 여기에서 설명할 수 있습니다. 쉘 스크립트에 setuid 설정 허용

그러나 필요한 작업을 수행하기 위해 프로그램을 작성하고 컴파일하고 해당 프로그램의 실행 파일을 소유한 경우 실행 파일에서 SETUID를 활용할 수 있습니다.

setuid 비트의 올바른 사용

관련 정보