변경된 사용자 쉘에서 /etc/profile을 읽을 수 없습니다.

변경된 사용자 쉘에서 /etc/profile을 읽을 수 없습니다.

사용자가 시스템에 로그인할 때 사용자 정의 바이너리를 실행해야 하므로 사용자의 쉘을 /bin/binary에서 /etc/passwd로 변경했지만 변경된 사용자를 사용하여 로그인할 때 /etc/를 읽지 못하는 것을 관찰했습니다. 쉘 프로필 파일

따라서 /etc/profile은 사용자의 쉘이 /etc/passwd의 /bin/sh인 경우에만 읽혀집니다.

답변1

완전한 것은 아니고. /etc/profile사용자의 쉘이 이를 읽고 /etc/passwd(또는 LDAP 또는 기타 도구)를 기반으로 실행하는 방법을 알고 있으면 이를 읽습니다.

/bin/sh를 /etc/profile을 읽는 방법을 모르는 바이너리로 바꾸면 읽을 수 없습니다.

이 문제를 해결하는 한 가지 방법은 /etc/profile로 무엇을 해야 할지 알 수 있도록 바이너리를 수정하는 것입니다.

또 다른 접근 방식은 사용자의 셸을 로 설정하고 다른 모든 항목이 설정된 후 /bin/sh바이너리를 실행하도록 사용자 셸을 편집하는 것입니다 .$HOME/.profile

세 번째 방법은 사용자가 SSH 키로 로그인하고 키를 편집하여 시작 /bin/binary하고 다른 명령을 무시하도록 하는 것입니다. $HOME/.ssh/authorized_keys이는 사용자의 읽기 내용을 편집하여 수행 할 수 있습니다 .

 command="/bin/binary"  ssh-dss AA.....restofkeyhere....

관련 정보