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

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

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

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

이제 내가 만든 스크립트만 실행하도록 내 서비스 계정을 만드는 방법은 무엇입니까? 누군가가 서비스 계정 자격 증명으로 내 서버에 로그인하더라도 이 계정은 아무 작업도 수행할 수 없다는 것 외에는 할 수 없습니다. ls,cp,mv,date 등과 같은 기본 명령은 스크립트 실행을 제외합니다.

답변1

당신의 주제에 기초하여리눅스에서 계정 접근을 제한하는 방법,

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

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

그러나 스크립트 실행만을 목적으로 새 계정을 만들었다는 점을 명심하세요.만들어진. 보안 관점에서 볼 때 당신은 거의 가치가 없는 추가 단계를 수행했으며 이제 이 새 서비스 계정이 백그라운드에서 실행되는 것을 알지 못한 채 보는 사람은 머리를 긁적이며 그게 도대체 무엇인지 궁금해할 것입니다.

더 좋은 방법은 귀하의 스크립트이기 때문에 귀하가 소유하도록 유지하는 것입니다.귀하는 유효한 사용자이며 실행 중인 프로세스에 연결되면 모든 사람이 귀하의 계정을 인식할 것입니다.- 그런 다음 시스템 속성 확인을 위해 언급한 대부분의 내용에는 루트 권한이 필요하므로 스크립트에서 setuid 비트를 사용하여 작업을 수행할 수 있는 권한을 부여합니다.

나는 SETUID를 활용한다고 언급했는데 당신이 SETUID를 사용하고 있기 때문에 그것은 틀렸습니다.쉘 스크립트, 여기에서 설명할 수 있는 이유는 다음과 같습니다. 쉘 스크립트에서 setuid 허용

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

setuid 비트를 올바르게 사용하기

관련 정보