/etc/profile, ~/.bashrc 및 기타 구성 파일은 사용자에게 제공되지 않으며 루트에만 제공됩니다.

/etc/profile, ~/.bashrc 및 기타 구성 파일은 사용자에게 제공되지 않으며 루트에만 제공됩니다.

서버를 Debian 8에서 9로 업그레이드한 이후로 bash에서 이상한 동작이 발생했습니다. SSH를 통해 로그인하면 구성 파일이 로드되지 않고 다음 메시지가 나타납니다.

Linux myserver 4.9.0-7-amd64 #1 SMP Debian 4.9.110-1 (2018-07-05) x86_64
Last login: Mon Jul 16 22:37:12 2018 from x.x.x.x
-bash-4.4$

return -bash를 실행합니다 echo $0. 호출되는 시점을 확인하기 위해 /etc/profile, ~/.bashrc에 한 줄을 넣었 echo "sourcing ..."지만 해당 줄이 전혀 표시되지 않습니다. 그러나 파일을 수동으로 가져오면 텍스트가 표시되고 파일은 정상적으로 가져옵니다.

사용 추적 (여기에서 발견) 어떤 파일이 열려 있는지 확인하려면 모든 프로필이 열려 있는 것을 볼 수 있습니다. echo exit | strace bash -li |& less | grep '^open'

다음과 같은 결과가 나타납니다.

...
open("/etc/profile", O_RDONLY)          = 3
open("/etc/bash.bashrc", O_RDONLY)      = 3
open("/etc/profile.d/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/etc/profile.d/bash_completion.sh", O_RDONLY) = 3
...
open("/home/myuser/.bash_profile", O_RDONLY) = 3
open("/home/myuser/.bash_history", O_RDONLY) = 3
open("/home/myuser/.bash_history", O_RDONLY) = 3
...
open("/home/myuser/.bash_logout", O_RDONLY) = 3
open("/etc/bash.bash_logout", O_RDONLY) = -1 ENOENT (No such file or directory)
...

이 문제는 일반 사용자로 로그인할 때만 발생합니다. 일단 루트로 설정하면 구성 파일이 정상적으로 로드됩니다. 지금은 루트만이 이 파일에 액세스할 수 있을 것이라고 생각합니다. 그러나 제가 확인한 모든 것이 그렇게 되어야 하기 때문에 제 자신이 미치고 있습니다.

어떤 팁이나 아이디어라도 대단히 감사하겠습니다.

답변1

권한과 관련된 것으로 의심되는 솔루션을 찾았습니다. 어쨌든 setgid 비트는 /bin/bash에 설정되어 있습니다.

왼쪽의 시스템은 문제가 있는 시스템이고 오른쪽은 작동하는 시스템입니다. 해결책

문제를 해결하기 위해 다음 명령을 실행했습니다.

   sudo chmod g-s /bin/bash

관련 정보