Đội ngũ đứng sau systemd muốn bạn áp dụng một cách thức mới để quản lý những thư mục nhà. “Cách thức mới” còn là một cách nói nhẹ nhàng, vì đây thực chất là kiểu thay đổi dạng thức của Linux. Dưới đây là tất cả những gì bạn cần biết về systemd-homed, chắc chắn sẽ có mặt trên bất kỳ bản phân phối Linux nào mà bạn đang dùng.
Tranh cãi là chuyện thường ngày
Khi systemd được giới thiệu vào năm 2010, cộng đồng Linux đã chia thành 3 luồng ý kiến. Một số cho đấy là một sự cải tiến, số khác lại nghĩ đây là một thiết kế thiếu sót không được tuân thủ theo triết lý Unix. Số còn lại thì chẳng quan tâm lắm.
Tranh cãi giữa hai phe rất nhiều, dữ dội và đôi khi có thể liên tưởng đến cuồng tín. Lennart Poettering, một kĩ sư phần mềm ở Red Hat và đồng phát triển systemd thậm chí còn bị đe dọa mạng sống.
Nhưng, trong vòng 8 tháng, Fedora đã sử dụng systemd. Tới cuối năm 2013, Arch, Debian, Manjaro và Ubuntu đều chuyển sang systemd. Tất nhiên, hào quang của mã nguồn mở chính là nếu bạn không thích thứ gì đó, bạn có thể rẽ nhánh mã nguồn và tự xây dựng một hệ thống riêng cho mình. Những bản phân phối mới như Devuan, một nhánh của Debian được tạo ra để tránh sử dụng hoàn toàn systemd.
$HOME Directory
Trong cấu trúc của Linux, mọi thứ bạn làm đều được đặt trong thư mục “/home”. Các file dữ liệu, hình ảnh, nhạc và toàn bộ những thư mục nhánh cá nhân đều được lưu trong một thư mục được đặt tên theo tài khoản người của bạn.
Những cài đặt của ứng dụng sẽ được lưu trong một thư mục kín “dot directories”. Nếu ký tự của file hay thư mục là một dấu chấm (.), nó sẽ bị ẩn đi. Vì những cài đặt này được lưu trữ cục bộ chứ không phải trong registry trung tâm và lý do nữa là sao lưu của home directory sẽ bao gồm cả những file và thư mục bị ẩn đi.
Khi bạn khôi phục bản sao lưu và kích hoạt một ứng dụng, như LibreOffice hoặc Thunderbird, nó sẽ tự tìm thư mục ẩn. Nó cũng tìm thấy các tài liệu, công cụ cài đặt và bất kỳ tùy chỉnh nào khác. Thunderbird tìm thấy thông tin tài khoản email của bạn. Bạn sẽ không mất thời gian cài từng ứng dụng một nữa.
Bạn có thể sử dụng lệnh ls và lựa chọn -a (all) để thấy tất cả file và thư mục ẩn. Đầu tiên, gõ lệnh sau:
ls
Lệnh này sẽ cho bạn các file và thư mục thường xuyên sử dụng. Tiếp theo, gõ các lệnh sau:
ls -a
Bây giờ, bạn có thể thấy các file hoặc thư mục bị ẩn đi.
Dữ liệu của bạn
Home directory không chỉ lưu trữ dữ liệu mà còn cả thông tin của bạn nữa. Ví dụ, trong thư mục đuôi “.ssh” lưu trữ thông tin về các kết nối từ xa mà bạn thực hiện trên các máy tính khác, mọi mật khẩu SSH mà bạn đã tạo.
Trên các đặc tính hệ thống khác, như tên tài khoản, mật khẩu, ID đặc biệt được được lưu trong những file như “/etc/passwd” và “/etc/shadow”.
Những thay đổi của systemd-homed
Mục đích của những thay đổi trong systemd-homed là cung cấp một home directory di động, đầy đủ với cả dữ liệu của bạn và định danh điện tử Linux được lưu trong trong đó. UID của bạn và tất cả các cơ chế xác thực đều chỉ được lưu trữ trong home directory.
Nhờ có thiết kế dạng “tất cả trứng trong một giỏ”, các home directory đều được mã hóa. Chúng sẽ tắt khóa tự động mỗi khi bạn đăng nhập và khóa lại khi đăng xuất. Phương pháp được ưa chuộng hơn đó là dùng Linux Unified Key Setup (LUKS) mã hóa ổ đĩa. Tuy nhiên, bạn cũng có thể sử dụng một số chương trình khác như fscrypt.
Lợi ích là gì?
Vì home directory trở thành gói lưu trữ an toàn cho dữ liệu của bạn, vậy nên nó có thể biến thành một thiết bị có thể chuyển đổi được. Ví dụ, bạn có thể sử dụng USB để chuyển nó sang máy tính ở công ty hoặc ở nhà, hoặc bất kỳ systemd-homed nào.
Quản lý $HOME mới
Dịch vụ systemd-homed được kiểm soát qua công cụ command-line homectl mới.
Có những lựa chọn tạo người dùng và các home directory, đặt dung lượng giới hạn cho từng người dùng. Bạn cũng có thể đặt mật khẩu, khóa tài khoản hoặc xóa tài khoản hoàn toàn.
Múi giờ và các thông tin địa điểm cũng có thể cài đặt cho từng người dùng. Bạn có thể chỉ định shell mặc định, hay kể cả đặt các biến môi trường nhất định mỗi khi ai đó đăng nhập.
Nếu nhìn trong thư mục “/home”, bạn sẽ thấy systemd-homed được quản lý theo hệ thống như “.homedir”, gắn vào tên người dùng:
Những giới hạn và vấn đề
systemd-homed chỉ sử dụng được các tài khoản người dùng là con người. Nó không thể xử lý các tài khoản với UID nhỏ hơn 1000. Nói cách khác, root, daemon, bin và nhiều thứ khác sẽ không được quản lý bằng cách sử dụng lược đồ mới.
Có một lỗi catch-22 cần được giải quyết. Như đã đề cập bên trên, home directory của người dùng sẽ tự mở khóa khi họ đăng nhập. Nhưng nếu ai đó truy cập vào máy tính từ xa thông qua SSH, những mật khẩu SSH trong home directory sẽ vẫn bị khóa khi người dùng đăng nhập.
Đây là vấn đề mà đội ngũ systemd-homed đã nhận ra, nhưng họ chưa tìm ra cách nào để khắc phục.
Ví dụ như ai đó chuyển home directory sang một máy mới. Nếu người khác đang sử dụng UID trên máy mới, anh này sẽ tự động được gán một UID mới. Tất nhiên, tất cả các tệp của anh ta sẽ phải được gán lại quyền sở hữu cho UID mới.