EDIT : Vấn đề là Apple sử dụng quyền để đánh dấu các bản sao lưu và ngăn bạn sửa đổi chúng (có thể là một tính năng bảo mật). Bằng cách sử dụng, chmod -RN <dir>
tôi đã xóa dữ liệu ACL khỏi tất cả các thư mục có dữ liệu quan trọng và điều đó cho phép tôi biến mình thành chủ sở hữu và áp dụng các quyền phù hợp.
Câu hỏi ban đầu
Tôi có một bản sao lưu cực lớn (> 700GB) hiện có quyền sai (UID của tôi đã thay đổi trong quá trình cài đặt sạch, câu chuyện dài) và tôi cần thay đổi chúng. Tùy chọn tốn thời gian là tự đi qua từng thư mục và thay đổi quyền nhưng sẽ mất nhiều thời gian.
Tôi muốn sử dụng chown
để biến mình thành chủ sở hữu của tất cả dữ liệu quan trọng của mình và sau đó sử dụng chmod 700
trên tất cả các thư mục đó để chỉ cấp rwx
quyền cho tôi.
Giải pháp lý tưởng là một số phương pháp sử dụng find
để tìm đệ quy các thư mục khớp với biểu thức chính quy (hiện tại của tôi là .*/[DCV].*|Pictures|M[ou].*
) và sau đó đặt UID của tôi thành chủ sở hữu và đặt quyền thành 700.
Điều quan trọng mà tôi không thể nắm bắt được:
Tuy nhiên, khi tôi cố chạy chown Me DirectoryName
tôi sẽ nhận được chown: DirectoryName: Operation not permitted
.
Tất cả mọi thứ tôi tìm thấy đều liên quan đến việc thay đổi quyền của tệp chứ không phải thư mục. Có lẽ tôi đang nhìn sai cách này?
Một cái gì đó cho tôi biết không có cách nào để đưa UID của tôi rwx
và ---
cho mọi người khác.
Làm thế nào tôi có thể đạt được điều này? Tôi đang chạy Mac OS X 10.10.3.
Tôi biết rằng đây là một diễn đàn UNIX / Linux (và tôi đang chạy Mac) nhưng câu hỏi này là rất nhiều về việc sử dụng vỏ, chown
, chmod
, và sự cho phép và bất kỳ giải pháp được đăng ở đây sẽ được áp dụng cho bất kỳ hệ điều hành UNIX-based. Sẽ là tốt hơn nếu các giải pháp được đăng sẽ làm cho các bản sao lưu cũ của tôi xuất hiện lại trong Time Machine.
Cảm ơn tất cả những người đã kịp thời trả lời, nhưng chown
dường như không hoạt động trên các thư mục vì một số lý do. Có phải thực tế đây là .sparsebundle
hình ảnh đĩa trên ổ đĩa mạng có liên quan? Tôi giả sử nó sẽ giống như trên bất kỳ ổ đĩa ngoài nào.
find . -user $other_uid -print0 | sudo xargs chown $USER
nên làm việc.
df -hT <dirname>
nên nói với bạn
df -hT <dir>
cung cấp đầu ra cho a) thư mục gốc của ổ cứng mạng b) hình ảnh đĩa bên trong ổ cứng mạng c) bất kỳ thư mục nào trên ổ cứng mạng. Có lẽ hành vi bạn dự định được thực hiện khác nhau trên Mac và trên Linux?
root_squash
được bật, vì vậy bạn sẽ không thể thực hiện các hoạt động chỉ gốc nhưchown
từ máy khách.