Tại sao Linux cho phép người dùng xóa thư mục gốc? [bản sao]


4

Câu hỏi này đã có câu trả lời ở đây:

Khi tôi cài đặt Linux lần đầu tiên trong máy tính của mình, tôi luôn thích sử dụng root, vì tôi không cần thêm sudovà nhập mật khẩu mỗi khi tôi thực thi một lệnh cần quyền root.

Vì vậy, một ngày nọ, tôi chỉ muốn xóa một thư mục, và tôi đã chạy rm -rf /, vì vậy hệ thống của tôi bị hỏng. Tôi tự hỏi tại sao các nhà thiết kế Linux đã không cấm một lệnh nguy hiểm như vậy.


4
Nó cũng không bị cấm trên Windows.
Daniel B

3
Tôi tin rằng một bản phân phối Linux hiện đại sẽ không cho phép điều này mà không có--no-preserve-root
Vinayak

2
@DanielB Tôi nghĩ rằng điều này không có gì với Windows
fangxing


1
Tôi không nghĩ câu hỏi này là một bản sao của câu hỏi được liên kết. Điều này hỏi tại sao Linux cho phép rm -rf /, trong khi người kia hỏi làm thế nào để ngăn mọi người tự bắn vào chân họ.
Ben N

Câu trả lời:


17

Tại sao nó không cho phép bạn làm bất cứ điều gì bạn muốn với máy tính của riêng bạn? Đăng nhập với roothoặc sử dụng sudolà nói với máy, "Tôi biết những gì tôi đang làm." Ngăn chặn mọi người làm những việc đáng ngờ thường cũng ngăn họ làm những việc thông minh, như thể hiện của Raymond Chen .

Ngoài ra, có một lý do duy nhất để cho phép người dùng đốt cháy thư mục gốc: ngừng hoạt động một máy tính bằng cách xóa hoàn toàn hệ điều hành và hệ thống tệp. ( Nguy hiểm! Trên một số hệ thống UEFI, rm -rf /cũng có thể làm hỏng máy vật lý .) Đó cũng là điều hợp lý để thực hiện trong chrootnhà tù .

Rõ ràng, mọi người vô tình chạy lệnh nhiều đến nỗi một tính năng an toàn đã được thêm vào: rm -rf /không có gì trên hầu hết các hệ thống trừ khi --no-preserve-rootđược cung cấp và không có cách nào bạn có thể gõ nhầm . Điều đó cũng giúp bảo vệ chống lại các kịch bản shell được viết kém nhưng có thiện chí .


8

TL; DR: Câu trả lời đơn giản nhất sẽ là: tại sao không? Nó chỉ là một tính năng nhiều hơn, một công cụ mà hệ thống phẫu thuật cung cấp. Bạn tự chịu rủi ro khi biết mình đang làm gì.


Giải trình

Sử dụng root làm người dùng của bạn là một ý tưởng rất tồi , vì mọi thứ bạn thực hiện đều được chạy với các đặc quyền nâng cao, một lỗ hổng bảo mật rất lớn.

Ví dụ: nếu bạn đã tải xuống một chương trình độc hại hoặc nếu phần mềm được cài đặt trong máy tính của bạn có một số lỗi nghiêm trọng, điều đó có thể dẫn đến thiệt hại nghiêm trọng cho các tệp và thậm chí cả phần cứng của bạn.

Ngay cả khi bạn quá lười để viết sudonhiều lần, vẫn có một số lệnh như sudo -i, bạn có thể sử dụng một lúc và sau đó quay lại trạng thái đặc quyền bình thường. Nhưng tôi sẽ không khuyến nghị điều này trừ khi bạn có nhiều kinh nghiệm sử dụng thiết bị đầu cuối.

Tuy nhiên, điều này không được quy cho Linux cũng như các nhà phát triển của nó. Trên thực tế, như @DanielB đã nêu, Windows cũng cho phép điều này . Bạn có quyền tự do và các công cụ để làm điều đó, nhưng điều đó không có nghĩa là bạn phải làm.

Có các gói ngăn bạn rmvào thư mục gốc của bạn, chẳng hạn như Safe-rm . Đó có thể là một lựa chọn tốt nếu bạn nghĩ rằng có nguy cơ nó lại xảy ra.
Các giải pháp và vấn đề khác, như rmtham số --preserve-rootnhư được thảo luận trong câu hỏi Lỗi Máy chủ này .


Cảm ơn người trả lời tốt đẹp của bạn, tôi nói 'tại sao Linux ...', chỉ vì tôi sử dụng Linux. Xin lỗi vì tiếng Anh của tôi kém :),
fangxing

Không vấn đề gì! Nó chỉ để làm rõ rằng đó là một cái gì đó xảy ra trên hệ điều hành khác, một sự tự do đó là ... chỉ trong trường hợp. ;)
Hewbot

hạ cấp, vì nó không giải thích câu hỏi được hỏi.
toogley

1
@toogley Thật khó để trả lời một câu hỏi chưa có câu trả lời cụ thể như câu hỏi này; Tôi vẫn cập nhật câu hỏi để chính xác hơn một chút. Cảm ơn vì bạn đã phản hồi! :)
Hewbot
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.