Làm thế nào để hoàn nguyên lệnh chown?


16

Nếu tôi chạy:

sudo chown -R user:user /

Tôi có thể hoàn nguyên nó trước khi tôi chạy nó không?


1
Cũng như một cảnh báo cho người khác: Lệnh sau sudo chown -R user:user ..có thể có tác dụng tương tự như lệnh được đề cập ở đây nếu bạn ở một cấp dưới gốc của hệ thống tệp. Đừng cố làm điều gì đó như thế này.
người qua đường51

Câu trả lời:


22

Tóm lại: không.

Bạn sẽ cần khôi phục từ bản sao lưu. (Một số công cụ sao lưu có thể có các tùy chọn chỉ khôi phục quyền, những người khác có thể liệt kê các tệp được sao lưu bằng quyền của họ và bạn có thể sử dụng quyền đó để sửa hệ thống của mình.)

Nếu bạn không có bản sao lưu, bạn sẽ cần sửa tất cả bằng tay.


Sau sudo chown -R user:user /đó, có khả năng hệ thống bị hỏng nặng đến mức bạn không thể khôi phục từ bản sao lưu.
Keith Thompson

1
Nếu bạn không thể khôi phục các phần quan trọng của dữ liệu người dùng trong kịch bản này từ bản sao lưu của mình, thì "bản sao lưu" của bạn thực sự không phải là một. Nếu bạn không thể khôi phục toàn bộ HĐH, bạn vẫn có thể cài đặt lại cơ sở và sau đó khôi phục từ bản sao lưu. Rất có thể sẽ cần một đĩa CD trực tiếp hoặc khởi động mạng trong trường hợp này, nhưng nếu chiến lược sao lưu của bạn không thể phục hồi từ điều này, nó không thực sự đủ tốt.
Mat

Nhận xét trước đó của tôi có lẽ không rõ ràng. Một hệ thống chức năng có thể được khôi phục bằng cách sử dụng chính hệ thống. Khi bạn đã thực hiện chownmô tả, có khả năng bạn sẽ không thể làm trước khi cài đặt toàn bộ hệ thống từ đầu; hệ thống thậm chí không có roottài khoản và sudosẽ không hoạt động. Có lẽ đáng để thử khởi động vào trình bao một người dùng, nhưng đừng hy vọng nó hoạt động.
Keith Thompson

1
Tài khoản root không biến mất (vẫn là UID 0); nó không còn sở hữu bất kỳ tập tin nào nữa, nhưng root bỏ qua quyền kiểm tra bình thường. Việc có sudohay sukhông tiếp tục hoạt động khi tất cả các tệp có liên quan của nó được sở hữu userlà một vấn đề khác (có thể không phải vì trong số những thứ khác, bit SUID trên exe sẽ biến mất).
jw013

6

Chỉ khi bạn biết quyền sở hữu của người dùng và nhóm của mọi tệp và thư mục trong thư mục của bạn /.

Thậm chí sau đó, bạn đã ghi đè quyền sở hữu các tệp hệ thống quan trọng cần được sở hữu bởi root, bao gồm cả sudolệnh. Bạn có thể cần phải gắn ổ đĩa cứng vào một hệ thống khác - và lưu ý rằng hệ thống khác có thể sẽ không có ánh xạ UID và GID giống như hệ thống mà bạn vừa bị chặn.

Tạo một bản sao của toàn bộ ổ cứng nếu bạn có thể, sau đó cài đặt lại hệ điều hành của bạn. Khi bạn đã thực hiện điều đó, bạn có thể thử sao chép các tệp trở lại hệ thống mới bị xóa và khôi phục quyền sở hữu của họ. Bạn có thể có thể giả định (mặc dù không đáng tin cậy 100%) rằng mọi thứ bên dưới /home/foođều thuộc sở hữu của người dùng foovà mỗi tệp bộ đệm thư dưới /var/mailđây thuộc sở hữu của người dùng thích hợp (nếu bạn có e-mail trên hệ thống). Bạn có thể thoát khỏi mà không cần khôi phục hầu hết các tệp không thuộc /home, tùy thuộc vào những gì bạn đã thực hiện với hệ thống.

Và sau đó bắt đầu nuôi dưỡng thói quen kiểm tra lại bất kỳ lệnh nào bạn chạy sudo trước khi bạn nhấn Enter.


6

Nếu bản phân phối của bạn dựa trên RPM, bạn có thể khôi phục các tệp CHỈ được cài đặt bởi các gói vòng / phút.

Để khôi phục tất cả các quyền gói:

rpm --setperms -a

Để khôi phục tất cả chủ sở hữu gói (người dùng / nhóm):

rpm --setugids -a

Nếu -a không chạy, bạn có thể thực hiện vòng lặp bash:

Đối với quyền:

for x in $(rpm -qa); do rpm --setperms $x; done

Dành cho chủ sở hữu:

for x in $(rpm -qa); do rpm --setugids $x; done

Trích xuất từ: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html


1

Bạn có thể lưu trữ các phiên bản hiện tại và sau đó phân tích ra để hoàn nguyên bằng cách sử dụng tùy chọn -v.

chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log

Nội dung sẽ là:

changed ownership of `/tmp/some_file' from me:users to nobody:nobody

Sử dụng ngôn ngữ kịch bản yêu thích và các biểu thức chính quy, bạn có thể thực hiện quá trình đau đớn để hoàn nguyên chúng (nếu bạn phải).

Tôi thực sự khuyên bạn không nên thực hiện một cuộc trò chuyện đệ quy trên / vì bạn sẽ phơi bày / etc / bóng hoặc bất kỳ tệp quan trọng nào khác.


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.