Câu hỏi Tại sao nó xấu để đăng nhập như là người chủ?


Tôi thường xuyên gặp các bài đăng trên diễn đàn hoặc các trang web khác nơi bạn thấy mọi người nói đùa về cách chạy / đăng nhập bằng root như thể đó là điều khủng khiếp và tất cả mọi người nên biết về nó. Tuy nhiên, không có nhiều việc tìm kiếm tiết lộ về vấn đề này.

Nó có thể được các chuyên gia Linux biết đến rộng rãi, nhưng tôi thực sự không biết tại sao. Tôi nhớ luôn luôn chạy như là người chủ khi tôi lần đầu tiên thử Linux năm trước (Redhat và Mandrake) và không nhớ chạy vào bất kỳ vấn đề vì điều đó.

Trên thực tế có một số bản phân phối có nền màu đỏ tươi với các dấu hiệu cảnh báo trên đó làm hình nền cho người dùng root (SuSe?). Tôi vẫn sử dụng tài khoản "Quản trị viên" để sử dụng thường xuyên trên cài đặt Windows của mình và chưa bao giờ gặp phải bất kỳ sự cố nào.


180
2017-12-04 17:00


gốc


Tôi nghĩ rằng không có vấn đề trong việc chạy một chương trình như là người chủ. Chỉ có điều đó, bạn có thể làm hại cốt lõi của hệ điều hành của bạn (thậm chí sudoers có thể làm điều đó) nếu bạn không có nhiều khôn ngoan trong Linux. khác hơn là tôi không điều có bất kỳ vấn đề. Nhưng đó chỉ là quan điểm của tôi. - Gaurav Butola
Câu hỏi liên quan đây. - loevborg
Khó khăn khi vào chế độ root thay đổi giữa các distro. Cá nhân tôi cảm thấy khó chịu vì Fedora không cho phép bạn 'sudo' ra khỏi hộp. OpenSUSE và Ubunto đã có cấu hình sudo mặc dù ... và vì vậy nếu bạn chọn bản phân phối phù hợp, bạn có thể giảm thiểu phiền toái khi không thể truy cập vào các tệp. - djangofan
@GauravButola ngay cả khi bạn là một chuyên gia, nó vẫn là một ý tưởng tồi trong trường hợp một ứng dụng bị xâm phạm. - strugee
@ DaboRoss OP ý kiến ​​rằng ông làm việc trong các cửa sổ như quản trị viên; cho tôi (ít) kinh nghiệm trong hệ điều hành đó, có vẻ như với tôi rằng nó giống như Ubuntu: nó là một tài khoản đặc quyền theo nghĩa nó có thể làm bất cứ điều gì bạn muốn, nhưng nó hỏi cho phép trước, ví dụ như cài đặt phần mềm mới. Vì vậy, có lẽ tương đương với việc sử dụng "quản trị" người dùng trong các cửa sổ được dịch sang Ubuntu sẽ chạy người dùng chính với sudo được cấu hình để nó không yêu cầu pass --- chạy trực tiếp vì root nguy hiểm hơn nhiều. - Rmano


Các câu trả lời:


Nó đánh bại mô hình bảo mật được đặt ra trong nhiều năm. Các ứng dụng có nghĩa là được chạy với bảo mật phi hành chính (hoặc chỉ là các con người), do đó bạn phải nâng cao đặc quyền của chúng để sửa đổi hệ thống cơ bản. Ví dụ, bạn sẽ không muốn vụ tai nạn gần đây của Rhythmbox xóa sạch toàn bộ /usr thư mục do lỗi. Hoặc lỗ hổng đó đã được đăng trong ProFTPD để cho phép kẻ tấn công có được một trình bao ROOT.

Nó chỉ là thực hành tốt trên bất kỳ hệ điều hành nào để chạy các ứng dụng của bạn ở cấp độ người dùng và để lại các tác vụ quản trị cho người dùng root và chỉ trên cơ sở mỗi nhu cầu.


146
2017-12-04 17:08



