var 디렉토리가 사용자별 디렉토리가 아닌 이유는 무엇입니까?

var 디렉토리가 사용자별 디렉토리가 아닌 이유는 무엇입니까?

저는 아직 UNIX 세계에 익숙하지 않기 때문에 제 질문이 어리석은 경우 언제든지 알려주십시오.

소위파일 시스템 계층 표준/var디렉터리에 로컬 패키지를 포함하되 이에 국한되지 않는 로그 및 캐시와 같은 데이터를 저장해야 한다고 선언합니다.

/var가변 데이터 파일을 포함합니다. 여기에는 스풀 디렉터리 및 파일, 관리 및 로깅 데이터, 임시 및 임시 파일이 포함됩니다.

...

/var설치할 수 있도록 여기에 지정됨/usr 읽기 전용입니다. 지금까지 들어온 모든 것/usr시스템 작동(설치 및 소프트웨어 유지 관리 제외) 중에 작성된 데이터는 다음 위치에 있어야 합니다./var

주로 로컬 다중 사용자 시스템에서 어떻게 작동하는지 알고 싶습니다. /var모든 사용자에 대해 캐시된 모든 데이터와 로그가 서로 공유되는 것처럼 보이는 일종의 시스템용 전역 디렉터리입니다. 잘못된 것으로 간주되지 않습니까? 내 말은 모든 로컬 사용자가 로그를 읽고 서로의 캐시된 데이터를 볼 수 있다는 것은 말할 것도 없고, 다른 사용자를 대신하여 시작된 프로그램(패키지)이 동일한 캐시를 사용한다는 것입니다. 이 개념을 이해하도록 도와주세요. 감사해요.

답변1

/var디렉토리는체계로깅 및 캐싱. 개별 사용자 로그(드물게) 및 캐시(자주)는 사용자의 홈 디렉터리에 저장됩니다.

답변2

대부분의 잠재적인 문제는 프린터와 같은 예를 통해 효과적으로 탐색할 수 있습니다. Alice는 Joe가 논문 인쇄를 마칠 때까지 lpr(1)이 차단되는 것을 실제로 원하지 않습니다. 시스템은 Alice가 파일을 인쇄하기 전에 파일을 삭제하는 것을 원하지 않습니다. 확실한 해결책은 종이에 안전하게 기록될 때까지 파일의 복사본을 스풀 디렉터리에 저장하는 것입니다.

전통적으로 인쇄 작업은 /usr/spool/lp에 대기합니다. 언급한 대로 문제는 이것이 /usr 읽기 전용 마운트를 효과적으로 비활성화한다는 것입니다. 이 문제는 모든 대기열(메일, uucp 등)과 모든 syslog로 확장된다는 점을 명심하세요. 이로 인해 /usr의 크기가 운영 체제 설치 크기와 완전히 독립적이라는 두 번째 문제가 발생합니다. 35MB 바이너리가 포함된 새 시스템을 구성한다고 가정해 보겠습니다. /usr 파티션은 얼마나 커야 합니까? 트릭 질문! 35MB에 로그를 유지하는 데 필요한 시간을 더하면 평균 이메일, 프린터, 뉴스리더 사용량의 배수가 됩니다.

모든 것을 /var로 옮기면 읽기 전용 문제가 깔끔하게 해결되고 악몽 관리에 상당한 진전이 있었습니다. 한편으로는 데이터가 사용하는 공간의 양을 쉽게 측정할 수 있습니다. 개별 파티션을 확장하거나 교체하는 것도 /usr/spool, /usr/log 등에 대해 걱정하는 것보다 훨씬 쉽습니다.

시스템 상태를 홈 디렉터리에 저장하면 복잡성만 가중됩니다. 단일 전역 디렉터리 대신 권한을 관리하는 수백 개의 개별 디렉터리가 있을 수 있습니다. 이 외에도 이러한 모든 디렉터리를 지속적으로 검색하는 오버헤드도 추가할 수 있습니다.

덜 분명한 것은 홈 디렉토리가 시스템에 특정한 것이 아니라는 것입니다. 네트워크 설치는 매우 일반적입니다. 파일을 인쇄할 때 홈 디렉터리가 설치된 모든 컴퓨터가 아닌 로그인한 위치에서만 파일을 인쇄하려는 경우가 있습니다. 파일 서버가 충돌하면 홈 디렉터리가 사라질 수 있으므로 가용성도 문제입니다. 또는 홈 디렉토리가 암호화되어 시스템이 이를 읽을 수 없는 경우 좀 더 현대적인 방식을 추가할 수도 있습니다.

역사적으로 글로벌 스토리지는 공개 정보의 캐시 역할을 해왔습니다. 뉴스 서버가 없는 경우 뉴스 네트워크 기사는 일괄적으로 다운로드되어 중앙 위치에 저장됩니다. 결국 여러 사용자에게 대규모 뉴스 피드를 복제할 이유가 없습니다. 중앙 집중식 대기열은 들어오는 정보에 대한 버퍼 역할도 합니다. 암호화된 홈 디렉토리에 메일을 보관하지 못할 수도 있는 메일 대기열을 생각해 보세요. (다시 사용 가능) 또는 휴가 중이어서 스팸을 많이 받았다면 어떨까요? 디스크 할당량이 초과되면 시스템에서 모든 메시지를 삭제해야 합니까, 아니면 메시지를 저장하고 나중에 정렬할 수 있도록 해야 합니까?

답변3

/var는 일종의 시스템 전역 디렉터리로, 모든 사용자의 캐시된 데이터와 로그가 모두 공유되는 것으로 보입니다.

이는 부분적으로 올바르지 않습니다. 모든 캐시와 로그가 아래에 저장되는 것은 아니며 /var여기에 저장된 콘텐츠가 반드시 모든 사용자에 의해 공유되는 것은 아닙니다. 애플리케이션 및/또는 운영 체제는 /var.

유일한 예외는 모든 사용자가 효과적으로 공유하고 쓸 수 있는 디렉터리입니다. /var/tmp여기에 콘텐츠를 저장하기로 결정한 사용자 및/또는 응용 프로그램은 Unix 파일 권한을 사용하여 생성한 하위 디렉터리와 파일을 계속 보호할 수 있습니다.

내 말은 모든 로컬 사용자가 로그를 읽고 서로의 캐시된 데이터를 볼 수 있다는 것은 말할 것도 없고, 다른 사용자를 대신하여 시작된 프로그램(패키지)이 동일한 캐시를 사용한다는 것입니다.

아니요, 사용자마다 일반적으로 서로 다른 캐시를 사용합니다. 어떤 경우에는 공개 캐싱이 유리합니다.

기밀/개인 데이터가 아래에 저장되면 /var해당 데이터는 애플리케이션에 의해 보호되므로 사용자는 다른 사람의 데이터를 볼 수 있는 권한이 없습니다. 예를 들어 루트가 아닌 사용자는 메일 스풀을 읽을 수 없습니다.

관련 정보