권한 변경으로 인한 로그인 에러

안녕하세요.

관리자와 루트의 권한 차이를 제대로 이해하고 못한 채 파일 및 폴더의 접근 권한을 멋대로 변경하다가

제 자신조차 접근이 막혀버리는 사태가 발생했습니다. 이곳 포럼은 물론 관련 글은 거의 다 읽어봤는데도

제 경우에는 영 해결이 안 되어 이렇게 여쭙고자 합니다.

상황은 $HOME/.dmrc 파일이 무시되고, 홈 디렉터리가 분명 있을텐데 없다고 나오고,

authorization file에도 문제가 생겼다고 하네요.

[code:2x3rd9kb]# chmod 644 ~/.dmrc

chown username ~/.dmrc

chmod 755 /home/username

chown username /home/username [/code:2x3rd9kb]

라든가 비슷한 패턴의 명령들을 여러 번 복원 모드의 터미널에서 루트 권한으로 시도해봤는데도

꼼짝도 안 합니다. 혹시 마땅한 솔루션을 아시는 분께서는 부디 알려주세요! (__)

[quote="polka":2dc58x9f]안녕하세요.

관리자와 루트의 권한 차이를 제대로 이해하고 못한 채 파일 및 폴더의 접근 권한을 멋대로 변경하다가

제 자신조차 접근이 막혀버리는 사태가 발생했습니다.[/quote:2dc58x9f]

파일 및 폴더의 접근 권한을 어떻게 바꾸셨는지…
자신의 접근이 막혔다는 것이, Alt+F2 이런 식으로 띠워서 로그인 해도 로그인이 안되는 것인지,
그래픽 모드에서만 로그인이 안되는 것인지
어떤 메시지가 나오는지 알아야 방법을 모색하죠.

[quote="protochaos":asym1crs][quote="polka":asym1crs]안녕하세요.

관리자와 루트의 권한 차이를 제대로 이해하고 못한 채 파일 및 폴더의 접근 권한을 멋대로 변경하다가

제 자신조차 접근이 막혀버리는 사태가 발생했습니다.[/quote:asym1crs]

파일 및 폴더의 접근 권한을 어떻게 바꾸셨는지…
자신의 접근이 막혔다는 것이, Alt+F2 이런 식으로 띠워서 로그인 해도 로그인이 안되는 것인지,
그래픽 모드에서만 로그인이 안되는 것인지
어떤 메시지가 나오는지 알아야 방법을 모색하죠.[/quote:asym1crs]

아, 그렇군요.
권한은 group, others를 none으로 바꿔버렸습니다.

그러자 x자가 뜨는 폴더가 여러 개 생기고 파일이나 응용 프로그램은

아예 불러오거나 읽을 수 없게 되어 재부팅을 했더니 문제가 발생한 겁니다.

접근이 막혔다는 건 본래 계정이 하나밖에 없었는데 해당 계정으로의 로그인이

여러 메세지가 뜨면서 되지 않는다는 걸 말합니다. Alt+F2는 반응이 전혀 없고,

그래픽 모드에서의 로그인은 메세지가 다음과 같이 세 개 뜨네요.

  1. "Home directory does not appear to exist.

Do you want to log in with the /(root) directory as your home directory?" <예를 누르면>

  1. "$HOME/.dmrc file is being ignored~" <확인을 누르면>

  2. ~could not write to your authorization file~하고 뜬 뒤에 확인을 누르면

다시 그래픽 모드로 돌아갑니다.

따라서 현재 상태에서 접속이 가능하고 루트로서 뭔가를 할 수 있는 건

복원 모드에서의 터미널 뿐인 것 같습니다.

세번째 메세지에서 authorization file라는 게 .Xauthority file과 연관이 있는 건가요?

에러 초기에 .Xauthority file이 없다는 둥 메세지가 떠서

[code:asym1crs] # sudo chown username:username ~/ .Xauthority [/code:asym1crs]

를 실행한 적이 있거든요…

[quote="polka":l0c7brpn]
아, 그렇군요.
권한은 group, others를 none으로 바꿔버렸습니다.

그러자 x자가 뜨는 폴더가 여러 개 생기고 파일이나 응용 프로그램은

아예 불러오거나 읽을 수 없게 되어 재부팅을 했더니 문제가 발생한 겁니다.

접근이 막혔다는 건 본래 계정이 하나밖에 없었는데 해당 계정으로의 로그인이

여러 메세지가 뜨면서 되지 않는다는 걸 말합니다. Alt+F2는 반응이 전혀 없고,

[/quote:l0c7brpn]
어떤 파일이나 디렉토리의 권한을 변경하신 건가요?
그리고, Alt+F2는 제가 잘못 입력했네요, Ctrl+Alt+F2 입니다.

정확히 육하원칙은 아니더라도, 그전에 한 일과 그 결과를 설명해 주셔야 원인을 파악하기 쉽습니다.
어디서 무엇을 어떻게 했는지는 알아야 되는 거죠.

[quote="protochaos":1ag4ll7w][quote="polka":1ag4ll7w]
아, 그렇군요.
권한은 group, others를 none으로 바꿔버렸습니다.

그러자 x자가 뜨는 폴더가 여러 개 생기고 파일이나 응용 프로그램은

아예 불러오거나 읽을 수 없게 되어 재부팅을 했더니 문제가 발생한 겁니다.

