본문 바로가기

OS

Linux - passwd 명령 한줄로 처리

C코드에서 쉘 명령어를 사용하기 위해서 system() 함수를 사용한다.


이 때, passwd 같이 입력 프롬프트에서 대기하는 명령어는 사용이 어렵다.


해서 passwd를 프롬프트 없이 한줄로 처리하는 방법을 포스팅한다.


echo 'password' | /usr/bin/passwd --stdin 'username'


위와 같이 하면 한줄로 패스워드 변경이 가능하다.




#include <stdio.h>

int main(void){

    system("echo '123123' | /usr/bin/passwd --stdin 'test5'");

    return 0;
}


[root@hong tmp]# ./a.out
test5 사용자의 비밀 번호 변경 중
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.