Linux 서비스는 로그인 시 사용자 입력을 수집합니다.

Linux 서비스는 로그인 시 사용자 입력을 수집합니다.

특정 조건에 따라 로그인 셸 프롬프트를 사용할 수 있기 전에 사용자에게 일부 텍스트를 묻는 시스템 서비스를 정의하고 싶습니다.

다음은 내가 원하는 유형의 예입니다. 사용자가 다른 어떤 것보다 먼저 로그인하고 사용자가 무엇이든 입력할 수 있기 전에 사용자에게 선호하는 이름을 묻는 스크립트를 실행합니다. 이름은 홈 디렉터리의 파일에 저장됩니다. 그러나 이름 파일이 이미 존재하는 경우 스크립트는 아무 작업도 수행하지 않습니다.

로그인한 사용자의 모습은 다음과 같습니다.

my-server login: joe-user
password: <user types in password>
System notice: joe-user we need to gather some information.
----
Please type in your preferred first name: 

프롬프트와 파일 쓰기를 수행하는 스크립트는 간단하지만, 사용자가 로그인하자마자 스크립트가 선택되도록 서비스를 어떻게 작성합니까? 이는 사용자가 사용하는 쉘에 관계없이 작동합니다.

답변1

100% 일치하지는 않지만 충분히 유사해 보입니다. systemd-ask-password디스크에 저장하고 싶지 않은 시스템 서비스에 암호를 제공하는 방법인 도구가 있습니다.

예를 들어, 이러한 질문에 답변할 수 있는 상담원은 여러 명입니다 systemd-tty-ask-password-agent.

하지만 참고하세요: 이러한 쿼리에 응답하려면 권한이 있는 사용자가 필요합니다(시스템 전체 쿼리이고 어떤 사용자에게도 바인딩되지 않기 때문).

권한이 없는 특정 사용자에게 무언가를 물어보고 싶다면 로그인 시 실행되는 자체 작성 스크립트(예: 에서 호출 $HOME/.profile)가 그러한 쿼리를 수행하는 데 더 적합할 수 있습니다.

관련 정보