Tôi đã sử dụng root -R


8

Tôi đã vô tình thực hiện lệnh chown -R root / trong khi cố gắng thay đổi quyền vào thư mục chung của ứng dụng rails của tôi. Tôi tin rằng điều này đã thay đổi quyền cho tất cả các thư mục của tôi trên thư mục /. Vì vậy, câu hỏi của tôi là, điều này nguy hiểm đến mức nào, trong thực tế, câu hỏi tốt hơn sẽ là, liệu có cách nào để hoàn tác điều này không?


3
Điều này không thể được hoàn tác tự động, và vâng, nó có tác động đáng kể đến hệ thống của bạn (bao gồm, nhưng không giới hạn ở các thư mục nhà khác nhau). Tôi hy vọng bạn có một bản sao lưu gần đây tiện dụng. Chúc may mắn.
Frédéric Hamidi

Có những chương trình kiểm tra hệ thống của bạn để có quyền thích hợp và quyền sở hữu tệp. Tôi nghĩ tripwire là hoặc là một sớm. Nếu bạn không có nhiều người dùng, bạn có thể cứu vãn tình hình chỉ bằng cách nhận báo cáo và / hoặc sửa chữa từ một công cụ như vậy.
minopret

Ngoài ra, hãy đọc những lời khuyên tuyệt vời dưới đây có nghĩa là "đừng phản ứng theo bất kỳ cách nào sẽ làm cho nó tồi tệ hơn" và "đừng cho là tồi tệ nhất". Hoặc nhớ các bước khắc phục sự cố chung quan trọng này bằng phiên bản trò đùa: Toán tử khẩn cấp: "Đừng hoảng sợ, bạn có chắc là bạn của bạn đã chết?" Người gọi: BANG "Vâng, thật đáng buồn, anh ấy đã chết."
minopret

Trong hầu hết các trường hợp, trên một hệ thống bình thường, bạn sẽ có thể cho biết từ nhóm của một tập tin ai là chủ sở hữu. Vì vậy, findtất cả các tệp được sở hữu bởi root nơi nhóm không phù hợp và gửi tất cả chúng cho người dùng phù hợp với nhóm. Đăng nhập thất bại, và đối phó với chúng trên cơ sở cá nhân.
agf

Bạn đã chạy lệnh đó với quyền root chưa? (Tôi hy vọng không ...)
Axel

Câu trả lời:


7

Một cách để giảm thiểu vấn đề ở đây (không giải quyết, nhưng giúp bạn thoát khỏi lỗ hổng) là chạy một quy trình trên một hệ thống tương tự để thu thập quyền sở hữu phù hợp cho các tệp. Tôi đánh giá cao cơ hội của một trận đấu chính xác là hơi mong manh, nhưng nếu cả hai o / s đều ở cùng cấp độ với các gói tương tự được cài đặt, bạn có thể gặp may.

Khi bạn đã thu thập các quyền của tệp vào một tệp, sau đó bạn có thể chạy một quy trình trên hệ thống của riêng bạn để đọc các tệp và perm / quyền sở hữu từ tệp tốt và thay thế chúng trên tệp của bạn. Tôi có một vài ứng dụng nhỏ được trồng tại nhà trên Linux để làm việc này.

Ví dụ

777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1
644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a
644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0
644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a
777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so
644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16
777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0
777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so
644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o

RWX * UID * GID * thư mục khác * tên tệp * tên tệp


5

Trước hết, dừng lệnh nếu nó vẫn đang chạy!

Bây giờ mọi thứ sẽ thuộc về root và đó là vấn đề khá khó khăn.

Bạn nên cố gắng khôi phục thông tin từ bản sao lưu mới nhất của bạn.

Điều quan trọng là không khởi động lại hệ thống trước khi kiểm tra tất cả các ứng dụng đang chạy và người dùng khởi chạy chúng khi khởi động. Nếu bạn làm như vậy, một số trong số họ có thể không bắt đầu đúng do vấn đề quyền.

Chúc may mắn.


3

Rất và không hoàn toàn.

"Rất" theo nghĩa là nếu lệnh thực sự đã đi qua, bảo mật của bạn sẽ bị phá hỏng. Bây giờ bạn không biết đường dẫn nào có chủ sở hữu và ai nên được phép làm gì.

