![Mac OS에서 이전 인증을 기억하도록 만드는 방법 내 실행 파일에서](https://linux55.com/image/139083/Mac%20OS%EC%97%90%EC%84%9C%20%EC%9D%B4%EC%A0%84%20%EC%9D%B8%EC%A6%9D%EC%9D%84%20%EA%B8%B0%EC%96%B5%ED%95%98%EB%8F%84%EB%A1%9D%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%EB%82%B4%20%EC%8B%A4%ED%96%89%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C.png)
나는 내 맥북의 시스템 시간을 수동으로 변경할 수 있는 작은 유닉스 실행 파일을 작성하고 있습니다. 물론 비밀번호가 필요하므로 system() 함수를 사용하여 터미널과 상호작용하고 echo 및 sudo를 사용하여 날짜를 변경합니다.
아래를 참조하세요:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
// Retrieve password:
printf("Enter Sudo Password:\n");
char *pswrd;
pswrd = getpass("Password: ");
char strA[512];
// Instruction to manually change the date:
char *strA1 = "echo \"";
char *strA2 = "\" | sudo -S date 020821002014";
// Stitch fields into one string:
strcat(strA, strA1);
strcat(strA, pswrd);
strcat(strA, strA2);
// Run string in Terminal:
system(strA);
}
테스트할 Unix 실행 파일을 만들 수 있습니다.
터미널 라인에서는 다음과 같습니다.Sudo date 020821002014
> 어쨌든 내 질문은 다음과 같습니다.
나는 실행 파일을 실행할 때마다 비밀번호를 입력하는 것을 좋아하지 않습니다. 관리자 암호를 한 번 입력하고 나중에 MacBook에서 실행 파일을 인식하도록 하여 실행 파일을 클릭하고 날짜를 쉽게 변경할 수 있도록 제안하는 사람이 있습니까?
아, 보통 비밀번호가 필요하기 때문에 날짜만 선택했는데, 이는 확실히 다른 관리자 지침으로 일반화될 수 있습니다.
내가 고려한 것들:
- 루트 수퍼유저를 사용하세요. 하지만 너무 과도한 것 같습니다. 다른 방법이 있어야 합니다.
- .c 코드에 비밀번호를 직접 작성하지만 이는 개략적으로 들리며 여러 사용자가 쉽게 확장할 수 없습니다.
답변1
또 다른 방법(비밀번호를 남겨두고 이를 다양한 프로세스 목록 및 진단 도구에 노출하지 않고)은 명령 실행 만 허용하는 NOPASSWD
항목(아마도 정확한 명령)을 구성 파일에 설정하는 것입니다 .sudo
date
date
fixmeyourusernamehere ALL=(root) NOPASSWD: /bin/date 020821002014
파일 맨 아래에 이를 설정하면 /etc/sudoers
( 로 편집하는 것이 더 좋지만 sudo visudo
) 사용자는 fixmeyourusernamehere
"sudo date 020821002014"를 실행할 수 있어야 합니다 without a password, but not any other commands (unless the
(sudo 구성을 통해 다른 명령을 사용할 수 있습니다).