Cách thay đổi chủ sở hữu của một thư mục


14

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 700trên tất cả các thư mục đó để chỉ cấp rwxquyề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 DirectoryNametô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---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 chowndườ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à .sparsebundlehì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.


Những loại ổ đĩa mạng? Nếu là NFS, rất có thể nó đã được xuất khi 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ư chowntừ máy khách.
Toby Speight

Đó là một ổ cứng bên trong Apple Time Capsule. Về cơ bản, đây là đĩa được bảo vệ bằng mật khẩu bên trong trạm gốc WiFi. Sự khác biệt duy nhất là ổ cứng được kết nối với máy tính của bạn thông qua ethernet. Thực sự một cổng USB nhưng tôi chưa bao giờ sử dụng nó.
Arc676

Nếu không, các tiêu chuẩn find . -user $other_uid -print0 | sudo xargs chown $USERnên làm việc.
Toby Speight

Hệ thống tập tin mạng nào? df -hT <dirname>nên nói với bạn
Toby Speight

@TobySpeight khôngdf -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?
Arc676

Câu trả lời:


23

Tôi có thể đã hiểu lầm. Nhưng bạn có thể sử dụng đệ quy chmod và chown, ví dụ.

chown -R username:username /path/directory

Để áp dụng đệ quy 700, bạn có thể sử dụng:

chmod -r 700 /path/directory

Tất nhiên những điều trên là dành cho Linux nên không chắc mac osx có giống nhau không.

EDIT: Yea xin lỗi đã quên đề cập đến bạn cần phải root để chown một cái gì đó, tôi chỉ giả sử bạn biết điều này ... xấu của tôi.


1
Mac OS sử dụng cú pháp tương tự. Để thực thi lệnh với quyền root, cách dễ nhất trên máy Mac là tiền tố với nó sudo, vì vậy sudo chmod(bạn sẽ được yêu cầu nhập mật khẩu với quyền truy cập Adminstrator).
mjturner

2

thử làm root

 find wherever -type d -name ... -exec chown Me {} \;

Ở đâu

  • -type d chỉ áp dụng cho dir
  • -name ... regrec của bạn
  • -exec chown Me {} \; sử dụng chown trên tìm dir.

bạn phải root để chown.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.