"Bạn đã thử sửa quyền chưa?" là một mẹo khắc phục sự cố Mac tiêu chuẩn đã lảng vảng trên mạng mãi mãi. Đối với nhiều người dùng, dường như điều này giải quyết nhiều loại vấn đề hiếm gặp. Nhưng khi OS X El Capitan (10.11) phát hành, tùy chọn Sửa quyền ổ đĩa bất ngờ biến mất khỏi ứng dụng Disk Utility.
Có nghĩa là Apple đã giải quyết các vấn đề liên quan đến quyền trong macOS, hay là chuyện khác? Chúng ta sẽ giải mã bí ẩn này và cho bạn thấy quyền đĩa hoạt động như thế nào trên Mac.
Cách quyền hoạt động trong macOS
Mọi mục trên Mac, dù là tệp hay thư mục, đều mang một tập quyền. Chúng kiểm soát tài khoản người dùng nào có thể truy cập và loại truy cập nào họ có. Quyền bao gồm ba hoạt động (đọc, ghi, thực thi), được thực hiện bởi ba loại người dùng (chủ sở hữu, nhóm, và mọi người).
Bạn có thể định nghĩa quy tắc đặc quyền riêng cho mỗi cấp sở hữu. Quyền, kết hợp với tài khoản và quyền sở hữu, cung cấp bảo mật, cho phép chia sẻ có kiểm soát, có thể đặt truy cập hạn chế hoặc không truy cập vào tệp, và duy trì toàn vẹn hệ thống.
Xem quyền hệ thống tệp
Bất kỳ người dùng nào cũng có thể xem quyền tệp và thư mục bằng cửa sổ Info của Finder hoặc Terminal. Trong Finder, nhấp chuột phải vào tệp hoặc thư mục và chọn Lấy thông tin từ menu ngữ cảnh. Nhấp vào tam giác Chia sẻ & Quyền để mở rộng quyền của mục.
Để xem thông tin này trong Terminal, gõ sau:
ls -l "đường dẫn tới tệp của bạn"
Ký tự sau dấu gạch ngang là chữ L thường và tiết lộ quyền sở hữu và quyền của tệp. Trên dòng lệnh, viết tắt cho quyền đọc là r, ghi là w, và thực thi là x.
Chủ sở hữu, Nhóm, và Mọi người
Hãy phân tích ba loại người dùng xuất hiện trong trường quyền Mac:
- Chủ sở hữu (Owner): Chủ sở hữu mục là người dùng tạo ra mục hoặc sao chép nó đến Mac. Người dùng thường sở hữu hầu hết các mục trong thư mục home.
- Nhóm (Group): Mọi mục cũng thuộc về một nhóm. Nhóm là tập hợp các tài khoản người dùng được gom lại để quyền có thể áp dụng cho tất cả thành viên.
- Mọi người (Everyone): Dùng cài đặt quyền này để định nghĩa quyền truy cập cho bất kỳ ai, bao gồm người dùng cục bộ, chia sẻ, và khách.
Đọc, Ghi, và Thực thi
Tiếp theo, hãy xem ba loại quyền này mà người dùng có thể có:
- Đọc (Read): Người dùng hoặc thành viên nhóm có thể mở tệp nhưng không thể lưu thay đổi. Nếu là thư mục, bạn có thể duyệt danh sách mục.
- Ghi (Write): Người dùng hoặc thành viên nhóm có thể sửa đổi hoặc xóa tệp. Đối với thư mục, bạn có thể thay đổi nội dung thư mục.
- Thực thi (Execute): Tệp có quyền thực thi có thể hoạt động như chương trình hoặc script. Trong trường hợp thư mục, thực thi có nghĩa là ai đó có thể liệt kê nội dung của nó miễn là quyền đọc cũng được bật.
Nhân tố gây ra vấn đề quyền
Trong OS X Yosemite và cũ hơn, Disk Utility có thể kiểm tra và sửa quyền trên một số tệp và thư mục. Tuy nhiên, thực tế, ứng dụng không sửa quyền. Nó chỉ đơn giản đặt lại chúng.
Hơn nữa, nói Disk Utility sửa quyền làm cho nó nghe như quyền có thể hỏng hoặc bị hư hỏng theo thời gian. Nhưng điều này không đúng. Quyền giữ nguyên cho đến khi có thứ gì hoặc ai đó đến và thay đổi chúng. Có nhiều lý do khiến điều này xảy ra:
- Bộ cài đặt ứng dụng (App Installers): Một số bộ cài thay đổi quyền trên các mục hiện có như một phần cần thiết của quá trình cài đặt, nhưng không trả chúng về cài đặt đúng.
- Lỗi người dùng (User error): Nếu bạn đang chỉnh sửa quyền trong Terminal hoặc qua ứng dụng bên thứ ba, sai lầm có thể dẫn đến vấn đề. Ví dụ, dùng sai lệnh chmod có thể thay đổi cài đặt quyền của một mục.
- Chia sẻ thư mục (Sharing a folder): Tất cả người dùng trên máy có quyền truy cập các mục trong thư mục Shared. Nếu bạn dùng thư mục này làm kho lưu trữ tệp tạm thời, vấn đề quyền không太可能 xảy ra. Nhưng nếu lưu mục để nhiều người dùng vĩnh viễn, vấn đề có thể nảy sinh.
- Quyền trên mục đã sao chép (Permissions on Copied Items): Khó dự đoán macOS sẽ gán quyền gì khi bạn sao chép tệp qua ổ ngoài, SMB, hoặc FTP. Bạn có thể cần dùng thử và sai để giải quyết vấn đề này.
Điều gì xảy ra sau OS X El Capitan?
Trong OS X El Capitan, Apple giới thiệu System Integrity Protection (SIP - Bảo vệ Toàn vẹn Hệ thống) cho tất cả tệp hệ thống, thư mục, thậm chí ứng dụng gói sẵn. Nó bảo vệ nội dung hệ thống khỏi sự can thiệp cố ý và vô tình đồng thời bảo toàn cài đặt quyền mặc định. SIP bảo vệ các thư mục sau: /System, /usr, /bin và /sbin.
Khi bạn cập nhật ứng dụng Apple hoặc nâng cấp macOS, trình cài sẽ kiểm tra và đặt lại quyền của bất kỳ mục nào nếu cần. Không ứng dụng bên thứ ba (bất kể hành vi tệ của nó) có thể thay đổi quyền trừ khi bạn tắt SIP. Chúng tôi đã đào sâu hơn về những gì SIP làm nếu bạn tò mò.
Còn thư mục User và Home thì sao?
System Integrity Protection không bảo vệ các mục trong thư mục /Library, ứng dụng trong /Applications, và mọi thứ trong thư mục Home của bạn. Thư mục ~/Library đặc biệt quan trọng, vì nó bao gồm tệp tùy chọn hệ thống cốt lõi, tùy chọn ứng dụng bên thứ ba, dữ liệu Keychain, và nhiều hơn nữa.
Nếu quyền bị thay đổi đối với bất kỳ tệp hoặc thư mục nào trong số này, bạn có thể mong đợi hàng loạt vấn đề kỳ lạ trên Mac. Các vấn đề có thể nảy sinh do quyền không đúng bao gồm:
- Thay đổi bạn làm đối với Finder, Cài đặt Hệ thống hoặc Dock không được lưu.
- Cửa sổ mở lần cuối khi bạn đăng xuất hoặc thoát ứng dụng mở lại sau khi đăng nhập.
- Bạn bị yêu cầu mật khẩu quản trị viên khi di chuyển một số mục trong thư mục Home.
- Bạn liên tục nhận thông báo "macOS cần sửa thư viện để chạy ứng dụng."
- Khi lưu tệp, bạn nhận thông báo tệp bị khóa hoặc không có quyền cần thiết. Điều này thường xảy ra với tài liệu Microsoft Office.
- Ứng dụng mặc định hoặc bên thứ ba có thể bị sập khi khởi chạy. Một số ứng dụng thậm chí không cập nhật.
- Firefox hoặc Chrome không tải tùy chọn và nói "Không thể tải hồ sơ của bạn."
- Ảnh và video nhập vào Photos không xuất hiện trong ứng dụng. Hoặc bạn nhận thông báo chọn thư viện Photos mặc định mỗi khi mở ứng dụng.
Đặt lại quyền cho thư mục Home
Từ thanh bên Finder, nhấp chuột phải vào thư mục Home và chọn Lấy thông tin. Nhấp tam giác thả xuống Chia sẻ & Quyền để xem quyền của nó.
Nhấp nút Khóa ở dưới cửa sổ và nhập mật khẩu quản trị viên. Sau đó chọn nút menu hành động và chọn Áp dụng cho các mục bên trong.
Nhấp OK để xác nhận hành động. Quyền cập nhật sẽ lan truyền qua thư mục Home của bạn.
Tiếp theo, mở ứng dụng Terminal và gõ sau:
diskutil resetUserPermissions / `id -u`
Tùy chọn này đặt lại quyền người dùng trên ổ gốc (/) về ID người dùng hiện tại. Nếu mọi thứ suôn sẻ, hãy khởi động lại Mac.
Nhưng nếu bạn nhận được lỗi 69841, hãy làm theo các bước sau:
Trên macOS High Sierra hoặc cũ hơn
- Mở Terminal và nhập sau:
chflags -R nouchg ~ - Sau đó nhập lệnh này thêm một lần:
diskutil resetUserPermissions / `id -u` - Khởi động lại Mac.
Trên macOS Mojave và mới hơn
Các bước cho Mojave và mới hơn giống như trên, nhưng bạn phải thêm Terminal vào Truy cập Đĩa đầy đủ (Full Disk Access) trước khi tiến hành. Để làm vậy, vào Cài đặt Hệ thống > Bảo mật & Riêng tư và nhấp tab Riêng tư. Nhấp biểu tượng Khóa và nhập mật khẩu quản trị viên để thay đổi.
Tiếp theo, chọn tab Truy cập Đĩa đầy đủ. Sau đó nhấp nút Cộng và thêm ứng dụng Terminal.
Sau khi làm xong, tiếp tục qua các lệnh Terminal nêu trên cho High Sierra và cũ hơn.
Hiểu về tài khoản người dùng Mac
Khi tùy chọn sửa quyền đĩa biến mất khỏi ứng dụng Disk Utility, chúng ta không nghĩ nhiều vì đó chưa bao giờ là bước khắc phục sự cố quan trọng. Nhưng nhìn thấy loại vấn đề bạn có thể gặp do quyền không đúng, rõ ràng việc đặt lại quyền cho thư mục Home là biện pháp cuối cùng khi các vấn đề này nảy sinh.
Ngạc nhiên thấy Apple không còn bao gồm tùy chọn này. Nhưng hãy nhớ, bạn chỉ nên áp dụng các bước này khi cần thiết. Hiểu về quyền là chủ đề phức tạp. Nếu bạn hiểu cách tài khoản người dùng macOS hoạt động, nó sẽ đơn giản hơn nhiều. Đọc hướng dẫn thiết lập nhiều tài khoản người dùng trên Mac để tìm hiểu thêm.