접근이 막혔다는 건 본래 계정이 하나밖에 없었는데 해당 계정으로의 로그인이

여러 메세지가 뜨면서 되지 않는다는 걸 말합니다. Alt+F2는 반응이 전혀 없고,

[/quote:1ag4ll7w]
어떤 파일이나 디렉토리의 권한을 변경하신 건가요?
그리고, Alt+F2는 제가 잘못 입력했네요, Ctrl+Alt+F2 입니다.

정확히 육하원칙은 아니더라도, 그전에 한 일과 그 결과를 설명해 주셔야 원인을 파악하기 쉽습니다.
어디서 무엇을 어떻게 했는지는 알아야 되는 거죠.[/quote:1ag4ll7w]

네. 관리자의 권한으로 파일 시스템에서 home 폴더, tmp 폴더 등의 퍼미션을 변경했습니다.

그리고 그 창을 닫아버리고 새로 여니 루트만 볼 수 있게 권한을 설정한 폴더들에는 x표시가 떴고

인터넷 바로가기는 0과 1로 이루어진 아이콘으로 바뀌어버렸습니다.

파일을 저장할 수도 없었고 터미널, 응용프로그램 등은 일절 불러올 수 없었습니다.

그 상태에서 재부팅을 하니 로그인 창에서 에러 메세지가 뜬 겁니다.

나머지는 이전 포스트에서 설명드린 바와 같습니다.

원인은 권한을 함부로 바꾸었기 때문으로 알고 있습니다만

[code:1ag4ll7w] # chown username /home/username

chmod 700 /home/username [/code:1ag4ll7w]

를 해도 전혀 소용이 없어서 달리 다른 해결책은 없을까 해서요.

새로 sudo 권한을 부여한 계정을 만들려고 해도 아예 visudo 커맨드가 안 듣네요.

/tmp 폴더는 sticky bit?이 설정되어 있어야 한다고 알고 있습니다.

[code:6yugif05]ll /tmp -d
drwxrwxrwt 10 root root 4.0K Jan 8 16:17 /tmp/[/code:6yugif05]

처음 사용자 디렉토리의 소유권을 바꾸실 때 정확히 어떤 명령을 쓰셨는지 궁금 합니다.
chown -R /home/dir은 dir 아래의 모든 파일과 디렉토리의 소유권을 바꾸고
chown /home/dir은 dir 디렉토리의 소유권만을 바꿉니다.

chown을 한 뒤에 문제가 생겼다면 chmod와는 상관이 없습니다. 현재 상황을 확실히 모른 채 이런 저런 명령어를 시도해 보는 것은 더 복잡한 상황을 만들 수 있습니다.

처음에 정확히 어디에 어떻게 명령을 입력하셨는지 찬찬히 생각해 보시고 움직이세요. 어떻게 했는지는 기억이 나지만 되돌리는 방법을 확실히 모르시면 다시 질문해 주세요.

[code:6yugif05]/tmp

sudo chmod 1777 /tmp
sudo chown root:root /tmp

/home/user1

sudo chown -R user1:user1 /home/user1[/code:6yugif05]

그냥 복사 붙여넣기 하지 마시고 잘 판단하세요.

음 chmod -R 이나 chown -R 로 디렉토리 안의 모든 것의 권한을 변경하셨는지,
아니면, 디렉토리 자체의 권한만 변경하셨는지 모르겠네요,
만일 홈디렉토리의 파일 전체의 권한이 변경되었다면 복구하는 것이 쉽지 않겠네요.

먼저 디렉토리의 권한은 실행 권한이 없으면 이동이 불가능 합니다.
리눅스 계정은 대부분, 사용자 계정과, 서비스계정으로 이루어져 있습니다.
예를 들어, 웹서버는 www-data라는 계정을 사용하지만, 이런 것으로는 기본적으로 로그인이 불가능합니다.
그러니까, 죽이 되던, 밥이 되던, 일단, 디렉토리에 실행 속성부터 부여해 보시죠.

sudo chmod -R a+X /home/사용자

그리고, 로그인을 해보시고, 안되면,
sudo find /home/사용자 -perm /u+x -exec /bin/chmod a+x {} ;
sudo find /home/사용자 -perm /u+r -exec /bin/chmod a+r {} ;
이렇게 하면, 사용자의 읽기/실행 권한이 그룹과 다른 사용자로 복사될 것입니다.
그리고 나서, 로그인을 해보세요.

만일 소유권도 그렇게 바꾸셨다면,
sudo find /home/사용자 -user 잘못된사용자 -exec /bin/chown 사용자 {} ;
이런 식으로 바꾸실 수 있습니다.

그리고, tmp 디렉토리의 경우 님 분 말씀 처럼 스티키비트(Restricted deletion flag)를 설정해 주셔야 합니다.
sudo chmod 1777 /tmp

사실 스티키비트는 파일에 해당하는 것으로, 파일을 스왑에 올려서 로딩속도를 올리는 것입니다만, 쓸일이 없습니다.
그리고, 같은 속성이 디렉토리에 부여될 때 의미가 있는 것으로 이때는 Restricted deletion flag라고 하여,
파일의 소유자만이 파일을 삭제나 이동할 수 있습니다.
777이 읽기/쓰기/실행의 모든 권한을 모든 사용자에게 부여하는 반면,
앞의 1이 스티키비트로 파일소유자외에는 삭제가 안되게 막는 것입니다.