... và nó bảo vệ bạn khỏi việc biến đổi các lỗi nhỏ trong thiên tai. Tôi là một người dùng Unix / adm từ năm 1990, nhưng tôi vẫn có thể trượt một không gian ở vị trí sai chính xác rm -rf tmp/tests/*... - Rmano
1.) Hầu hết mọi người sẽ xem xét thư mục nhà của họ như là quan trọng hơn dirs gốc, cho các cựu không thể được cài đặt lại. Vì vậy, tôi không thấy quan điểm của bạn. 2.) Về mặt an ninh, bạn đúng. Nhưng đến từ cửa sổ (nơi có nhiều phần mềm độc hại xung quanh), nơi tôi đã sử dụng tài khoản quản trị từ bao giờ hết (như nhiều người làm), tôi có một thời gian khó khăn xem xét đây là một mối nguy hiểm thực sự. Tôi quá lười biếng để nhập sudo và mật khẩu của tôi cho mỗi lệnh thứ hai trong Linux. Người dùng Linux không phải là lười biếng ????? - Blauhirn
không đồng ý -_-: ~: | - Artful Aardvark
@LazyPower cảm ơn bạn đã chỉnh sửa câu trả lời của mình, nhưng bây giờ tôi không hiểu nó nữa. Để sửa đổi thư mục Ubuntu ~ riêng của tôi, các chương trình không cần quyền sudo. Rhythmbox CÓ THỂ xóa toàn bộ thư mục $ HOME / Music của tôi! Và đó là tất cả những gì tôi quan tâm! Điều này liên quan đến quyền root như thế nào? - Blauhirn
Đó là một lời kêu gọi tốt @Blauhirn. Tôi vừa gửi một bản chỉnh sửa tiếp theo để phản ánh chúng tôi không muốn xóa toàn bộ / usr. Trong việc bảo vệ các thư mục $ HOME của bạn, không có gì giống như một bản sao lưu tốt có thể giúp bạn. Tôi không nghĩ rằng kịch bản cụ thể này sẽ liên quan đến an ninh nhiều như thực hành tốt. Cảm ơn một lần nữa cho chú thích. - lazyPower


Chỉ một từ: an ninh.

  1. Bạn đã đăng nhập dưới dạng root = tất cả các ứng dụng đang chạy với các đặc quyền gốc - mọi lỗ hổng trong Firefox, Flash, OpenOffice vv giờ đây có thể phá hủy hệ thống của bạn, bởi vì các vi-rút có thể truy cập ở mọi nơi. Có, chỉ có một vài vi-rút cho Ubuntu / Linux, nhưng nó cũng do bảo mật tốt và người dùng không có đặc quyền mặc định.
  2. Nó không chỉ về virus - lỗi nhỏ trong một ứng dụng có thể xóa một số tập tin hệ thống hoặc ...
  3. Khi bạn đang đăng nhập như là người chủ, bạn có thể làm mọi thứ - hệ thống sẽ không hỏi! Bạn có muốn định dạng đĩa này không? Ok, chỉ cần một cú nhấp chuột và nó được thực hiện, bởi vì bạn là người chủ và bạn biết những gì bạn đang làm ...

73
2017-12-04 17:10



Tệp dữ liệu, tất cả đều thuộc sở hữu của tài khoản người dùng của tôi, là nhiều hơn nữa có giá trị đối với tôi hơn là các tệp hệ thống. Tất cả các ví dụ trên của bạn vẫn là các vấn đề khi đăng nhập với tư cách người dùng, ngoại trừ việc các tệp hệ thống dễ thay thế được bảo vệ. - kbeta
@ kbeta bạn đang giả định rằng bạn đang chạy trên một máy tính mà các vật có giá trị duy nhất là các tệp dữ liệu và hệ thống của bạn. Trong thực tế, Linux thường được sử dụng trong một hệ thống nơi có nhiều người dùng sử dụng một hệ thống cùng một lúc. Trong trường hợp này sự ổn định của hệ thống (và do đó các tệp hệ thống) có giá trị hơn nhiều và các tệp người dùng khác cũng quan trọng. - Eric Pauley
@kbeta Fair đủ nhưng cấu hình hệ thống bị hỏng cũng có thể gây rủi ro cho dữ liệu của bạn ... và dĩ nhiên có bản sao lưu sẽ là một ý tưởng hay cho dù hệ thống của bạn có đang gặp rủi ro hay không. Sao lưu hiện tại đang hoạt động với kế hoạch khôi phục thảm họa sẽ tốt hơn. - Pryftan


Chạy như root là xấu vì:

  1. Ngu dốt: Không có gì ngăn cản bạn làm điều gì đó ngu ngốc. Nếu bạn cố gắng thay đổi hệ thống theo bất kỳ cách nào có thể gây hại, bạn cần phải thực hiện một lệnh tạm dừng trong khi bạn nhập mật khẩu để bạn nhận ra rằng bạn sắp sửa thực hiện một thay đổi lớn / tốn kém.
  2. Bảo vệ:  Nó đã được đề cập đã khá một vài lần trong câu hỏi này nhưng về cơ bản nó là điều tương tự, khó khăn hơn để hack nếu bạn không biết tài khoản đăng nhập của người dùng quản trị. root nghĩa là bạn đã có một nửa bộ thông tin quản trị.
  3. Bạn không thực sự cần nó: Nếu bạn cần chạy một số lệnh dưới dạng root và bạn cảm thấy khó chịu vì phải nhập mật khẩu nhiều lần khi sudo đã hết hạn, tất cả những gì bạn cần làm là sudo -i và bây giờ bạn đã root. Bạn muốn chạy một số lệnh bằng cách sử dụng đường ống? Sau đó sử dụng sudo sh -c "comand1 | command2".
  4. Bạn luôn có thể sử dụng nó trong bảng điều khiển khôi phục:  Bảng điều khiển khôi phục cho phép bạn thử và khôi phục từ việc làm điều gì đó ngu ngốc hoặc khắc phục sự cố do ứng dụng (mà bạn vẫn phải chạy là sudo :)) Ubuntu không có mật khẩu cho tài khoản gốc trong trường hợp này nhưng bạn có thể tìm kiếm trực tuyến để thay đổi điều đó, điều này sẽ gây khó khăn hơn cho bất kỳ ai có quyền truy cập vật lý vào hộp của bạn để có thể gây hại.

Lý do tại sao bạn không thể tìm thấy thông tin về lý do tại sao nó xấu là bởi vì, tốt, có quá nhiều dữ liệu trên internet :) và rằng rất nhiều người đã sử dụng Linux trong một thời gian dài suy nghĩ như bạn làm. Cách suy nghĩ về tài khoản gốc này khá mới (một thập kỷ có thể?) Và rất nhiều người vẫn cảm thấy khó chịu khi phải sử dụng sudo. Đặc biệt là nếu họ đang làm việc trên một máy chủ có nghĩa là họ đã đi vào với ý định thay đổi hệ thống. Có lẽ được đưa vào từ những kinh nghiệm xấu trước đây và tiêu chuẩn bảo mật hầu hết các hệ thống quản trị hệ thống biết rõ hơn nhưng họ vẫn không thích nó :).


45
2017-12-04 18:43



'một thập kỷ có thể?' Còn lâu hơn thế nữa kể cả khi bạn viết cái này. Ngay cả khi không có sudo có su không phải đề cập đến, ví dụ: nhóm bánh xe (ví dụ). Phân chia đặc quyền luôn quan trọng và luôn quan trọng và luôn quan trọng. Otoh không phải là nhiều người sử dụng hệ điều hành dựa trên Unix mà nhiều năm trước đây và nhiều người làm được sử dụng để luôn luôn là một quản trị viên. - Pryftan


Đây là một câu hỏi hay. Tôi nghĩ rằng câu trả lời là hơi khác nhau tùy thuộc vào việc bạn đang nói về một máy chủ hoặc cài đặt máy tính để bàn.

Trên máy tính để bàn, việc sử dụng root tài khoản. Trong thực tế, Ubuntu tàu với quyền truy cập root bị vô hiệu hóa. Tất cả các thay đổi đòi hỏi đặc quyền superuser được thực hiện thông qua sudo và các đồ họa của nó gksudo và kdesudo. Cho rằng nó dễ dàng để thiết lập một root mật khẩu, tuy nhiên, tại sao mọi người không làm điều đó?

Một lý do là nó cung cấp cho bạn một lớp bảo mật bổ sung. Nếu bạn chạy một chương trình như root và lỗ hổng bảo mật được khai thác, kẻ tấn công có quyền truy cập vào tất cả dữ liệu và có thể trực tiếp kiểm soát phần cứng. Ví dụ, nó có thể cài đặt trojan hoặc key-logger vào kernel của bạn. Trong thực tế, mặc dù, một cuộc tấn công có thể làm một lượng lớn sát thương ngay cả khi không có đặc quyền superuser. Sau khi tất cả, tất cả dữ liệu người dùng - bao gồm cả tài liệu và mật khẩu được lưu trữ - có thể truy cập được mà không cần quyền truy cập root.

Một điểm hợp lệ hơn, trên một hệ thống người dùng đơn lẻ, là người dùng bị ngăn không cho vô tình khiến hệ thống không sử dụng được. Nếu người dùng vô tình đưa ra lệnh xóa tất cả các tệp, họ vẫn có thể khởi động hệ thống, ngay cả khi dữ liệu bị mất.

Ngoài ra, hầu hết các ứng dụng hướng về người dùng (X11) ngày nay được xây dựng trên giả định rằng chúng chạy như một tài khoản người dùng thông thường và không có quyền quản trị viên. Do đó một số chương trình có thể hoạt động sai khi chạy root.

Trên hệ thống đa người dùng chỉ có quyền truy cập trình bao đồ họa, nhiều lý do này không áp dụng. Tuy nhiên, Ubuntu vẫn mặc định hợp lý để không thể tiếp cận root tài khoản. Đối với một điều, có một sự khác biệt thực sự giữa việc truy cập vào tài khoản người dùng (với sudo quyền) thông qua lỗ hổng bảo mật và có quyền truy cập vào root, như trong trường hợp đầu tiên phá vỡ những người dùng khác sẽ yêu cầu chạy sudo và sẽ vẫn nhắc mật khẩu tài khoản như một bước bảo mật bổ sung. Đối với người khác, sẽ rất hữu ích khi thực hiện nhiều tác vụ quản trị từ tài khoản người dùng và chỉ gọi sudokhi các đặc quyền superuser được yêu cầu hoàn toàn. Vì vậy, khi cài đặt một chương trình từ nguồn, bạn nên xây dựng nguồn configure và make - bên trong thư mục của người dùng và chỉ sử dụng sudo make install trong bước cuối cùng. Một lần nữa điều này làm cho nó khó khăn hơn để bắn chính mình (và những người dùng khác của hệ thống đa người dùng) trong chân, và nó làm giảm khả năng xây dựng kịch bản tàn phá với hệ thống. Vì vậy, ngay cả trên một máy chủ nó là lời khuyên tốt để dính vào Ubuntu quản trị dựa trên sudo.


36
2017-12-04 17:24



he will still be able to boot the system, even if the data will be lost. - Điểm này là gì? Nếu dữ liệu của tôi bị mất, dữ liệu của tôi bị mất và đó là nó. Phần mềm hệ thống Linux có thể được cài đặt lại nếu bị xóa, tại sao tôi nên quan tâm đến việc mất dữ liệu trong các phần mềm như vậy? Mặt khác, mất dữ liệu trong ~ là xấu. Và sudo không bảo vệ tôi khỏi điều đó. - Blauhirn
Một phương pháp hay khác là phải sao lưu dữ liệu quan trọng. Nếu bạn xóa thư mục gốc, bạn vẫn có thể khởi động và chỉ sao chép qua các tệp từ bản sao lưu. Hoặc, giả sử bạn có một máy tính xách tay nhỏ để đi du lịch. Nó có thể có một số bức ảnh, ghi chú du lịch, lịch trình tàu hỏa - nhưng không có gì quá quan trọng. Nếu bạn xóa các tập tin người dùng, bạn vẫn có thể khởi động hệ thống và kiểm tra chuyến bay của bạn hoặc tìm ra xe buýt để đi. - Richlv
@Blauhirn Sao lưu. Và có một cơ hội phục hồi ngay cả khi nó trông ảm đạm. - Pryftan


Một lý do không chạy được với tư cách là người chủ mà không (cho đến nay) được xác định bởi các câu trả lời khác là truy xuất nguồn gốc. Nó có thể quan trọng hơn trên các máy chủ yếu là các máy đơn người dùng (máy tính để bàn hoặc máy tính xách tay của bạn), nhưng trên các máy chủ, nếu ai đó đăng nhập root, bạn không biết ai để đổ lỗi cho những hành động được thực hiện. Do đó, hầu hết các tổ chức chuyên nghiệp có nhiều hệ thống và nhiều quản trị viên cần root đặc quyền yêu cầu mọi người đăng nhập bằng ID người dùng (và mật khẩu) của riêng họ và sau đó sử dụng sudo hoặc các chương trình tương tự để hoạt động với root đặc quyền khi cần thiết.

Nếu không, các lý do chính để không chạy dưới dạng root là:

  • Giảm thiểu rủi ro thiệt hại do tai nạn. Nếu bạn chạy rm -fr / home/me/my-subdir với tư cách là người chủ, bạn đã loại bỏ mọi thứ quan trọng khỏi máy tính của mình vì không gian đó sau dấu gạch chéo đầu tiên - bởi vì thứ đầu tiên là thứ được thêm vào đầu tiên - những thứ nhỏ như hạt nhân, /bin và /etc danh mục. Unix rất khó chịu nếu bạn mất những thứ đó.

  • Giảm thiểu rủi ro thiệt hại từ các trang web độc hại bên ngoài. Nếu bạn duyệt qua root, bạn gần như dễ bị tấn công bởi tải xuống tài liệu độc hại.

Tôi sử dụng MacOS X nhiều hơn tôi làm Ubuntu, nhưng ở đó, root bị vô hiệu hóa theo mặc định, và nó vẫn còn trên máy tính của tôi. Tôi thường xuyên nâng cấp hạt nhân và các hoạt động tương tự khác - sử dụng sudo (đằng sau hậu trường). Các kỹ thuật tương tự áp dụng cho Linux nói chung.

Về cơ bản, bạn chỉ nên sử dụng các đặc quyền toàn quyền root cho các giai đoạn viết tắt của công việc để tránh nguy cơ sai lầm.


31
2017-12-04 23:10



Nó không phải là về đổ lỗi cho ai đó, đó là về việc có thể tìm ra tại sao ai đó đã thay đổi. - jippie
@ jippie: Tôi có nghĩa là 'đổ lỗi' theo cùng một cách mà một VCS theo dõi những người đã làm những gì để người đúng là do trách nhiệm cho sự thay đổi, cho tốt hay xấu, và một trong những tên cho lệnh mà theo dõi đó là 'đổ lỗi'. Nó cung cấp cho bạn một người để nói chuyện để tìm hiểu lý do tại sao một cái gì đó đã xảy ra. Nó không phải lúc nào cũng là 'lỗi' (mặc dù thường xuyên chán nản, lý do cần phải biết là vì điều gì đó không hoàn toàn hoạt động như mong đợi và cần phải biết tại sao không). Vì vậy, nó là về trách nhiệm và khả năng theo dõi hơn là nhất thiết phải gây lỗi cho người cho những gì họ đã làm. - Jonathan Leffler
Trên Ubuntu, các lệnh như rm -fr / home/me/my-subdir không thực sự cố gắng xóa đệ quy /, bởi vì / được điều trị đặc biệt để bảo vệ chống lại những sai lầm như vậy. Xem tài liệu của --preserve-root và --no-preserve-root tùy chọn trong man rmđể biết chi tiết. Nhưng nguyên tắc là âm thanh: typos ký tự đơn làm tồn tại kết quả đó rm xóa mọi thứ. Ví dụ: nếu bạn muốn xóa mọi thứ trong thư mục hiện tại bằng cách chạy rm -r *, nhưng bạn vô tình đặt / trước *, đó sẽ là xấu. - Eliah Kagan
@EliahKagan Nhưng nếu bạn đã làm ... chown -R nobody:nobody ../ từ nói / etc nó sẽ bảo vệ bạn? Nếu bạn đã làm điều đó trên / etc nó sẽ làm cho bạn một thế giới bị tổn thương. Tương tự như vậy là .* khi đệ quy chạy một lệnh. - Pryftan


TL; DR: Làm những việc như người chủ chỉ khi bạn phải làm. sudo làm cho điều này khá dễ dàng. Nếu bạn bật đăng nhập gốc, bạn vẫn có thể thực hiện theo quy tắc này, bạn chỉ cần cẩn thận để làm như vậy. Mặc dù việc bật đăng nhập root không thực sự không an toàn nếu được thực hiện đúng, bạn không cần bật đăng nhập root vì bạn có sudo.


20
2018-05-03 17:12



'Nếu bạn là người duy nhất sử dụng máy tính của bạn, tác hại bạn có thể làm chỉ vì root có thể không thực sự cao hơn mức độ nguy hiểm mà bạn có thể thực hiện với đặc quyền người dùng thông thường của mình. Nhưng đó vẫn không có lý do để mở rộng rủi ro của bạn 'Không phải đề cập đến nó đặt bạn trong thói quen của nó ... sau đó bạn đi đến một hệ thống khác và những gì sẽ xảy ra? Cùng với ý tưởng vô lý làm cho mọi người quen với rm -i bằng bí danh vỏ. Bạn đi đến một hệ thống mà không có điều đó và sau đó những gì? Bé ngồi một người sử dụng từ những sai lầm như thế này là không bao giờ là một ý tưởng tốt khi bạn xem xét con người là rất nhiều sinh vật của thói quen. - Pryftan


Tài khoản gốc được tắt theo mặc định - có nghĩa là nó tồn tại nhưng không thể sử dụng được (ngoại trừ trong chế độ khôi phục). Điều này có nghĩa là kẻ tấn công nhận thức được tài khoản gốc của bạn, nhưng không thể sử dụng nó ngay cả khi người đó có mật khẩu gốc. Do đó, kẻ tấn công phải đoán cả tên người dùng có đặc quyền của quản trị viên, VÀ mật khẩu của người dùng đó (khó hơn nhiều so với việc cố gắng tìm ra mật khẩu gốc) .Trong XP nếu bạn đã cài đặt Recovery Console, bất kỳ ai có quyền truy cập vật lý vào hộp của bạn có thể khởi động vào nó (RC) - không cần mật khẩu. Tương tự như Recovery Mode trong Ubuntu.

Trong Ubuntu, khi họ nói rằng gốc bị vô hiệu hóa - điều thực sự có nghĩa là tài khoản bị khóa. Tài khoản bị khóa bằng cách thay đổi mật khẩu thành giá trị không khớp với giá trị được mã hóa có thể. Điều này có hiệu quả ngăn cản bất kỳ ai có thể đăng nhập bằng root - vì sẽ không có cách nào có thể họ có thể nhập mật khẩu. Vì vẫn còn thời gian khi truy cập root là cần thiết - hạt nhân Ubuntu đã được sửa đổi để cho phép đăng nhập cục bộ root chỉ trong chế độ người dùng đơn.

Xem thêm trang


13
2017-12-04 17:18



Um. Không có hành vi phạm tội nhưng bạn có thể muốn đọc tiêu đề của câu hỏi và sau đó đọc lại chi tiết. - Mussnoon
Điều này cực kỳ hữu ích - và nó làm liên quan đến câu hỏi. Nó liên quan đến các tác động bảo mật của việc kích hoạt tài khoản, một điều kiện tiên quyết để chạy như là root. - Stefano Palazzo♦
@Stefano Palazzo: Mặc dù thông tin được cung cấp có thể hữu ích, tôi chân thành không thể nhìn thấy phần nào là câu trả lời cho những gì tôi cần biết. Tôi đã đọc nó nhiều lần. - Mussnoon
Không ngăn mọi người có thể đăng nhập vào thư mục gốc. - Chad