Làm thế nào tôi có thể hoàn nguyên một chmod trên thư mục vv?


9

Tôi vô tình thực hiện lệnh sau trên thư mục vv:

sudo chmod -R 700 /etc

Tôi biết rằng tôi đã làm một cái gì đó rất sai. Thiết bị đầu cuối của tôi bây giờ in:

I have no name!@ubuntu: /$

Làm thế nào tôi có thể hoàn nguyên thư mục vv của tôi về trạng thái trước đó?

Tôi đã thử thay đổi quyền nhưng bây giờ nó không thành công. Ngoài ra, sẽ rất hữu ích nếu ai đó có thể giải thích những gì thực sự đã sai khi tôi thực thi lệnh đó, v.v. Đó chỉ là quyền truy cập tệp. Vậy thì tại sao toàn bộ hệ thống dường như hoàn toàn nổ tung? Tại sao không có mật khẩu đăng nhập đang hoạt động? Tôi biết rằng có một tập tin trong thư mục vv có liên quan đến người dùng. Nhưng làm thế nào để thay đổi quyền gây nguy hiểm cho tất cả mọi thứ? Một số chi tiết kỹ thuật về điều này sẽ rất hữu ích.


3
Bạn cần một danh sách thư mục ( ls -laR) từ một hệ thống đang chạy khác. Phiên bản nào là của bạn? Bạn có thể thay đổi thư mục thành 755 và tệp thành 644, nhưng một số phải có các chế độ khác nhau (như / etc / bóng, vd).
ott--

4
Khi bạn gõ, sudobạn nên đọc lại trong đầu là "Tôi đang tự trao cho mình sức mạnh tối thượng đối với hệ thống của mình mà không có mạng lưới an toàn, tôi có chắc là tôi biết tôi đang làm gì không? Tôi có chắc là tôi đã gõ những gì tôi muốn nói không?" trước khi nhấn trở lại.
msw

1
Với một hệ thống làm việc, bạn có thể sử dụng find /etc -type d ! -perm 755 -exec ls -ld {} \;find etc -type f ! -perm -644 -exec ls -l {} \;để tìm các thư mục và tệp với các chế độ không chuẩn. Trong Debian chỉ có 2 thư mục và 39 tệp
ott--

"Nhưng làm thế nào để thay đổi quyền gây nguy hiểm cho tất cả mọi thứ?" - một số điều cần thiết để đọc các tệp đó bây giờ không có quyền đọc các tệp đó.
dùng253751

Câu trả lời:


15

Một điều đã sai: việc sử dụng sudovới lệnh đó. Công -Rtắc yêu chmodcầu đặt đệ quy các quyền cho thư mục đó, trong mọi trường hợp, đó là một hành động không được đề xuất (chúng ta nên gọi nó là: dị giáo) nếu bạn không biết bạn đang làm gì (một khi điều này xảy ra với tôi, tôi không đưa ra lệnh nhưng GUI bị lỗi và hệ thống của tôi bị trục trặc).

Đó chỉ là quyền tập tin. Vậy thì tại sao toàn bộ hệ thống dường như hoàn toàn nổ tung?

GNU / Linux rất nhạy cảm với quyền truy cập tệp, vì nó được xây dựng với tính ổn định và bảo mật . Áp dụng tương tự cho hầu hết các chương trình chạy trong GNU / Linux (nghĩa là apache2bỏ các đặc quyền và cách sử dụng gốc www-datahoặc người dùng tương tự, và sự 700cho phép của bạn sẽ không cho phép nó đọc / ghi các tệp của riêng nó).

Tại sao không có mật khẩu đăng nhập đang hoạt động?

Như bạn đã đề cập, mật khẩu đăng nhập được lưu trữ trong một tệp trong /etc/passwdvà chỉ root (tôi giả sử bạn không thay đổi điều đó) có thể đọc nó, nhưng lời nhắc đăng nhập (hoặc đăng nhập GUI) sử dụng tài khoản không có đặc quyền, do đó nó không thể đọc được tập tin.

Nhưng làm thế nào để thay đổi quyền gây nguy hiểm cho tất cả mọi thứ?

