자신의 사용자에게 권한을 부여하는 보다 안전한 방법은 무엇입니까?

자신의 사용자에게 권한을 부여하는 보다 안전한 방법은 무엇입니까?

chmod 777때로는 완전히 액세스하고, 읽고 쓸 수 있는 디렉토리를 갖기 위해 이렇게 할 수 있다는 것을 알고 있습니다 . 그러나 보통 나는 한 가지를 더 선호합니다 sudo chown {myusername} {directory}.

분명히 이는 chmod 777누구에게나 완전히 공개되는 디렉토리를 남기지만 sudo chown ...내 사용 관행이 실제로 와 비교하여 내 디렉토리에 대한 보호를 제공합니까 chmod 777?

답변1

chmod 777'누구나 무엇이든 할 수 있다'는 뜻이다. 거의 모든 것 - 시간 및 권한 변경과 같은 일부 작업은 소유자에게 예약되어 있습니다. 그러나 누구나 파일을 생성, 삭제 또는 덮어쓸 수 있으므로 보호 기능이 없습니다.

나는 당신이 달리고 있다면 chmod 777, 당신이 잘못하고 있다는 것을 거의 보장할 수 있습니다. 파일을 공유하고 서로의 파일을 편집하려면 개정 관리 시스템을 설정하고 변경 사항을 푸시하여 공유하세요. 특정 파일만 다른 사람이 사용할 수 있도록 하려면 디렉터리를 만들고 ~/pub거기에 자신의 파일을 넣으세요.

답변2

chmod 777 foo귀하의 상자에 액세스할 수 있는 사람은 누구나 파일에 액세스할 수 있습니다 foo.

chown user foo이 사용자에게만 파일에 대한 액세스 권한을 부여하십시오 foo.

이 두 가지 방법을 결합하면 상자에 액세스할 수 있는 사람은 누구나 파일에 액세스할 수 있습니다.

답변3

대부분의 경우 권한을 777로 변경하는 것보다 디렉터리의 소유권을 가져오는 것이 더 안전합니다.

기본 권한

많은 시스템의 기본 umask는 022입니다. 디렉터리가 생성되면 일반적으로 777에서 umask를 빼서 새 디렉터리에 대한 권한을 계산합니다. 즉, 대부분의 시스템에서 기본 디렉터리 권한은 755입니다. 즉, 기본적으로 디렉터리의 권한 소유자만 해당 디렉터리에 있는 파일을 생성하고 삭제할 수 있습니다. 하지만 다른 사용자가 디렉터리의 파일에 쓰는 것을 막지는 못합니다. 이 보호는 파일의 권한에 의해 제공됩니다. 사용자가 디렉토리에 대한 쓰기 액세스 권한을 갖고 있지만 해당 디렉토리의 파일에 대한 액세스 권한이 없는 경우 간단히 파일을 삭제하고 교체할 수 있다는 점을 알아야 합니다.

답변

요약하자면, 권한을 777로 변경하는 대신 디렉터리의 소유권을 가져오면 다른 사용자가 디렉터리의 파일을 추가, 삭제 또는 바꾸는 것을 방지할 수 있지만 사용자가 디렉터리의 파일을 읽는 것을 방지할 수는 없습니다.

디렉터리 권한에 대한 참고 사항

디렉토리 권한은 파일 권한에 비해 약간 이상하고 직관적이지 않습니다. 실행 가능 권한( 1)을 사용하면 파일의 inode를 포함하여 디렉터리에 있는 파일에 대한 메타데이터를 검색할 수 있습니다. 즉, 디렉터리에 대한 실행 권한이 없으면 파일 경로만 아는 것만으로는 해당 디렉터리의 파일을 읽을 수 없습니다. 읽기 권한( 4)을 사용하면 디렉터리에 있는 파일 목록을 볼 수 있지만 메타데이터는 볼 수 없습니다. 쓰기 권한( 2)을 사용하면 디렉터리에 파일을 생성하고 삭제할 수 있습니다.

관련 정보