실수로 chmod를 사용한 후 서버 권한 수정

실수로 chmod를 사용한 후 서버 권한 수정

메일 서버를 디버깅하는 동안 다음을 입력했습니다.

chmod -R 777 /

대신에:

chmod -R 777 .

그리고 금상첨화로, 뭔가를 고치기 위해 로그인하는 데 사용하는 스크립트를 변경했다는 사실을 잊어버렸기 때문에 이 모든 작업을 루트로 수행했습니다. 나는 대부분의 시스템에 대한 백업을 가지고 있지 않습니다(제가 아는 잘못된 선택입니다).

"chmod -R -777 /에서 복구" 및 "'chmod -R 777 /' 이후에 무엇을 해야 합니까?"라는 질문과 달리 나는 여전히 루트로 로그인되어 있고 전체 시스템이 변경되지 않았기 때문에 시스템을 어느 정도 제어할 수 있습니다. 나는 또한 손상을 최소화하기 위해 1초 이내에 명령을 종료합니다. 그 이후로 나는 인터넷에서 서버의 연결을 물리적으로 끊었습니다.

패키지 관리자의 데이터를 기반으로 파일 시스템의 권한을 복원하면 스크립트로 문제를 해결할 수 있다고 생각하지만 이 작업을 어떻게 수행해야 할지 모르겠습니다. 이것이 가능하지 않은 경우 OS를 다시 설치하기 위해 서버의 데이터를 어떻게 저장합니까?

파일 누락으로 인한 잠재적인 위험을 알고 있지만 그럼에도 불구하고 복구를 통해 다시 설치하는 것을 선호합니다.

이것은 현재 출력입니다 ls -la /.

drwxrwxrwx  22 root root  4096 Sep  7  2016 .
drwxrwxrwx  22 root root  4096 Sep  7  2016 ..
drwxr-xr-x   2 root root  4096 May 18 07:55 bin
drwxr-xr-x   3 root root  4096 Sep 21 07:53 boot
drwxr-xr-x  19 root root  3180 Sep 11 20:54 dev
drwxrwxrwx  92 root root  4096 Aug 23 07:50 etc
drwxr-xr-x   4 root root  4096 May 23  2016 home
lrwxrwxrwx   1 root root    31 Feb 24  2016 initrd.img -> /boot/initrd.img-3.16.0-4-amd64
drwxrwxrwx  18 root root  4096 Feb 24  2016 lib
drwxr-xr-x   2 root root  4096 Jun 20 07:00 lib64
drwx------   2 root root 16384 May 19  2016 lost+found
drwxrwxrwx   2 root root  4096 May  5  2015 media
drwxr-xr-x   2 root root  4096 May  5  2015 mnt
drwxr-xr-x   3 root root  4096 May 28  2016 opt
dr-xr-xr-x 148 root root     0 Sep  3 21:55 proc
drwxrwxrwx  10 root root  4096 Aug 19 17:58 root
drwxr-xr-x  22 root root   800 Sep 21 17:09 run
drwxrwxrwx   3 root root  4096 Jun 20 07:00 sbin
drwxr-xr-x   4 root root  4096 Sep 20 23:18 sftp
dr-xr-xr-x  13 root root     0 Sep  3 21:55 sys
drwxrwxrwx   8 root root  4096 Sep 21 17:17 tmp
drwxrwxrwx  11 root root  4096 Feb 24  2016 usr
drwxr-xr-x  14 root root  4096 Jun 25 06:21 var
lrwxrwxrwx   1 root root    27 Feb 24  2016 vmlinuz -> boot/vmlinuz-3.16.0-4-amd64

방금 공황 상태에서 데비안이 아닌 우분투 포럼을 클릭했습니다 ... 그게 메일 서버를 수정하는 방법이 아니라는 것을 알고 있습니다. 무엇이 고장 났는지 확인하는 것은 해킹 된 엉성한 수정이었습니다.

iv 지금 올바른 포럼에 이것을 다시 게시했습니다.

답변1

권한 오류 수정

루트 디렉터리 권한을 기본값으로 복원하는 방법은 무엇입니까?

규칙 #1: 명령줄이 불편하다면 루트로 어떤 명령도 실행하지 마세요.

chmod -R 777 /루트로 실행시스템이 손상될 것입니다.

rm -rf /루트로 실행재앙을 초래할 것이다!.

루트로 실행한 경우 chmod -R 777 /다음 단계에 따라 다시 복원하세요.

1 단계:

다음 스크립트를 복사하여 콘솔에 붙여넣어 수정 권한 스크립트를 생성하세요.

echo '
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 \
/media /mnt /opt /run /sbin /srv /usr /var

chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root

' > fixpermission

chmod +x fixpermission

./fixpermission

위의 명령은 fixpermission이라는 스크립트를 생성하고 ./fixpermission아직 호출되지 않은 경우 이를 실행합니다.

2 단계:

stat -c '%A %a %n' /*적절한 디렉터리와 복원된 권한을 표시하려면 실행하세요 .

예: 디렉터리 권한 구조는 다음과 유사해야 합니다.

root@plab:~# stat -c '%A %a %n' /*
drwxr-xr-x 755 /bin
drwxr-xr-x 755 /boot
drwxr-xr-x 755 /dev
drwxr-xr-x 755 /etc
drwxr-xr-x 755 /home
lrwxrwxrwx 777 /initrd.img
lrwxrwxrwx 777 /initrd.img.old
drwxr-xr-x 755 /lib
drwxr-xr-x 755 /lib64
drwx------ 700 /lost+found
drwxr-xr-x 755 /media
drwxr-xr-x 755 /mnt
drwxr-xr-x 755 /opt
dr-xr-xr-x 555 /proc
drwx------ 700 /root
drwxr-xr-x 755 /run
drwxr-xr-x 755 /sbin
drwxr-xr-x 755 /srv
dr-xr-xr-x 555 /sys
drwxrwxrwt 1777 /tmp
drwxr-xr-x 755 /usr
drwxr-xr-x 755 /var
lrwxrwxrwx 777 /vmlinuz
lrwxrwxrwx 777 /vmlinuz.old

3단계:

시스템을 재부팅하세요!

도움이 되었기를 바랍니다.

관련 정보