일반사용자 계정의 접근이 불가능 합니다. su: /bin/bash: 허가 거부됨

shari83의 이미지

안녕하세요. tomcat에서 한번 잘못된 스크립트가 돌아서 리눅스의 권한이 싹다 엉망진창으로 설정되었습니다.
레드헷 6.3 입니다.

# chmod 500 -R /* 수준으로 돌았다고 보시면 됩니다.

그리하여, 일단은 복구작업을 시작하였습니다. (당장 재설치가 불가능한 머신이라)

/bin
/usr
/var
/sbin
/lib
/lib64
/home
/tmp
/dev
/root
/etc
/proc

등등 거의다 복구했다고 여겨지는데 하위디렉토리까지 한번에 -R을 주고 하기는 여러가지 권한들이 서로 틀려서 하지 못했습니다.
그나마 생각나는만큼은 최대한 하위디렉토리까지 들어가서 하나하나 권한 복구를 시도했구요.

# su - userid 를 입력할경우

su: warning: cannot change directory to /home/userid: Permission denied
su: /bin/bash: 허가 거부됨

이라고 에러를 뿜어냅니다.

/bin/bash
/bin/su
/home/userid

전부 정상적으로 다른머신과 비교하여 권한설정을 하였습니다.

# ssh userid@127.0.0.1
userid
userpasswd

입력시에도 동일한 에러를 뱉어내고 접속을 거부합니다.

로컬에서의 접속도 거부합니다.

root계정으로의 접속은 문제가 없는 상태이구요.

useradd 를 통하여 새로운 계정을 생성해도 동일한 문제로 접근이 불가능합니다.

도대체 어느파일의 권한이 문제인지 감도 못잡겠습니다.

구글신의 도움을 받아서 최대한 시도해볼만한것들은 시도해보았다고 생각하는데 제가 빼놓은게 뭐가 있을까요?

의미없는 행동이지만

/etc/passwd 내에 userid의 권한을 0:0 으로 주면 (root) 정상접속 됩니다.

세이군의 이미지

/home/userid 디렉토리를 복구하려면 다음과 같이 진행하세요.

chmod -R 755 /home/userid
chown -R userid.userid /home/userid

이렇게 하고나면 userid로 로그인이 가능할 것입니다.

shari83의 이미지

다만. 이정도로 간단한 부분의 권한 문제가 아닙니다 ㅠㅠ

bushi의 이미지

login/auth 에 사용되는 각 PAM 모듈들, 그리고 그 설정 파일들을 확인하세요.

실험적인 방법으론... strace 나 lstrace 로 su 의 어느 과정에서 실패하는지 추적해보시고요.

rpm -Va 에 permission, ownership 이 바뀐 것까지 나오는지 모르겠는데... 시도해보세요.