문맥
나는 공개적으로 랩톱에서 작업하는 것을 좋아하지만 비밀번호 없이 sudo를 사용하는 것도 좋아합니다. 내가 지금 알고 있는 바에 따르면, NOPASSWD
내 파일에 있는 옵션을 사용하겠지만 sudoers
, 물론 누구나 원하는 대로 sudo를 사용할 수 있습니다.
중요한 아이디어내가 생각한 것잠금 프로그램이 있습니다. 그러나 나는 (1) 더 빠르고, (2) 비밀번호를 입력하는 것보다 쉽고, (3) 사람들이 내 콘텐츠에 액세스하거나 나쁜 짓을 하는 것에 대해 신경 쓰지 않기 때문에 플래시 드라이브를 사용하는 것을 선호합니다(Sudo에만 사용). : 노트북은 다른 사람들 주변에 노출될 것이고, 내 노트북에 있는 유일한 지적 재산은 아주 기본적인 Angular 프로젝트뿐입니다.
또한 나와 다른 사람들은 X 또는 Wayland 환경을 실행하지 않는 컴퓨터에서 sudo 남용을 방지하고 싶을 수도 있습니다. 현재 작업에는 최신 웹 브라우저가 필요하지만 X를 사용하지 않고 멀티플렉서만 사용할 기회가 있다면 그렇게 할 것입니다. 내 노트북은 약간 오래되고 느립니다.
질문
제가 하고 싶은 일은 키 파일을 플래시 드라이브에 넣고 노트북 앞에 있을 때 플래시 드라이브를 연결하고 노트북에서 자리를 비울 때 꺼내는 것입니다.
따라서 이 질문에서 파생된 세 가지 질문은 다음과 같습니다.
- sudo를 사용하여 이를 달성할 수 있습니까?
- 그렇지 않다면 이를 수행하는 프로그램을 작성할 수 있습니까?
- 그렇다면 이 프로그램을 작성하는 데 가장 적합한 언어는 무엇입니까?
(4. [아마도 관련 없는 질문] 이 패키지는 독립형일 수 있습니까, 아니면 sudo의 포크여야 합니까?)
노트
관련이 있는 경우 내 설정은 데스크톱 환경이 아닌 bspwm이 있는 Arch Linux입니다. 내 작업의 대부분은 urxvt/vim에서의 웹 개발과 Chrome으로 확인하는 것입니다.
답변1
해당 옵션 자체가 원하는 대로 작동하지 않는 이유를 잘 모르겠습니다 NOPASSWD
. 하지만 플래시 드라이브가 필요하도록 하려면 원하는 대로 거의 작동할 수 있는 것을 생각할 수 있습니다.
이는 해결 방법에 가깝지만 예를 들어 로컬 관리 사용자를 만들고 superuser
해당 사용자에게 비밀번호 없는 sudo
권한을 부여할 수 있습니다. 즉, 파일에 다음 줄을 추가합니다 /etc/sudoers
.
superuser ALL=(ALL) NOPASSWD:ALL
그런 다음 비밀번호 로그인을 비활성화하고 해당 사용자에 대한 키 전용 SSH 인증을 구성할 수 있습니다. 즉, passwd -l superuser
다음 스탠자를 실행하고 에 추가할 수 있습니다 /etc/ssh/sshd_config
.
Match user superuser
PasswordAuthentication no
그런 다음 이 사용자에 대한 SSH 키 쌍을 만듭니다. 공개 키를 플래시 드라이브에 추가 /home/superuser/.ssh/authorized_keys
하고 개인 키를 플래시 드라이브에 배치합니다. 그런 다음 계정을 사용하려면 superuser
플래시 드라이브를 삽입하고 superuser
개인 키를 사용하여 계정에 SSH로 접속하세요. 바라보다! 이제 sudo
사용자를 위한 비밀번호 없는 설정이 완료되었습니다. 물론 작업이 끝나면 셸 세션을 종료해야 합니다. 플래시 드라이브를 분리하는 것만으로는 충분하지 않습니다. 나는 당신이 또한 설정할 수 있다고 가정하지만사전 명령 후크개인 키를 확인하고 개인 키가 존재하지 않거나 유효하지 않은 경우 자동으로 종료됩니다.