"Không hoàn toàn" theo nghĩa - bạn có chắc chắn bạn đã root khi bạn thực hiện và lệnh đã đi đến cuối? Nếu bạn đã hủy nó, ngay khi bạn nhìn thấy nó, thì bạn có thể may mắn và việc sửa chữa có thể thấp. Nếu bạn không root, lệnh này sẽ không thể thực hiện được, trừ khi bạn đã làm như thế sudo ....

Không có biện pháp khắc phục duy nhất cho điều này. Nếu bạn có một bản sao lưu, bạn có thể khôi phục lại nó. Bạn có thể cần kiểm tra quyền sở hữu trong bản sao lưu và áp dụng chúng. Nếu bạn đã và đang sử dụng trình kiểm tra rootkit (giả sử rkhunter), nó có thể có một danh sách các quyền sở hữu cơ bản nhất và có thể có thể sửa nó. (Không hoàn toàn có khả năng).


2

Trên Fedora ít nhất, lệnh RPM có các tùy chọn --setperms--setugids, bằng cách sử dụng những tùy chọn bạn có thể sửa hầu hết các tệp thuộc sở hữu hệ thống rpm --setugids -a. Để (phần nào) sửa các tệp cho mỗi người dùng, bạn có thể làm cho từng người chown -R user /home/user. Có thể sẽ có những phần còn lại chưa được sửa chữa ở trên, đặc biệt nếu bạn có một số loại máy chủ (web, ftp, các loại khác), chúng sẽ phải được xử lý từng cái một.

Có lẽ các bản phân phối khác có cơ chế tương tự. Hoặc làm mới hoàn toàn (nghĩa là cài đặt mọi thứ một lần nữa, như nó đã bị hỏng theo cách nào đó. OK, nó đã bị hỏng theo cách nào đó.)

[Vâng, đây lại là một cách khá tàn nhẫn để dạy người dùng không nghi ngờ xem xét cẩn thận từng lệnh trước khi nhấn ENTER và sử dụng root một cách tiết kiệm . Hãy xem xét bản thân bạn đã được dạy.]


setuidsetgidquyền cần phải được thiết lập bằng tay. rpmsẽ không khôi phục chúng.
jnas

1

Nếu việc sử dụng OSX apple của bạn cung cấp tính năng khôi phục trong Disk Utility để khắc phục vấn đề này. Nếu bạn sử dụng bản phân phối linux, tôi khá chắc chắn bạn sẽ phải làm lại tất cả các quyền theo cách thủ công. Trong cả hai trường hợp, hãy đập tay của bạn và không làm điều đó một lần nữa


Có lẽ không thể phục hồi hoàn toàn từ điều này trên Linux. Ngay cả khi bạn có thể làm cho hệ thống hoạt động, bạn có thể đã bỏ lỡ thứ gì đó có thể quay lại cắn bạn sau này, vì sự không ổn định hoặc lỗ hổng bảo mật. Tôi có thể nói rằng khôi phục từ phương pháp sao lưu hoặc xây dựng lại có lẽ là cần thiết.
Chris Kuehl

0

Thật không may, tôi không biết cách nào để "hoàn tác" nó, nhưng bạn có thể để các tệp hệ thống thuộc quyền sở hữu của root và khôi phục tất cả các tệp trong $ HOME của bạn để bạn sở hữu (và làm tương tự cho tất cả người dùng của hệ thống). Tại thời điểm đó, bạn có thể sửa các quyền và / hoặc chủ sở hữu trên mỗi tệp không có trong thư mục $ HOME của bạn cần nó khi nó xuất hiện. Vâng, đây là một nỗi đau, nhưng tôi không nghĩ rằng có một sửa chữa dễ dàng. Đó là những gì tôi sẽ làm cách nào.


0

Tôi muốn nói rằng bạn khá "dằn vặt" như bạn nói. Cách tốt nhất (và hiệu quả nhất) là cài đặt lại và khôi phục các mục quan trọng từ bản sao lưu tốt của bạn. Xin lỗi, đây không phải là một tình huống thường có cách khắc phục nhanh chóng với một kết thúc có hậu. Chúc may mắn!

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.