
저는 Linux 초보자이고 현재 진행 중인 동안 다음 명령을 실행했습니다 /root
.
find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \
특정 폴더에서 실행하려고 했는데 /root
.
그것이 컴퓨터의 모든 파일에 영향을 미쳤습니까?
답변1
충분한 권한이 있는 경우 find
명령은 모든 파일의 권한 비트를 반복적으로 변경하고 660
모든 디렉터리는 770
실행되는 디렉터리에서 시작합니다.
/root
당신이 ( root
의 홈 디렉토리) 에 있었고 당신이 로 실행 중이고 root
소유자가 user:group
이라고 가정할 때, 이는 일부 특정 프로그램이 다음의 권한에 대해 불평할 수 있는 root:root
것처럼 일부 특정 파일이나 디렉토리에 대해 불평할 수 있다는 점을 제외하면 큰 문제가 되지 않습니다. 키 기반 인증을 수행할 때 디렉터리 및 파일을 수동으로 수정해야 합니다.ssh
/root/.ssh
/root/.ssh/authorized_keys
또한, 맹목적으로 발견된 명령을 실행하지 마십시오. 처음에 명령이 무엇을 하는지 물어본 다음 실행해야 합니다.
답변2
해당 명령은 명령을 실행한 디렉터리 내에서 모든 디렉터리를 찾고 해당 권한을 수정합니다. 그런 다음 파일과 동일하게 수행됩니다. 이 경우 명령은 디렉터리의 권한을 변경하여 사용자는 전체 액세스 권한을 가지지만 다른 사용자는 액세스 권한을 갖지 못하게 합니다. 귀하가 시스템의 유일한 사용자라면 이는 중요하지 않습니다. 그런 다음 명령은 읽기 및 쓰기 액세스만 허용하고 실행은 허용하지 않도록 /root 내의 파일 권한을 변경합니다. 프로그램과 스크립트를 실행하는 데 몇 가지 문제가 있을 수 있지만 큰 영향을 미치는 것은 없습니다. 다른 사용자도 /root 내의 파일에 액세스할 수 없습니다.
내부에서 실행할 수 없는 스크립트나 프로그램을 찾으면 /root
파일에서 다음 명령을 실행하면 됩니다.
sudo chmod 775 filename
여기서 filename
실행하려는 파일의 이름으로 대체됩니다.
시스템의 다른 사용자가 있고 모든 사람이 디렉토리와 파일에서 읽을 수 있도록 하려면 명령을 다시 실행하되 다음과 같이 약간 변경하는 것이 좋습니다.
find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;
답변3
명령 뒤의 첫 번째 점은 검색하는 트리의 루트입니다 find
. 따라서 실행한 폴더의 파일과 그 아래의 전체 트리에 영향을 미쳤습니다.