Systemd는 Linux 홈 디렉토리 작동 방식을 변경합니다.

systemd 뒤에 있는 팀은 홈 디렉토리를 관리하는 새로운 방법을 채택하기를 원합니다. 이것을 “새로운 방식”이라고 부르는 것은 가볍게 생각하는 것입니다. 이것은 Linux의 진정한 패러다임 전환입니다. 다음은 가까운 Linux 배포판에 출시될 예정인 systemd-homed에 대해 알아야 할 모든 것입니다.

논쟁의 여지가 없는 사람

언제 시스템 2010년에 도입된 Linux 커뮤니티는 세 진영으로 나뉩니다. 일부는 개선이라고 생각하고, 다른 일부는 설계를 준수하지 않은 결함이 있는 설계라고 생각했습니다. 유닉스 철학. 그리고 어떤 사람들은 어떤 식으로든 상관하지 않았습니다.

반대자들의 반발은 시끄럽고 격렬했으며 어떤 경우에는 거의 광신적이었습니다. 레나르트 포터링, 소프트웨어 엔지니어 빨간 모자 systemd의 공동 개발자이며 심지어 살해 위협을 받았습니다.

Poettering에 대한 폭력을 옹호하는 노래가 YouTube에 게시되었으며 웹 사이트에서 Linux 사용자에게 시스템 보이콧을 강요하는 것으로 나타났습니다. 그의 공동 개발자, 케이 시버스, 또한 비판과 학대를 받았지만 Poettering은 확실히 그것을 정면으로 견뎠습니다.

그러나 8개월 이내에 Fedora는 systemd를 사용하고 있었습니다. 2013년 말까지, 아치, 데비안, 만자로, 그리고 우분투 모두 systemd로 이동했습니다. 물론 오픈 소스의 영광은 마음에 들지 않는 부분이 있으면 소스 코드를 포크하여 자신만의 작업을 수행할 수 있다는 것입니다. 다음과 같은 새로운 배포판 데부안, 데비안의 포크였으며 systemd를 사용하지 않기 위해서만 만들어졌습니다.

$HOME 디렉토리

Linux 디렉토리 구조에서 수행하는 모든 작업은 “/home” 디렉토리에 있습니다. 데이터 파일, 이미지, 음악 및 전체 개인 디렉토리 트리는 사용자 계정의 이름을 따서 명명된 이 하나의 디렉토리에 저장됩니다.

애플리케이션에 대한 설정은 숨겨진 “도트 디렉토리”의 홈 폴더에 저장됩니다. 파일 또는 디렉토리 이름의 첫 번째 문자가 마침표(.)이면 숨겨집니다. 이러한 설정은 중앙 레지스트리가 아닌 로컬에 저장되고 홈 디렉토리 백업에는 이러한 숨겨진 파일과 폴더가 포함되기 때문에 모든 설정도 백업됩니다.

  Linux top 명령을 사용하는 방법(및 출력 이해)

백업을 복원하고 LibreOffice 또는 Thunderbird와 같은 응용 프로그램을 실행하면 숨겨진 디렉터리를 찾습니다. 또한 문서 기본 설정, 도구 모음 설정 및 기타 사용자 정의도 찾습니다. Thunderbird는 귀하의 이메일 계정 정보와 이메일을 찾습니다. 각 응용 프로그램을 천천히 설정하는 수고를 겪을 필요가 없습니다.

-a(all) 옵션과 함께 ls를 사용하여 숨겨진 파일 및 디렉토리를 볼 수 있습니다. 먼저 다음을 입력합니다.

ls

이것은 당신에게 일반 파일과 디렉토리를 보여줍니다. 다음으로 다음을 입력합니다.

ls -a

이제 숨김 파일과 디렉토리를 볼 수 있습니다.

설치에서 가장 중요한 부분이기 때문에 “/home” 디렉토리가 자체 파티션이나 별도의 하드 드라이브에 마운트되는 것이 일반적입니다. 이렇게 하면 운영 체제나 해당 파티션에 치명적인 일이 발생하면 Linux 배포판을 다시 설치하거나 새 배포판으로 교체할 수 있습니다. 그런 다음 “/home”에 기존 홈 파티션을 다시 마운트할 수 있습니다.

