많은 Unix 시스템에서 기본 umask가 002 또는 022인 이유는 무엇입니까? 기본적으로 안전하지 않은 것 같습니다.

많은 Unix 시스템에서 기본 umask가 002 또는 022인 이유는 무엇입니까? 기본적으로 안전하지 않은 것 같습니다.

저는 오랫동안 Linux와 Unix를 사용해 왔습니다. 내가 Unix를 처음 배웠을 때 많은 학생들이 있는 컴퓨터 교실에서 선생님은 ssh내가 다녔던 대학에서 제공하는 원격 워크스테이션에 로그인하는 데 그것을 사용할 수 있다고 말했습니다.

이 경우 워크스테이션보다 학생이 더 많았기 때문에 Unix가 다중 사용자 운영 체제라는 것을 즉시 알았습니다. (비둘기집의 원리.)

어쨌든 수년간 사용한 후에는 기본적으로 무엇(기본값 022는 사용자에 대한 쓰기 권한, 002는 사용자 그룹(예: 팀)에 대한 쓰기 권한)과 폴더 umask에 대한 사용자(및 신규 사용자)의 기본 권한이 무엇인지 알게 되었습니다. 파일.755644

하지만 좀 더 생각해 보면 이러한 다중 사용자 운영 체제에서는 기본 권한 설정이 안전하지 않은 것 같습니다. 데이터 공유가 더 쉬워지긴 하지만, 다른 사용자의 홈 디렉터리에 있는 파일을 쉽게 나열하고 복사할 수 있다는 점은 여전히 ​​이상합니다.

그렇다면 많은 Unix 시스템에서 umask 002 또는 022가 기본값인 이유는 무엇입니까? 역사적인 이유가 있나요?전통적인유닉스가 이 디자인을 선택했나요?

(내가 생각할 수 있는 한 가지 이유는 1970년에서 1980년 사이에 컴퓨터가 주로 과학 연구에 사용되었고 컴퓨팅 성능이 매우 제한적이었다는 것입니다. 그래서 초기 버전의 Unix가 나왔을 때 그들은 공유의 용이성을 위해 기본 권한을 설정해야 한다고 결정했습니다. 개인 정보 보호보다는)

답변1

유닉스는 원래 전문적인 환경에서 오랫동안 사용되어 왔습니다. 전문적인 환경에서는 동료들과 같은 주제에 대해 작업하는 것이 일반적입니다. 일부 파일은 기밀입니다. 예를 들어 내가 본 모든 이메일 프로그램은 소유자만 읽을 수 있는 파일을 생성합니다(모드 600). 그러나 기본적으로 파일을 공개적으로 읽을 수 있도록 설정하는 것이 합리적입니다. 대부분의 파일은 기밀이 아닙니다.

개인용 컴퓨터에서는 사용자가 한 명뿐이므로 이 질문은 의미가 없습니다.

자주 협업하지 않는 여러 사용자가 있을 것으로 예상되는 일부 시스템에서는 077을 umask로 사용합니다. 시스템 관리자가 결정합니다.

중앙 저장소와 네트워크 프로토콜을 통해 액세스되는 여러 작업 복사본(CVS, Subversion, git, mercurial 등)이 있는 버전 제어 시스템은 요즘 매우 일반적이므로 사용자가 동일한 파일에 직접 액세스하는 경우는 드뭅니다. 이것이 흔하지 않았던 1990년대까지는 사용자가 다른 사람이 작업해야 하는 파일에 읽기 권한을 부여하는 것을 잊어버리는 것이 일반적인 문제였습니다.

파일 실행을 잊어버린 경우에도 파일을 항상 비공개로 유지하려면 chmod해당 파일을 비공개 디렉터리에 저장하세요.

mkdir ~/private
chmod 700 ~/private

~/private권한이 무엇이든 관계없이 그 누구도(물론 루트 제외) 그 아래의 파일에 액세스할 수 없습니다 .

관련 정보