sudo가 없는 재귀 chmod

sudo가 없는 재귀 chmod

실수로 다음 명령을 실행했습니다. ( chmod -R 741 /*요점을 잊어버렸습니다. 예). 그래서 내가 아는 다음 것은 내 터미널이 오류로 가득 차 있고 /mnt/ 디렉토리에서 중지하고 있다는 것입니다. 이 시점에서 나는 내가 얼마나 끔찍한 실수를 저질렀는지 깨달았습니다. 터미널이 얼어붙었습니다. 몇 가지 탐색 후 755홈 디렉토리 로 돌아갔고 이제 모든 것이 잘 작동하는 것 같습니다. 그런데 시스템의 어떤 부분을 망칠 수 있나요? 써본적이 없어서 sudo크게 망하진 않은거 같은데? 내 오류의 영향을 받지 않는 다른 사용자가 있는 경우 홈 디렉터리에 대한 기본 권한 중 최소한 일부를 복원할 수 있습니까?

답변1

다른 사람들이 지적했듯이 루트 액세스가 없으면 시스템 자체의 어떤 부분도 손상시킬 수 없습니다. 자신이 소유한 파일 및 디렉터리에 대한 권한을 변경하게 됩니다.

(대부분) 합리적인 값 집합으로 반환하는 방법은 다음과 같습니다.

chmod u=rwx,go= ~                                              # Ensure we can access our home directory
cd                                                             # Let's go...
find . -type d -exec chmod u=rwx,go=rx {} +                    # All directories
find . ! -type d -exec chmod u=rw,go=r {} +                    # Everything else
find .bash_history .config .gnupg .ssh -exec chmod go= {} +    # Lock out sensitive data

이렇게 하면 모든 디렉터리 권한이 설정되어 귀하가 해당 디렉터리를 읽고/쓰고/검색할 수 있고 다른 사람들도 해당 디렉터리를 읽고/검색할 수 있습니다. 다른 사람이 귀하의 디렉토리에 액세스하지 못하도록 하려면 go=rx로 변경하십시오.go=

그런 다음 사용자가 파일을 읽고 쓸 수 있고 다른 모든 사람이 읽을 수 있도록 모든 파일 권한을 설정합니다. 파일 내용을 비공개로 유지하려면 go=r으로 변경하세요.go=

마지막으로, 자신을 제외한 모든 사람의 민감한 디렉토리에 대한 모든 액세스가 제거됩니다.

실행 파일(프로그램, 스크립트)이 있는 경우 실행 비트를 다시 추가해야 합니다.

chmod a+x ~/some/important/program

이전과 마찬가지로 이는 모든 사람("모든 사람")에게 절차를 수행할 권리를 부여합니다. 자신에게만 해당 권한을 부여하려면 a+x다음으로 변경하세요.u+x

답변2

이 명령을 실행할 때 sudo시스템에 중요한 파일이나 디렉터리를 사용하지 않으므로 영향을 받지 않습니다.

그러나 모든 파일과 디렉터리에 대한 권한을 변경했을 수 있으며, 가지고 있는 내용에 따라 $HOME이것이 큰 문제가 될 수도 있고 그렇지 않을 수도 있습니다.

귀하는 자신과 "다른 사람"이 실행할 수 있도록 모든 파일을 설정했을 수 있습니다. 작은 파일 집합의 경우 일반 파일에 대한 권한을 다시 644( 디렉터리의 경우) 또는 기본 권한으로 수동으로 변경하는 것은 755매우 간단합니다 .

이 작업을 수행하기 위해 루트가 될 필요는 없습니다.

관련 정보