귀하에 대한 데이터

홈 디렉토리는 데이터만 저장하는 것이 아닙니다. 그것은 또한 당신에 대한 정보를 저장합니다. 귀하의 디지털 신원의 일부 속성을 포함합니다. 예를 들어, “.ssh” 디렉토리는 다른 컴퓨터에 대한 원격 연결 및 생성한 SSH 키에 대한 정보를 저장합니다.

계정 사용자 이름, 암호 및 고유한 사용자 ID와 같은 기타 시스템 속성은 “/etc/passwd” 및 “/etc/shadow”와 같은 파일의 다른 곳에 저장됩니다. 이 중 일부는 누구나 읽을 수 있지만 다른 일부는 루트 권한이 있는 사람만 읽을 수 있습니다.

“/etc/passwd” 파일의 내용은 다음과 같습니다.

cat /etc/passwd

systemd-homed 변경 사항

systemd-homed 변경의 목적은 데이터와 Linux 디지털 ID가 모두 저장된 완전히 이식 가능한 홈 디렉토리를 제공하는 것입니다. 귀하의 UID 및 기타 모든 식별 및 인증 메커니즘은 홈 디렉토리에만 저장됩니다.

“모든 계란을 한 바구니에 담는” 디자인으로 인해 홈 디렉토리가 암호화됩니다. 로그인할 때마다 자동으로 암호가 해독되고 로그아웃할 때마다 다시 암호화됩니다. 선호하는 방법은 다음을 사용하는 것입니다. Linux 통합 키 설정 (LUKS) 디스크 암호화. 그러나 다음과 같은 다른 계획이 있습니다. fscrypt.

  직장을 위한 4가지 최고의 Linux 배포판

자바스크립트 객체 표기법 (JSON) 사용자 레코드는 “~/.identity”라는 디렉토리에 모든 ID 정보를 저장합니다. 사용자가 제어할 수 없는 키로 암호로 서명됩니다.

각 개인의 홈 디렉토리는 스냅 애플리케이션이 마운트되는 방식과 유사하게 루프백 장치에 마운트됩니다. 이것은 홈 디렉토리 내의 디렉토리 트리가 운영 체제의 디렉토리 트리의 매끄러운 부분으로 나타나도록 하기 위한 것입니다. 마운트 지점의 기본값은 “/home/$USER.homedir”입니다(“$USER”는 사용자의 계정 이름으로 대체됨).

혜택은 무엇입니까?

홈 디렉토리는 모든 데이터를 안전하게 캡슐화하기 때문에 이동식 장치에 홈 디렉토리가 있을 수도 있습니다. 예를 들어 USB 드라이브를 사용하여 직장과 가정용 컴퓨터 또는 기타 시스템 홈 컴퓨터 간에 이동할 수 있습니다.

이것이 Poettering이 “완전히 이식 가능한 홈 디렉토리”를 의미하는 것입니다. 그는 휴대용 장치에서 홈 디렉토리를 옮기고 싶지 않더라도 업그레이드와 마이그레이션이 더 쉬워지고 보안이 강화될 것이라고 말했습니다.

Poettering이 중앙 집중화해야 한다고 생각하는 귀하에 대한 중요한 정보의 스니펫을 포함하는 “사이드카 데이터베이스”라고 부르는 것을 제거합니다. “/etc/passwd” 및 “/etc/shadow” 파일에는 인증 정보와 해시된 암호가 포함되어 있습니다. 그러나 기본 쉘과 같은 정보도 보유하고 있습니다. 제너럴일렉트릭 종합운영감독관 (GECOS) 필드.

포터링은 이렇게 말했다. 메타데이터 합리화하고 홈 디렉토리에 있는 각 사람의 JSON 레코드 내에서 의미 있는 그룹에 저장해야 합니다.

