Nhóm phía sau systemd
muốn bạn áp dụng một cách mới để quản lý các thư mục chính. Gọi nó là một “cách mới” là nói một cách nhẹ nhàng — đây là một sự thay đổi mô hình thực sự cho Linux. Đây là mọi thứ bạn cần biết về systemd-homed
, có khả năng đến với một bản phân phối Linux gần bạn.
Không có người lạ để tranh cãi
Khi nào systemd
được giới thiệu vào năm 2010, cộng đồng Linux chia thành ba nhóm. Một số cho rằng đó là một cải tiến, và những người khác cho rằng đó là một thiết kế thiếu sót không tuân thủ triết lý Unix. Và một số không quan tâm theo cách này hay cách khác.
Phản ứng dữ dội từ những người chống đối rất lớn, nóng bỏng, và trong một số trường hợp, gần như là cuồng tín. Lennart Poettering, một kỹ sư phần mềm tại Red Hat và đồng phát triển systemd, thậm chí còn nhận được những lời đe dọa tử vong.
Các bài hát ủng hộ bạo lực đối với PoTtering đã được đăng trên YouTube và các trang web xuất hiện cố gắng ép buộc người dùng Linux tẩy chay systemd
. Người đồng phát triển của anh ấy, Kay Sievers, cũng nhận được nhiều lời chỉ trích và lạm dụng, nhưng chắc chắn Potering phải gánh chịu hậu quả của nó.
Tuy nhiên, trong vòng tám tháng, Fedora đã sử dụng systemd
. Vào cuối năm 2013, Arch, Debian, Manjaro và Ubuntu đều đã chuyển sang systemd
. Tất nhiên, vinh quang của mã nguồn mở là nếu bạn không thích thứ gì đó, bạn có thể phân nhánh mã nguồn và làm việc của riêng bạn với nó. Các bản phân phối mới — như Devuan, là một nhánh của Debian — được tạo ra chỉ để tránh sử dụng systemd
.
LIÊN QUAN: Cách quản lý dịch vụ Systemd trên hệ thống Linux
Thư mục $ HOME của bạn
Trong cấu trúc thư mục Linux, mọi thứ bạn làm đều nằm trong thư mục “/ home”. Các tệp dữ liệu, hình ảnh, nhạc và toàn bộ cây thư mục cá nhân của bạn được lưu trữ trong một thư mục được đặt tên theo tài khoản người dùng của bạn.
Cài đặt cho các ứng dụng của bạn được lưu trữ trong thư mục chính của bạn trong các “thư mục dấu chấm” ẩn. Nếu ký tự đầu tiên của tên tệp hoặc thư mục là dấu chấm (.), Ký tự đó sẽ bị ẩn. Vì các cài đặt này được lưu trữ cục bộ chứ không phải trong sổ đăng ký trung tâm — và vì bản sao lưu thư mục chính của bạn bao gồm các tệp và thư mục ẩn này — tất cả cài đặt của bạn cũng được sao lưu.
Khi bạn khôi phục bản sao lưu và kích hoạt một ứng dụng, chẳng hạn như LibreOffice hoặc Thunderbird, nó sẽ tìm thư mục ẩn của nó. Nó cũng tìm thấy các tùy chọn tài liệu của bạn, cài đặt thanh công cụ và bất kỳ tùy chỉnh nào khác. Thunderbird tìm thông tin tài khoản email và email của bạn. Bạn không phải trải qua quá trình cài đặt từ từ từng ứng dụng.
Bạn có thể dùng ls
với -a
(tất cả) tùy chọn để xem các tệp và thư mục ẩn. Đầu tiên, hãy nhập nội dung sau:
ls
Điều này cho bạn thấy các tệp và thư mục thông thường. Tiếp theo, nhập như sau:
ls -a
Bây giờ, bạn có thể thấy các tệp và thư mục ẩn.
Vì đây là phần quý giá nhất của quá trình cài đặt, nên thư mục “/ home” thường được gắn trong phân vùng riêng của nó hoặc trên một ổ cứng riêng. Bằng cách này, nếu có điều gì đó nghiêm trọng xảy ra với hệ điều hành hoặc phân vùng đang sử dụng, bạn có thể cài đặt lại bản phân phối Linux của mình hoặc hoán đổi sang một bản mới. Sau đó, bạn có thể chỉ cần gắn lại phân vùng chính hiện có của mình trên “/ home”.
LIÊN QUAN: Cấu trúc thư mục Linux, được giải thích
Dữ liệu về bạn
Thư mục chính của bạn không chỉ lưu trữ dữ liệu của bạn; nó cũng lưu trữ thông tin về bạn. bao gồm một số thuộc tính của danh tính kỹ thuật số của bạn. Ví dụ: thư mục “.ssh” của bạn lưu trữ thông tin về các kết nối từ xa bạn đã thực hiện với các máy tính khác và bất kỳ khóa SSH nào bạn đã tạo.
Các thuộc tính hệ thống khác, chẳng hạn như tên người dùng tài khoản, mật khẩu và ID người dùng duy nhất của bạn, được lưu trữ ở nơi khác trong các tệp như “/ etc / passwd” và “/ etc / shadow”. Bất kỳ ai cũng có thể đọc một số trong số này, nhưng những người khác chỉ có thể được đọc bởi những người có đặc quyền root.
Đây là nội dung của tệp “/ etc / passwd” trông giống như sau:
cat /etc/passwd
LIÊN QUAN: Cách thay đổi dữ liệu người dùng với chfn và usermod trên Linux
Các thay đổi theo chủ đề hệ thống
Mục đích của systemd-homed
thay đổi là cung cấp một thư mục chính hoàn toàn di động với cả dữ liệu của bạn và danh tính kỹ thuật số Linux được lưu trữ trong đó. UID của bạn và tất cả các cơ chế nhận dạng và xác thực khác sẽ chỉ được lưu trữ trong thư mục chính của bạn.
Do thiết kế “tất cả trứng trong một giỏ”, các thư mục gia đình được mã hóa. Chúng được giải mã tự động bất cứ khi nào bạn đăng nhập và được mã hóa lại bất cứ khi nào bạn đăng xuất. Phương pháp ưu tiên là sử dụng mã hóa đĩa Thiết lập Khóa Hợp nhất Linux (LUKS). Tuy nhiên, có sẵn các chương trình khác, chẳng hạn như fscrypt.
Bản ghi người dùng JavaScript Object Notation (JSON) lưu trữ tất cả thông tin nhận dạng của bạn trong một thư mục có tên “~ / .identity”. Nó được ký bằng mật mã bằng một khóa nằm ngoài tầm kiểm soát của bạn.
Thư mục chính của mỗi người được gắn trên một thiết bị lặp lại, tương tự như cách mà một snap
ứng dụng được gắn kết. Vì vậy, cây thư mục trong thư mục chính xuất hiện như một phần liền mạch của cây thư mục của hệ điều hành. Điểm gắn kết được mặc định là “/home/$USER.homedir” (“$ USER” được thay thế bằng tên tài khoản của người đó).
Những lợi ích là gì?
Bởi vì thư mục chính của bạn trở thành một gói bảo mật của tất cả dữ liệu của bạn, bạn thậm chí có thể có thư mục chính của mình trên một thiết bị di động. Ví dụ: bạn có thể sử dụng ổ USB để di chuyển nó giữa các máy cơ quan và máy gia đình, hoặc bất kỳ thiết bị nào khác systemd-homed
máy vi tính.
Đây là ý nghĩa của “một thư mục chính hoàn toàn di động”. Ông cho biết ngay cả khi bạn không muốn di chuyển thư mục chính của mình trên một thiết bị di động, điều này sẽ giúp nâng cấp và di chuyển dễ dàng hơn và tăng cường bảo mật.
Nó loại bỏ cái mà anh ấy gọi là “cơ sở dữ liệu sidecar”, nơi chứa các đoạn thông tin quan trọng về bạn mà Poettering nghĩ nên được tập trung. Các tệp “/ etc / passwd” và “/ etc / shadow” chứa thông tin xác thực và mật khẩu được băm. Tuy nhiên, chúng cũng chứa thông tin như trình bao mặc định của bạn, trường Giám sát hoạt động toàn diện General Electric (GECOS).
Nhà thơ cho biết siêu dữ liệu này nên được hợp lý hóa và lưu trữ trong các nhóm có ý nghĩa trong bản ghi JSON của mỗi người trong thư mục chính của họ.
Quản lý $ HOME mới của bạn
Các systemd-homed
dịch vụ được kiểm soát thông qua homectl
công cụ dòng lệnh.
Có các tùy chọn để tạo người dùng và thư mục chính và đặt giới hạn lưu trữ cho mỗi người dùng. Bạn cũng có thể đặt mật khẩu, khóa tài khoản của ai đó hoặc xóa hoàn toàn tài khoản. Người dùng có thể được kiểm tra và hồ sơ người dùng JSON của họ cũng có thể được đọc.
Múi giờ và các thông tin dựa trên vị trí khác cũng có thể được đặt cho từng người dùng. Bạn có thể chỉ định shell mặc định và thậm chí đặt các biến môi trường để chúng ở một trạng thái nhất định bất cứ khi nào ai đó đăng nhập.
Nếu bạn nhìn vào thư mục “/ home”, bạn sẽ thấy systemd-homed
các mục nhập được quản lý trông giống như sau, với “.homedir” được thêm vào tên người dùng:
/home/dave.homedir
Hãy nhớ rằng, đây chỉ là một điểm gắn kết. Vị trí của thư mục chính được mã hóa thực tế là ở nơi khác.
Hạn chế và vấn đề
systemd-homed
chỉ để sử dụng trên tài khoản người dùng của con người. Nó không thể xử lý các tài khoản người dùng có UID dưới 1.000. Nói cách khác, không thể quản lý root, daemon, bin, v.v. bằng lược đồ mới. Luôn luôn có nhu cầu về các cách tiêu chuẩn để quản lý người dùng. Vì thế, systemd-homed
không phải là một giải pháp toàn cầu.
Có một lỗ hổng 22 đã biết cần được giải quyết. Như chúng tôi đã đề cập trước đây, thư mục chính của một người được giải mã bất cứ khi nào người đó đăng nhập. Nhưng nếu ai đó đang truy cập từ xa vào máy tính qua SSH, thì không thể tham chiếu các khóa SSH trong thư mục chính vì thư mục chính vẫn được mã hóa cho đến khi đó người đăng nhập. Tất nhiên, một người cần các khóa SSH để xác thực trước khi người đó có thể đăng nhập.
Đây là một vấn đề được công nhận bởi systemd-homed
nhưng chúng tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về cách khắc phục sự cố này. Chúng tôi chắc chắn rằng họ sẽ đưa ra giải pháp; nó sẽ là một cú đánh ngoạn mục nếu họ không làm vậy.
Giả sử ai đó chuyển thư mục chính của anh ta sang một máy mới. Nếu UID đã được người khác sử dụng trên máy mới, người đó sẽ tự động được chỉ định một UID mới. Tất nhiên, tất cả các tệp của anh ấy sẽ phải được gán lại quyền sở hữu cho UID mới.
Hiện tại, điều này đang được xử lý bởi một ứng dụng đệ quy, tự động của chown -R
chỉ huy. Điều này có thể sẽ được xử lý khác trong tương lai khi một chương trình thanh lịch hơn được phát triển. Cách tiếp cận nặng tay này không tính đến các daemon và quy trình chạy như những người dùng khác.
LIÊN QUAN: Cách tạo và cài đặt khóa SSH từ Linux Shell
Khi nào điều này xảy ra?
Điều này đang xảy ra ngay bây giờ. Các thay đổi mã đã được gửi vào ngày 20 tháng 1 năm 2020 và chúng đã được đưa vào bản dựng 245 của systemd
, được xuất xưởng cùng với Ubuntu 20.04 vào tháng 4 năm 2020.
Để kiểm tra phiên bản bạn có, hãy nhập như sau:
systemd --version
Các homectl
Tuy nhiên, lệnh vẫn chưa xuất hiện. Ubuntu 20.04 sử dụng thư mục truyền thống / home và không sử dụng systemd-homed.
Tất nhiên, tùy thuộc vào từng bản phân phối để quyết định khi nào họ sẽ bao gồm và hỗ trợ systemd-homed
và homectl
.
Vì vậy, không cần bất kỳ ai phải chuyển sang chế độ ném cây và đốt đuốc đầy đủ. Bởi vì các phương pháp tiêu chuẩn để quản lý người dùng và thư mục chính sẽ vẫn còn, tất cả chúng ta sẽ vẫn có các lựa chọn.
LIÊN QUAN: Có gì mới trong Ubuntu 20.04 LTS “Focal Fossa”