Giống như đã nói ở trên, Linux rất nhạy cảm với quyền truy cập tệp. Một số chương trình thậm chí kiểm tra quyền của các tệp cấu hình của chúng và nếu chúng không được mong đợi thì chúng sẽ không chạy.

Làm thế nào tôi có thể hoàn nguyên thư mục vv của tôi về trạng thái trước đó?

Nếu bạn sử dụng một bản phân phối dựa trên RPM, điều này có thể được thực hiện bằng cách sử dụng rpm --setpermslệnh, nó sẽ rất khó hoàn nguyên từng gói một, trên hệ thống giống như Debian apt-get --reinstall installlà bạn của bạn. Các giải pháp khác có thể có sẵn, nhưng sẽ cần một hệ thống làm việc cho nó.


5

Hãy xem, những gì bạn đã làm là đặt quyền trong toàn bộ / etc dir dưới dạng đọc / ghi / thực thi chỉ được phép cho chủ sở hữu của tệp / dir, bị từ chối đối với mọi người khác. Nếu bạn bối rối bởi các quyền của tệp, bạn có thể đọc thêm tại Wikipedia: Các quyền UNIX truyền thống .

Lý do bạn làm hỏng hệ thống của mình là vì nhiều quy trình không thể đọc cài đặt của chúng nữa, không thể truy cập / v.v. Sẽ không dễ dàng để khôi phục toàn bộ / etc dir về trạng thái trước đó. Cách thực hiện sẽ phụ thuộc vào bản phân phối của bạn, nhưng về cơ bản, điều đó có nghĩa là cài đặt lại mọi gói chứa bất kỳ tệp nào trong / etc.

Là một trợ giúp băng thông nhanh để có thể sử dụng hệ thống, để khắc phục nó đúng cách (cài đặt lại tất cả các gói có nội dung trong / etc, như đã nêu ở trên), bạn có thể làm:

    # sudo find /etc -type d -exec chmod 775 '{}' \;
    # sudo find /etc -type f -exec chmod 664 '{}' \;

Với hai dòng đó, bạn sẽ thiết lập quyền tự do trong tất cả các thư mục / etc, với quyền đọc / ghi được cho phép đối với chủ sở hữu và nhóm và đọc cho phép mọi người khác. Lý do của hai chmod là chỉ thiết lập bit thực thi trên các thư mục. Một số quy trình sẽ khiếu nại hoặc thất bại ngay cả như vậy, bao gồm mọi thực thi trong / etc, nhưng bạn sẽ có thể thực hiện cài đặt lại mà tôi đã nêu ở trên.

Xin lưu ý hơn cho đến khi bạn khôi phục các quyền ban đầu, ít nhất, hệ thống của bạn sẽ ở trạng thái không an toàn.


2
Ngoài ra, một số chương trình sẽ không hoạt động; Ví dụ, SSH yêu cầu quyền hạn chế đối với các tệp nhất định. /etc/sudoerslà một cái khác.
Mel Boyce

1
Nhưng một số tập tin trong /etcphải không được làm cho thế giới có thể đọc được bao giờ! Khôi phục từ các bản sao lưu, đó là lý do tại sao bạn có chúng (hoặc, đó là lý do tại sao mọi người đã thúc giục bạn tạo bản sao lưu).
tripleee

0

700 đã xóa quyền truy cập vào nhiều tệp cho các nhóm và người dùng thế giới (ví dụ: các tệp hiện có rwx------quyền). Ví dụ, tất cả người dùng cần có khả năng đọc /etc/passwd. Với thiết lập của bạn, bây giờ chỉ có root mới có thể đọc /etc/passwd. Nhiều thứ sẽ bị hỏng nếu bạn phá vỡ các quyền trên các tệp /etc/theo những cách không thể đoán trước.

Bạn có thể thử và xây dựng lại các quyền (giả sử bạn vẫn có thể chuyển sang root) dựa trên máy chủ đang hoạt động, nhưng điều đó dễ bị lỗi.

Tôi khuyên bạn nên khôi phục /etc/từ bản sao lưu nếu bạn có (đảm bảo khôi phục sẽ đặt lại các quyền hoặc nếu giải pháp sao lưu của bạn hỗ trợ nó, chỉ khôi phục các quyề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.