systemd 서비스를 시작할 때 비밀번호를 묻는 메시지 표시

systemd 서비스를 시작할 때 비밀번호를 묻는 메시지 표시

이는 Arch Linux(및 사용되는 다른 배포판)와 관련이 있습니다 systemd. 부팅 시 TrueCrypt 파티션을 설치하고 싶습니다. 이전 버전의 경우 sysvinitvia라는 스크립트는 매우 간단합니다 rc.local.

나는 현재의 것을 납치했다아치 포럼 주제. 또 있다철사어디이 시스템 개발 스레드"해결책이 있다"고 말했지만 그것이 실제로 무엇인지는 나에게 불분명하며 OP는 마지막 게시물에서 자신의 목표를 달성할 수 없다고 지적했습니다.

그 모습부터이 사람이에 대해 작업 중이지만 비밀번호 입력 시 계속되는 시작 메시지를 끄는 방법을 찾고 있습니다. 나는 또한 그의 실제 .service문서를 공개해달라고 요청하는 글을 게시했습니다.

많은 검색에서 사람들은 성공했거나 가능하다고 언급하지만 해결책이 무엇인지 명시하지 않습니다.

서비스를 통해 명령줄에서 파티션 잠금을 해제하려고 최선을 다했지만 systemd(종료/다시 시작 시 자동으로 파티션을 마운트 해제할 수 있음) 로그인한 후에 이 작업을 수동으로 수행해야 했습니다. 시작 프로세스가 일시 중지되고 비밀번호를 묻기를 정말 바랍니다.

이것은 내 현재 스크립트입니다.

[Unit]
Description=Truecrypt Setup for vault
#DefaultDependencies=no
#Conflicts=umount.target
#Before=umount.target
#After=systemd-readahead-collect.service systemd-readahead-replay.service
#After=cryptsetup.target

[Service]
Type=oneshot
RemainAfterExit=yes
#StandardInput=tty-force
ExecStart=/bin/sh -c '/usr/bin/truecrypt -t --protect-hidden=no -k "" --filesystem=none --slot=1 -p `systemd-ask-password "Enter password for truecrypt volume: "` /dev/sda4'
ExecStop=/usr/bin/truecrypt --filesystem=none -d /dev/sda4

[Install]
WantedBy=multi-user.target

[Unit]어느 순간 거기에 넣어야 한다는 제안이 있어서 댓글 내용을 남겨두었는데 문제가 생겼습니다. 위의 내용은 시작/로그인 후에는 제대로 작동하는 것 같습니다. 하지만 중에는 작동하지 않습니다.

답변1

  • 래퍼 스크립트를 작성하여 넣으세요.ExecStart=
  • 래퍼 스크립트에서 를 사용하여 systemd-ask-password <PROMPT>표준 출력에서 ​​비밀번호를 읽고 필요한 방식으로 truecrypt에 입력합니다.
  • exec추가 bash 프로세스를 남기지 않도록 스크립트 끝에서 truecrypt를 수행하는 것을 잊지 마십시오.

이렇게 하면 즉시 비밀번호에 대한 시스템 쿼리를 수행하거나(systemctl을 사용하여 아파치를 시작한 경우) 소위 프록시 중 하나를 사용합니다(기본 프록시는 시스템 시작 중에 벽을 사용하거나 콘솔에서 직접 비밀번호를 요청합니다). 이것이 규정을 준수하기 위해 할 수 있는 최선의 방법입니다.

답변2

Unix StackExchange에서 다음 기사를 찾았습니다. rc.local 읽기가 키 입력을 에코하지 않습니다.
나는 당신이 다음을 사용하여 솔루션을 시도해 볼 수 있다고 생각합니다.

관련 정보