Linux에 로그인 할 때 비밀번호 문자 표시


11

Linux 상자에 연결된 장거리 무선 직렬 터미널 (누군가 궁금한 경우 XBees 쌍 포함)을 설정하고 있습니다. 그것은 잘되고 있지만 때로는 키 입력이 이루어지지 않습니다. 이것은 일반적으로 관리가 가능합니다. 부족한 부분을보고 다시칩니다. 그러나 Linux에는 아무것도 표시하지 않기 때문에 암호를 입력하기 위해 몇 번 시도해야 할 때 좋지 않습니다. 이미 pwfeedbacksudoers 파일에 줄을 추가 했지만 로그인 프롬프트에 피드백을 표시하고 싶습니다. Linux 컴퓨터는 데비안을 실행하고 있습니다 (실제로 내 홈 네트워크의 대부분을 관리하는 라즈베리 파이입니다).

비밀번호를 입력 할 때 tty 로그인 프롬프트를 변경하여 피드백을 줄 수 있습니까?


이 대신에 :

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password:

나는 이것을 원한다 :

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password: **********

이 답변을 참조하십시오 : unix.stackexchange.com/a/141272/27616
Olivier Dulac

나는 그런 변화가 현재 구성 수준에서 가능하다고 생각하지 않습니다. 터미널 로그인은 암호 프롬프트를 위해 / bin / login을 호출하는 agetty에 의해 관리됩니다. 로그인 소스 코드를 올바르게 변경하고 다시 컴파일 한 후 수정 된 버전을 사용하면 설명 된 효과를 얻을 수 있지만 일부 ANSI C 지식이 필요합니다.
DevilaN

답변:


1

이 작업을 수행하는 구성에 대해 잘 모르고 있습니다. 실제로 원하는 경우 다음과 같이하면됩니다.
1-glibc 패키지의 getpass.c 파일에서 getpass 함수 수정.
2-libc- (VERSION) .so 빌드
3-원본 lib / (아키텍처) /libc.so 백업 (libc- (VERSION) .so.bak로 이름 바꾸기
4)-새 파일을 lib / (아키텍처)로 이동 ) / 5-ldconfig를 실행하여 캐시 업데이트
예를 들어 비밀번호를 읽는 코드를 다음과 같은 코드로 바꿀 수 있습니다.

  /* Read the password. */
  // nread = __getline (&buf, &bufsize, in);

  int index=0;
  char c;
  while ( (c=getchar())!= EOF ){
     putch('*');
     buf[i]=c;
     ++i;
  }
  buf[i]='\0';
  nread=i;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.