Các cờ được macOS sử dụng để giới hạn cách một tệp có thể được thay đổi. Chúng được đặt khác với quyền và chạy theo cấu trúc song song cùng với các lệnh như chown
và chmod
. Bạn sẽ sử dụng chflags
để thay đổi cờ, cũng như ls
để xem cờ. Unix chạy một hệ thống tương tự, nhưng có nhiều tùy chọn hơn được gọi là "thuộc tính" thay vì cờ.
Xem Đặt cờ trên macOS
Trong Terminal, bạn có thể sử dụng ls
cờ để xem bất kỳ cờ nào còn tồn tại.
ls -lO ~/Librarydrwx------@ 88 alexander staff hidden 2992 Jan 25 14:01 Library
Nếu không có cờ nào được đặt cho một tệp hoặc thư mục, một dấu gạch ngang sẽ được hiển thị thay thế.
ls -lO ~/Library/Caches drwx------+ 234 alexander staff - 7956 Jan 25 13:03 Caches
Có thể xóa các cờ đã đặt bằng cách sử dụng nghịch đảo của chúng, như được mô tả bên dưới.
Đặt và xóa cờ trên macOS
Cờ thường xuyên xuất hiện như một vấn đề. Vì họ đặt các quyền bổ sung nên có thể dễ dàng bỏ sót. Bạn có thấy mình có một tệp không thể xóa được, bất kể quyền người dùng của bạn được nâng cao như thế nào không? Bạn có thể cần xóa một hoặc hai cờ.
Các cờ có thể được đặt trong macOS được liệt kê bên dưới. Đây là danh sách đầy đủ các tùy chọn có sẵn, cũng như giải thích cho chức năng của chúng. Hầu hết các cờ chỉ có thể được đặt bởi chủ sở hữu của tệp hoặc người cấp quyền; sappnd
và schg
chỉ có thể được đặt bởi superuser, vì chúng là cờ cấp hệ thống. Chỉ có thể đặt cờ ẩn mà không cần báo cáo đặc quyền.
Đặt cờ trên macOS
Khi đặt cờ trên macOS, hãy sử dụng lệnh bên dưới. Cờ đệ quy -R
có sẵn cho các hoạt động cấp thư mục:
sudo chflags -R [flag] /usr/bin/local sudo chflags [flag] /usr/bin/local/mnt.sh chflags -R hidden ~/Desktop
sẽ đặt cờ thích hợp. Ví dụ:phần sau đặt cờ gật đầu:
sudo chflags nodump /usr/bin/local/tty.sh
Chỉ có thể đặt hoặc xóa một cờ theo lệnh chflags.
- không rõ ràng đặt thư mục có vẻ mờ khi xem qua liên kết liên hợp, một cách cổ điển để xem nhiều thư mục đồng thời.
- gật đầu ngăn không cho tệp hoặc thư mục bị kết xuất trong khi sử dụng
dump
lệnh sao lưu hệ thống của bạn. - sappnd, sappend đặt cờ chỉ nối thêm hệ thống, cho phép tệp được thêm vào nhưng không được sửa đổi hoặc xóa. Việc xóa cờ này yêu cầu phải vào chế độ một người dùng.
- schg, schange, simmutable đặt cờ bất biến của hệ thống, cờ này khóa tất cả các thay đổi tệp của tất cả người dùng ở bất kỳ cấp đặc quyền nào. Việc xóa cờ này yêu cầu phải nhập chế độ một người dùng.
- uappnd, uappend đặt cờ chỉ người dùng nối thêm. Điều này có thể được đặt bởi chủ sở hữu tệp và có thể không được chủ sở hữu đặt mà không cần báo cáo đặc quyền. Vì nó khóa tệp, với
sappnd
hoặcschg
ở mức độ bảo mật thấp hơn, nó được sử dụng thường xuyên hơn nhiều. - uchg, uchange, uimmutable đặt cờ bất biến của người dùng, có cùng mối quan hệ với cờ bất biến của hệ thống là
uappnd
cờ phảisappnd
. - ẩn đặt cờ ẩn. Thao tác này sẽ ẩn mục trong GUI của Finder và các lệnh ls.
Xóa cờ trên macOS
Để xóa một cờ nhất định, hãy đặt ngược lại với nó. Trong hầu hết các trường hợp, điều này có nghĩa là thêm "không" vào lệnh của bạn. Trong trường hợp gật đầu, hãy sử dụng cờ kết xuất để xóa, như sau:
sudo chflags dump /usr/bin/local/oty.sh
Các thuật ngữ tiêu chuẩn khác có thể được đảo ngược với tiền tố “không”, như sau:
sudo chflags nosappnd /usr/bin/local/oty.sh
Như với chmod, cờ đệ quy có sẵn:
chflags -R nohidden ~/Desktop
Sau khi các cờ đã được xóa, bạn có thể tự do thay đổi quyền sở hữu và quyền của tệp như mong đợi.
Sử dụng các thuộc tính trên Unix
Unix chạy một hệ thống tương tự trên phần phụ trợ, nhưng nó được xử lý bằng các lệnh khác nhau. Trên các nền tảng Linux phổ biến nhất, thay vào đó, bạn sẽ có quyền truy cập vào chattr
và lsattr
. Những cờ này được sử dụng để thay đổi và xem “thuộc tính”, đây là những gì cờ thường xảy ra trên hầu hết các cài đặt Unix khác.
Các thuộc tính có thể được xem bằng lsattr
:
lsattr /path/to/file.txt
Việc thay đổi các thuộc tính dựa trên mã khởi tạo và được liệt kê trong trang người đàn ông chattr:
“Các chữ cái 'acdeijstuADST' chọn các thuộc tính mới cho tệp:chỉ nối (a), nén (c), không kết xuất (d), định dạng mức độ (e), không thể thay đổi (i), tạp chí dữ liệu (j), xóa an toàn (s), không hợp nhất đuôi (t), không thể xóa (u), không cập nhật thường xuyên (A), cập nhật thư mục đồng bộ (D), cập nhật đồng bộ (S) và phân cấp thư mục đầu (T). ”
Lệnh trông giống như sau:
chattr +s /file/name.txt
Điều đó đặt thuộc tính xóa an toàn cho đường dẫn được chỉ định.
Kết thúc
Cờ hữu ích nhất khi giới hạn người có thể thay đổi tệp. Bằng cách khóa tệp, bạn có thể ngăn các chỉnh sửa giả mạo hoặc tình cờ ở cấp hệ thống tệp. Nếu không có thông báo cho người chủ hoặc chủ sở hữu tệp, các đặc quyền này không thể thay đổi được, vì vậy chúng được bảo mật ở mức độ vừa phải.