웹 애플리케이션 등을 안전하게 실행하는 데 사용할 수 있는 사용자를 어떻게 생성해야 합니까?

웹 애플리케이션 등을 안전하게 실행하는 데 사용할 수 있는 사용자를 어떻게 생성해야 합니까?

저는 SSH를 통해 이 작업을 수행하고 있습니다.

사용자를 생성하고 싶습니다.

  • SSH를 통해 접속할 수 없습니다

  • 사칭할 수 있다su

  • 비밀번호 없음(이것이 좋은 습관입니까?)

  • 웹 애플리케이션 실행 가능(특히 pm2(nodejs) 사용)

이것이 우리가 직장에서 수행하는 방법입니다. SSH(pem 키)를 통해 서버에 액세스한 다음 사용자에게 su를 전송 nodejs하고 애플리케이션을 실행합니다. 여기에서 몇 가지 답변을 읽었지만 일반적으로 "사용자를 생성했는데 작동하지 않았습니다. 무엇이 잘못되었나요?"라는 형식입니다.

사용자를 생성했지만 adduser nodejs --system --group비밀번호를 모릅니다. 어쩌면 그 명령에 뭔가를 추가해야 할 수도 있습니다.

운영체제는 Mint/Ubuntu 입니다.

답변1

기본적으로 대부분의 Linux 배포판은 새 사용자에 대한 비밀번호를 설정하지 않고 대신 비밀번호 인증이 비활성화된 비밀번호를 생성합니다. 계정이 외부적으로 비활성화된 것으로 표시되지는 않습니다. 메시지는 계속 표시됩니다. 하지만 비밀번호가 없으면 작동하지 않습니다.

비밀번호를 설정하면 비밀번호를 아는 사람이 SSH를 통해 접속할 수 있습니다. 그러나 시스템 sudo에 패키지가 설치되어 있고 계정이 해당 wheel그룹에 있거나 계정이 해당 사용자로 전환되도록 sudo가 특별히 구성된 경우 해당 계정으로 전환하기 위해 비밀번호를 설정할 필요가 없습니다.

sudo가 해당 사용자로 변경하고 모든 명령을 실행할 수 있도록 구성되었다고 가정하면,

sudo -u nodejs -H -s -i

귀하의 자격 증명(비밀번호로 가정)을 입력하라는 메시지가 표시되며, 성공적으로 입력하면 대상 사용자의 로그인 셸을 사용하여 계정에 로그인됩니다. (-i는 쉘을 대상 사용자의 로그인 쉘로 만드는 것을 의미합니다.)

sudo를 사용하여 해당 사용자로 전환하고 명령을 실행할 수 있도록 계정이 구성되지 않은 경우 구성 방법은 별도의 더 큰 질문입니다. 하지만 이 질문을 하기 전에 sudo 및 sudoers 맨페이지( man sudo sudoers) 를 읽어보세요.

관련 정보