새로운 $HOME 관리

systemd-homed 서비스는 새로운 homectl을 통해 제어됩니다. 명령줄 도구.

사용자 및 홈 디렉토리를 생성하고 각 사용자에 대한 저장 제한을 설정하는 옵션이 있습니다. 또한 비밀번호를 설정하거나 다른 사람의 계정을 잠그거나 계정을 완전히 삭제할 수도 있습니다. 사용자를 검사할 수 있으며 JSON 사용자 레코드도 읽을 수 있습니다.

시간대 및 기타 위치 기반 정보도 각 사용자에 대해 설정할 수 있습니다. 기본 셸을 지정하고 누군가가 로그인할 때마다 특정 상태가 되도록 환경 변수를 설정할 수도 있습니다.

“/home” 디렉토리를 보면 사용자 이름에 “.homedir”이 추가된 다음과 같은 systemd-homed 관리 항목을 볼 수 있습니다.

/home/dave.homedir

이것은 단지 마운트 지점임을 기억하십시오. 실제 암호화된 홈 디렉토리의 위치는 다른 곳에 있습니다.

  게임을 위한 5가지 최고의 Linux 배포판

제한 사항 및 문제

systemd-homed는 인간의 사용자 계정에서만 사용할 수 있습니다. UID가 1,000 미만인 사용자 계정은 처리할 수 없습니다. 즉, root, daemon, bin 등은 새로운 방식으로 관리할 수 없습니다. 사용자를 관리하는 표준 방법이 항상 필요합니다. 따라서 systemd-homed는 글로벌 솔루션이 아닙니다.

알려진 것이 있다 캐치-22 해결해야 합니다. 앞에서 언급했듯이 개인의 홈 디렉토리는 로그인할 때마다 암호가 해독됩니다. 그러나 누군가 SSH를 통해 컴퓨터에 원격으로 액세스하는 경우 홈 디렉토리의 SSH 키가 참조될 수 없습니다. 사람이 로그인합니다. 물론 로그인하기 전에 인증을 위해 SSH 키가 필요합니다.

이것은 systemd-homed 팀에서 인식한 문제이지만 이에 대한 수정 사항에 대한 참조를 찾을 수 없습니다. 우리는 그들이 해결책을 내놓을 것이라고 확신합니다. 그들이하지 않는다면 그것은 엄청난 난관이 될 것입니다.

누군가 자신의 홈 디렉토리를 새 시스템으로 전송한다고 가정해 보겠습니다. 다른 사람이 새 컴퓨터에서 UID를 이미 사용 중인 경우 새 UID가 자동으로 할당됩니다. 물론 그의 모든 파일은 소유권을 새 UID에 다시 할당해야 합니다.

현재 이것은 재귀적이고 자동적인 응용 프로그램에 의해 처리되고 있습니다. chown -R 명령. 이것은 아마도 더 우아한 체계가 개발되면 미래에 다르게 처리될 것입니다. 이 무거운 접근 방식은 다른 사용자로 실행되는 데몬과 프로세스를 고려하지 않습니다.

언제 이런 일이 발생합니까?

이것은 지금 일어나고 있습니다. 코드 변경 사항은 2020년 1월 20일 제출, 그리고 그것들은 2020년 4월 Ubuntu 20.04와 함께 배송된 systemd의 빌드 245에 포함되었습니다.

사용 중인 버전을 확인하려면 다음을 입력하십시오.

systemd --version

그러나 homectl 명령은 아직 존재하지 않습니다. Ubuntu 20.04는 기존의 /home 디렉토리를 사용하고 systemd-homed를 사용하지 않습니다.

물론, systemd-homed 및 homectl을 포함하고 지원할 시기를 결정하는 것은 개별 배포판에 달려 있습니다.

따라서 완전히 갈퀴와 불타는 횃불 모드로 들어갈 필요가 없습니다. 사용자와 홈 디렉토리를 관리하는 표준 방법은 그대로 유지되기 때문에 우리 모두는 여전히 선택의 여지가 있습니다.