Linux : chsh 나 ypchsh가 작동하지 않습니다. 쉘을 변경할 수 있습니까? 다음이 제공됩니다. $ chsh -s /bin/bash chsh: can only

나는 구식 유닉스 사람이므로 Linux 기술이 약간 오래된 것입니다. 그러나 이것은 충분히 간단해야합니다.

루트가없는 Red Hat Linux 시스템 (회사 IT 부서에서 관리)에서 로그인 쉘을 변경할 수 있기를 원합니다. chsh를 실행하면 다음이 제공됩니다.

$ chsh -s /bin/bash
chsh: can only change local entries; use ypchsh instead.

그래서 대신 ypchsh를 실행했습니다.

$ ypchsh userid
ypchsh: can't find the master ypserver: Internal NIS error

무엇을 제공합니까? 다른 아이디어가 있습니까?



답변

  • NIS : ypchsh

  • LDAP :

    $ ldapmodify <<EOF
    dn: YOUR_DN
    changetype: modify
    replace: loginShell
    loginShell: /bin/bash
    -
    EOF
    

    ( YOUR_DN 형식 일 수 있습니다 uid=$USER,ou=people,dc=example,dc=org. 보려고 ldapwhoami합니다)

  • Hesiod : 시스템 관리자에게 문의하십시오.

  • Active Directory : 시스템 관리자에게 문의하십시오.


답변

로그인시 쉘을 변경하기 위해 하나의 해결 방법을 사용했습니다. bash.profile파일 에서 쉘을 변경하는 데 사용되는 것을 넣었습니다 .

.profile사용자의 홈 디렉토리에서 찾을 수 있습니다 ls -la.

귀하의 .profile파일은 다음과 같은 것을 할 수 있습니다 :

PATH=/usr/bin
export PATH
#Add this to go bash at login
bash
#end

답변

내 경우의 진정한 대답은 시스템 관리자 (IT)가 표준 구성을 잠그고 싶어하므로 요청해야한다는 것입니다. 그러나 프로세스에서 시스템이 동일한 SASL 오류 “ldap_sasl_interactive_bind_s : 알 수없는 인증 방법 (-6) 추가 정보를보고하는 경우를 대비하여 LDAP 구성을 파악하는 데 도움이되는 몇 가지 더 유용한 명령을 발견했습니다. : SASL (-4) : 사용 가능한 메커니즘이 없음 : “

시스템이 지원하는 SASL 인증 방법을 나열하십시오.

 ldapsearch -x -LLL -s "base" -b "" supportedSASLMechanisms

결과는 다음과 같습니다.

dn:
supportedSASLMechanisms: EXTERNAL
supportedSASLMechanisms: DIGEST-MD5

그런 다음 -Y 옵션을 사용하여 인증 방법을 LDAP 명령에 전달할 수 있습니다.

ldappasswd -Y DIGEST-MD5
ldapmodify -Y DIGEST-MD5

답변

또 다른 해결책은 단순히 YP 쉘을 무시하는 것입니다.

이 줄을 다음에 추가하십시오 /etc/passwd.

+<USERNAME>::::::/bin/bash

예:

+psalm33::::::/bin/bash

그리고 당신의 다음을 추가하십시오 /etc/nsswitch.conf:

passwd: compat

passwd_compat: nis

답변

최고 답변의 자격 증명을 보는 또 다른 방법은 ldapsearch -x

ldapsearch -x uid=$(whoami)