질문: su를 사용하지 않고 "두 번째" 로그인을 수행하거나 su 명령을 실행한 후 사용자에게 사용자 이름을 입력하도록 요구하는 방법을 아는 사람이 있습니까?
상황: Linux 서버에 로그인하는 여러 유형의 장치가 있습니다. 그런 다음 사용자는 메뉴의 옵션 중에서 선택하여 실행할 수 있습니다. 장치는 각 장치마다 다른 계정을 사용하여 시스템에 자동으로 로그인합니다. 이렇게 하는 이유는 장치에서 유지 관리할 설정 계정 수를 장치당 하나로 제한하기 위해서입니다. 우리가 사용할 수 있는 ssh 클라이언트는 모두 사용 중인 장치 계정에 자동 로그인을 연결합니다(Android의 Juice ssh 예 참조). 각 장치에서 애플리케이션당 40개 이상의 계정을 유지하는 것은 너무 많은 비용이 들었습니다.
목표: 사용자에게 장치 로그인(기본 로그인) 후 보조 로그인을 제공하여 사용자가 사용자 ID와 비밀번호를 입력할 수 있도록 합니다.
내 첫 번째 반응은 "su"였지만 "su"에는 명령에서 제공한 사용자 이름이 필요합니다. 그렇지 않으면 기본값은 루트 계정입니다. 단순화를 위해 "su - $username"과 같은 명령을 실행하기 전에 사용자 이름을 묻는 쉘 코드를 더 이상 작성하지 않으려고 합니다.
물론 로그인하는 모든 애플리케이션에는 이미 사용자 이름과 비밀번호가 필요하지만 셸 및 기타 홈브류 기능을 입력하려면 로그인을 통해 인증을 제공해야 합니다.
답변1
su - username
사용자가 어떤 식으로든 사용자 이름과 비밀번호를 입력해야 하는 경우 사용자가 이를 셸에 입력하게 하는 이유는 무엇입니까? 추가 문자는 5자만 입력하세요 :).
사용자가 이를 수락하지 않고 단일 스크립트를 작성하기에는 너무 게으른 경우 서버에 및 를 설치하고 다음 별칭을 입력하세요 telnet
.telnetd
/etc/bash.bashrc
alias x='telnet localhost'
고쳐 쓰다: telnetd 포트(tcp/23)에 대한 원격 액세스를 제한하는 것을 잊지 마십시오. 방화벽( iptables
) 또는 기존 TCP 래퍼( /etc/hosts.allow
, /etc/hosts.deny
- 호스트_액세스(5) 매뉴얼 페이지 참조) 를 설정할 수 있습니다 .