Tại sao nó là xấu để đăng nhập như root?


192

Tôi thường bắt gặp các bài đăng trên các diễn đàn hoặc các trang web khác nơi bạn thấy mọi người nói đùa theo cách như vậy về việc chạy / đăng nhập bằng root như thể đó là một điều gì đó khủng khiếp và mọi người nên biết về nó. Tuy nhiên, không có nhiều tìm kiếm cho thấy 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 bằng root khi lần đầu tiên dùng thử Linux cách đây nhiều năm (Redhat và Mandrake) và không nhớ gặp phải bất kỳ vấn đề nào vì điều đó.

Thực tế, có một số bản phân phối có nền màu đỏ sáng 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 trong quá trình cài đặt Windows của mình và chưa bao giờ gặp phải bất kỳ sự cố nào ở đó.


15
Tôi nghĩ không có vấn đề gì trong việc chạy một chương trình với quyền root. Chỉ là, bạn có thể gây hại cho hệ điều hành của mình (ngay cả những người sudo cũng có thể làm điều đó) nếu bạn không khôn ngoan trong linux. ngoài ra tôi không có vấn đề gì cả Nhưng đó chỉ là quan điểm của tôi.
Gaurav Butola

1
Câu hỏi liên quan ở đây .
loevborg

Khó khăn trong việc vào chế độ root khác nhau giữa các distro. Cá nhân tôi cảm thấy khó chịu vì cách Fedora không cho phép bạn 'sudo' ra khỏi hộp. OpenSUSE và Ubunto có sudo được cấu hình sẵn mặc dù ... và vì vậy nếu bạn chọn đúng bản phân phối, bạn có thể giảm thiểu những phiền toái của mình khi không thể truy cập vào các tệp.
djangofan

4
@GauravButola ngay cả khi bạn là một chuyên gia, đó 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

2
@DaboRoss các bình luận của OP rằng anh ta làm việc trong các cửa sổ với tư cách quản trị viên; đối với trải nghiệm (ít) của tôi trong HĐH đó, đối với tôi, nó giống với Ubuntu hơ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ó xin phép trước khi 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ị viên" người dùng trong các cửa sổ được dịch sang Ubuntu sẽ là chạy người dùng chính có cấu hình sudo để nó không yêu cầu vượt qua --- chạy trực tiếp vì root nguy hiểm hơn nhiều.
Rmano

Câu trả lời:


154

Nó đánh bại mô hình bảo mật đã được áp dụng 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à người phàm tục), do đó bạn phải nâng cao các đặc quyền của chúng để sửa đổi hệ thống cơ bản. Ví dụ: bạn không muốn sự cố gần đây của Rhybeatbox xóa sạch toàn bộ /usrthư mục của bạn do lỗi. Hoặc lỗ hổng đó vừa được đăng trong ProFTPD để cho phép kẻ tấn công có được vỏ ROOT.

Đó chỉ là một 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ở theo nhu cầu.


5
... Và nó bảo vệ bạn khỏi việc biến đổi những lỗi nhỏ trong thảm họa. Tôi là người dùng / người dùng Unix từ năm 1990, nhưng tôi vẫn chắc chắn có thể trượt một khoảng trống ở vị trí sai chính xác khi thực hiện rm -rf tmp/tests/*...
Rmano

9
1.) Hầu hết mọi người sẽ coi thư mục chính của họ quan trọng hơn thư mục gốc, vì trước đây không thể 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 bảo mật, bạn đúng. Nhưng đến từ các cửa sổ (nơi có nhiều phần mềm độc hại hơn), nơi tôi đã sử dụng tài khoản quản trị viên từ trước đến giờ (như nhiều người), tôi gặp khó khăn khi coi đây là một mối nguy hiểm thực sự. Tôi chỉ quá lười biếng để gõ sudovà 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 ?????
phil294

không đồng ý -_-: ~: |
Edgy1

@LazyPower cảm ơn vì đã chỉnh sửa câu trả lời của bạn, nhưng giờ tôi không hiểu nó nữa. Để sửa đổi thư mục Ubuntu ~ riêng tư của tôi, các chương trình không cần quyền sudo. Nhịp điệu CÓ THỂ xóa sạch 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! Làm thế nào điều này có liên quan đến quyền root?
phil294

1
Đó là một cuộc 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 rằng chúng tôi không muốn nó xóa toàn bộ / usr. Về mặt 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ĩ kịch bản đặc biệt này sẽ liên quan đến bảo mật cũng như thực tiễn tốt. Cảm ơn một lần nữa cho chú thích.
lazyPower

79

Chỉ một từ: bảo mật.

  1. Bạn đã đăng nhập với quyền 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, v.v. giờ đây có thể phá hủy hệ thống của bạn, vì giờ đây các virus có thể có quyền truy cập ở mọi nơi. Có, chỉ có một số vi-rút cho Ubuntu / Linux, nhưng đó cũng là vì bảo mật tốt và người dùng không có quyền mặc định.
  2. Không chỉ về vi-rút - lỗi nhỏ trong ứng dụng có thể xóa một số tệp hệ thống hoặc ...
  3. Khi bạn đăng nhập với quyền root, bạn có thể làm mọi thứ - hệ thống sẽ không yêu cầu! Bạn có muốn định dạng đĩa này? Ok, chỉ cần một cú nhấp chuột là xong, vì bạn đã root và bạn biết bạn đang làm gì ...

16
Tập tin dữ liệu, tất cả được 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 giá trị với tôi hơn các tập tin hệ thống. Tất cả các ví dụ trên của bạn vẫn là sự cố khi đăng nhập với tư cách người dùng, ngoại trừ các tệp hệ thống dễ thay thế được bảo vệ an toàn.
kbeta

5
@kbeta bạn cho rằng bạn đang chạy trên máy tính trong đó 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 có nhiều người dùng sử dụng hệ thống cùng một lúc. Trong trường hợp này, tính ổ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

2
@kbeta Đủ công bằng 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à tất nhiên việc sao lưu sẽ là một ý tưởng tốt cho dù hệ thống của bạn hiện đang gặp rủi ro hay không. Làm việc sao lưu hiện tại với một kế hoạch khắc phục thảm họa sẽ tốt hơn.
Pryftan

47

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

  1. Sự ngu ngốc: 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 bằng mọi cách có thể gây hại, bạn cần phải thực hiện sudo, điều này đảm bảo tạm dừng trong khi bạn nhập mật khẩu để nhận ra rằng bạn sắp thực hiện một thay đổi lớn / tốn kém.
  2. Bảo mật: Nó đã được đề cập khá nhiều lần trong câu hỏi này nhưng về cơ bản thì đó là điều tương tự, khó hack hơn nếu bạn không biết tài khoản đăng nhập của quản trị viên. root có nghĩa là bạn đã có một nửa bộ thông tin quản trị viên đang hoạt động.
  3. Bạn không thực sự cần nó: Nếu bạn cần chạy một số lệnh với quyền 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 -ibạ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 phục hồi: Bảng điều khiển phục hồi cho phép bạn thử và phục hồi sau khi làm điều gì đó ngu ngốc hoặc khắc phục sự cố do ứng dụng gây ra (mà bạn vẫn phải chạy như sudo :)) Ubuntu không có mật khẩu đối với tài khoản root 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ẽ khiến mọi người có quyền truy cập vật lý vào hộp của bạn khó có thể gây hại hơn.

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ì, có quá nhiều dữ liệu trên internet :) và rất nhiều người đã sử dụng Linux trong một thời gian dài nghĩ giống như bạn. Cách suy nghĩ về tài khoản root này khá mới (có thể là một thập kỷ?) 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ọ đã tham gia với ý định thực hiện thay đổi hệ thống. Có lẽ được mang lại từ những trải nghiệm tồi tệ trước đây và các tiêu chuẩn bảo mật mà hầu hết các hệ thống quản trị hệ thống đều biết rõ hơn nhưng họ vẫn không thích điều đó :).


'một thập kỷ có thể?' Lâu hơn nhiều so với ngay cả khi bạn viết bài này. Ngay cả khi không có sudo, vẫn không đề cập đến ví dụ như nhóm bánh xe (ví dụ). Sự tách biệt đặc quyền luôn luôn quan trọng và luôn luôn quan trọng và luôn luôn quan trọng. Otoh không như nhiều người đã sử dụng HĐH dựa trên Unix mà nhiều năm trước và nhiều người đã từng làm quản trị viên.
Pryftan

36

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

Trên máy tính để bàn, việc sử dụng roottài khoản là không phổ biế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 siêu người dùng được thực hiện thông qua sudovà nhận thức đồ họa của nó gksudokdesudo. rootTuy nhiên, việc đặt mật khẩu thật dễ dàng , 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 rootvà 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. Tuy nhiên, trên thực tế, một cuộc tấn công có thể gây ra một lượng sát thương lớn ngay cả khi không có đặc quyền siêu người dùng. Rốt cuộc, tất cả dữ liệu người dùng - bao gồm tài liệu và mật khẩu được lưu trữ - có thể truy cập mà không cầ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, 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 tới người dùng (X11) ngày nay đều được xây dựng dựa 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. Vì vậy, một số chương trình có thể hoạt động sai khi chạy như root.

Trên hệ thống nhiều người dùng chỉ có quyền truy cập shell phi đồ họa, nhiều lý do trong số này không được áp dụng. Tuy nhiên, Ubuntu vẫn mặc định hợp lý cho một roottài khoản không thể truy cập . Đối với một điều, có một sự khác biệt thực sự giữa việc giành quyền truy cập vào tài khoản người dùng (có sudoquyền) thông qua lỗ hổng bảo mật và quyền truy cập root, vì trong trường hợp đầu tiên, người dùng khác sẽ yêu cầu chạy sudovà vẫn sẽ nhắc mật khẩu tài khoản như một bước bảo mật bổ sung. Mặt khác, 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 quyền siêu người dùng là hoàn toàn bắt buộc. Vì vậy, khi cài đặt một chương trình từ nguồn, nên xây dựng nguồn - đang chạy configuremake- bên trong thư mục của người dùng và chỉ sử dụng sudo make installở bước cuối cùng. Một lần nữa, điều này làm cho việc bắn chính mình (và những người dùng khác của hệ thống nhiều người dùng) trở nên khó khăn hơn, và nó làm giảm khả năng xây dựng các tập lệnh phá hoại hệ thống. Do đó, ngay cả trên một máy chủ, bạn vẫn nên tuân thủ quản trị dựa trên sudo của Ubuntu .


2
he will still be able to boot the system, even if the data will be lost.- Ý của cái này là gì? Nếu dữ liệu của tôi bị mất, dữ liệu của tôi sẽ bị mất và đó là dữ liệu. 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 phải quan tâm đến việc mất dữ liệu trong các thư mục như vậy? Mặt khác, mất dữ liệu ~là xấu. Và sudokhông bảo vệ tôi khỏi điều đó.
phil294

2
Một thực hành tốt khác là sao lưu dữ liệu quan trọng. Nếu bạn xóa sạch thư mục chính, bạn vẫn có thể khởi động và chỉ cần sao chép các tập tin 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 xe lửa - nhưng không có gì quá quan trọng. Nếu bạn xóa các tệp 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 nào sẽ đ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

34

Một lý do để không chạy như root mà chưa (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. Có lẽ vấn đề ít hơn đối với các máy chủ yếu là máy một 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 máy chủ, nếu có ai đó đăng nhập root, bạn không biết ai sẽ đổ lỗi cho hành động đã 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ọ, sau đó sử dụng sudohoặc các chương trình tương tự để hoạt động với các rootđặc quyền khi cần thiết.

Mặt khác, lý do chính cho việc không chạy bằ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-subdirbằng root, thì bạn đã loại bỏ đáng kể mọi thứ quan trọng khỏi máy của mình vì khoảng trống đó sau dấu gạch chéo (đầu tiên) - bởi vì thứ đi trước là thứ được thêm vào trước - những thứ nhỏ như kernel, các /binvà các /etcthư mục. Unix 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 như root, bạn gần như dễ bị tải xuống bởi các tài liệu độc hại.

Tôi sử dụng MacOS X nhiều hơn Ubuntu, nhưng ở đó, root bị tắt theo mặc định và nó vẫn còn trên máy của tôi. Tôi thường xuyên nâng cấp kernel và các hoạt động tương tự khác - bằng cách 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 năng rootcho các khoảng thời gian làm việc viết tắt để tránh rủi ro sai lầm.


1
Nó không phải là để đổ lỗi cho ai đó, mà là về việc có thể tìm ra lý do tại sao một người nào đó thực hiện một sự thay đổi.
jippie

2
@jippie: Ý tôi là 'đổ lỗi' giống như cách mà một VCS theo dõi ai đã làm gì để người đúng được quy trách nhiệm cho sự thay đổi, tốt hay xấu và là một trong những tên cho lệnh thực hiện theo dõi đó là 'đổ lỗi'. Nó cung cấp cho bạn một người để nói để tìm hiểu tại sao điều gì đó xảy ra. Không phải lúc nào cũng là 'lỗi' (mặc dù thường xuyên buồn bã, lý do cần biết là vì một cái gì đó không hoạt động như mong đợi và cần phải biết tại sao không). Vì vậy, đó là về trách nhiệm và khả năng theo dõi chứ không nhất thiết là lỗi người đó vì những gì họ đã làm.
Jonathan Leffler

Trên Ubuntu, các lệnh như rm -fr / home/me/my-subdirkhông thực sự cố gắng xóa đệ quy /, vì /được xử lý đặc biệt để bảo vệ chống lại các lỗi đó. Xem tài liệu của --preserve-root--no-preserve-rootcác tùy chọn trong man rmđể biết chi tiết. Nhưng nguyên tắc là âm thanh: lỗi chính tả đơn nhân vật làm tồn tại kết quả là trong rmxóa tất cả mọi thứ. Ví dụ, nếu bạn muốn loại bỏ 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 đó *, điều đó sẽ rất tệ.
Eliah Kagan

@EliahKagan Nhưng nếu bạn định làm ... chown -R nobody:nobody ../từ nói / vv thì nó có bảo vệ bạn không? Nếu bạn làm điều đó trên / etc nó sẽ gây cho bạn một thế giới bị tổn thương. Tương tự là .*khi đệ quy chạy một lệnh.
Pryftan

21

TL; DR: Chỉ làm những thứ gốc khi bạn phải. sudolà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ể tuâ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 kích hoạt đăng nhập gốc 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 gốc vì bạn có sudo.

Thực sự có hai câu hỏi liên quan ở đây.

  • Tại sao việc đăng nhập với quyền root cho việc sử dụng máy tính hàng ngày của một người là xấu (duyệt web, email, xử lý văn bản, chơi game, v.v.)?
  • Tại sao Ubuntu mặc định vô hiệu hóa đăng nhập gốc hoàn toàn và sử dụng sudopolkit để cho phép quản trị viên chạy các lệnh cụ thể như root?

Tại sao không chạy mọi thứ như root, mọi lúc?

Hầu hết các câu trả lời khác bao gồm điều này. Nó đi xuống:

  1. Nếu bạn sử dụng quyền hạn gốc cho các nhiệm vụ không yêu cầu chúng và cuối cùng bạn sẽ làm điều gì đó bạn không muốn làm, bạn có thể thay đổi hoặc làm hại hệ thống của mình theo cách bạn không muốn.
  2. Nếu bạn chạy một chương trình với quyền root khi bạn không cần và cuối cùng sẽ làm điều gì đó mà bạn không muốn làm - ví dụ, do lỗ hổng bảo mật hoặc lỗi khác - nó có thể thay đổi hoặc gây hại hệ thống của bạn theo cách bạn không muốn.

Đúng là ngay cả khi không làm mọi thứ như root, bạn có thể gây hại. Ví dụ: bạn có thể xóa tất cả các tệp trong thư mục chính của mình, thường bao gồm tất cả các tài liệu của bạn, mà không cần chạy bằng root! (Hy vọng bạn có bản sao lưu.)

Tất nhiên, là root, có những cách bổ sung để vô tình phá hủy những dữ liệu tương tự. Ví dụ: bạn có thể chỉ định of=đối số sai cho một ddlệnh và ghi dữ liệu thô qua các tệp của bạn (điều này khiến chúng trở nên khó khăn hơn, nếu bạn chỉ xóa chúng).

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 chỉ có thể gây ra khi root có thể không thực sự cao hơn tác hại bạn có thể làm với các đặc quyền người dùng thông thường của mình. Nhưng đó vẫn không phải là lý do để mở rộng rủi ro của bạn để bao gồm các cách bổ sung để làm rối hệ thống Ubuntu của bạn.

Nếu việc chạy bằng tài khoản người dùng không phải root đã ngăn bạn thực hiện quyền kiểm soát máy tính của chính mình, thì điều này tất nhiên sẽ là một sự đánh đổi tồi tệ . Nhưng nó không-- bất cứ khi nào bạn thực sự muốn thực hiện một hành động với quyền root, bạn có thể làm như vậy với sudovà các phương thức khác .

Tại sao không làm cho nó có thể đăng nhập như root?

Ý tưởng rằng khả năng đăng nhập với quyền root vốn không an toàn là một huyền thoại. Một số hệ thống có tài khoản root được bật theo mặc định; các hệ thống khác được sử dụng sudotheo mặc định và một số được cấu hình với cả hai.

  • Ví dụ, OpenBSD , được coi là hệ điều hành đa năng an toàn nhất trên thế giới, được vận chuyển với tài khoản gốc được kích hoạt để đăng nhập dựa trên mật khẩu, cục bộ.
  • Các hệ điều hành được kính trọng khác thực hiện điều này bao gồm RHEL , CentOSFedora .
  • Debian (từ đó Ubuntu xuất phát ) để người dùng quyết định cách tiếp cận nào sẽ được cấu hình, trong quá trình cài đặt hệ thống.

Không sai khách quan khi có một hệ thống kích hoạt tài khoản root, miễn là

  1. bạn vẫn chỉ sử dụng nó khi bạn thực sự cần,
  2. bạn hạn chế quyền truy cập vào nó một cách thích hợp.

Thông thường người mới hỏi làm thế nào để kích hoạt tài khoản root trong Ubuntu. Chúng ta không nên che giấu thông tin này từ họ, nhưng thông thường khi mọi người hỏi điều này bởi vì họ có ấn tượng sai lầm rằng họ cần kích hoạt tài khoản root. Trên thực tế, điều này gần như không bao giờ cần thiết, vì vậy khi trả lời những câu hỏi như vậy, điều quan trọng là chúng tôi giải thích điều đó. Kích hoạt tài khoản root cũng giúp bạn dễ dàng tự mãn và thực hiện các hành động với quyền root không yêu cầu quyền root. Nhưng điều này không có nghĩa là cho phép tài khoản root tự nó không an toàn.

sudokhuyến khích và giúp người dùng chạy các lệnh như root chỉ khi họ cần. Để chạy một lệnh như root, gõ sudo, một khoảng trắng, và sau đó là lệnh. Điều này rất thuận tiện và nhiều người dùng thuộc mọi cấp độ kỹ năng thích phương pháp này.

Nói tóm lại, bạn không cần kích hoạt thông tin đăng nhập gốc vì bạn có sudo. Nhưng miễn là bạn chỉ sử dụng nó cho các tác vụ quản trị yêu cầu, thì nó cũng an toàn không kém để bật và đăng nhập với quyền root, miễn là nó chỉ theo những cách sau:

Tuy nhiên, rủi ro bảo mật được thêm đáng kể phát sinh nếu bạn đăng nhập bằng root theo những cách sau:

  • Đồ họa. Khi bạn đăng nhập bằng đồ họa, toàn bộ nhiều thứ sẽ chạy để cung cấp giao diện đồ họa và cuối cùng bạn sẽ chạy nhiều ứng dụng hơn dưới dạng root để sử dụng giao diện đó cho mọi thứ. Điều này đi ngược lại nguyên tắc chỉ chạy các chương trình là root thực sự cần quyền root. Một số chương trình này có thể chứa lỗi, bao gồm cả lỗi bảo mật.

    Hơn nữa, có một lý do không bảo mật để tránh điều này. Đăng nhập bằng đồ họa dưới dạng root không được hỗ trợ tốt - như loevborg đề cập , các nhà phát triển môi trường máy tính để bàn và các ứng dụng đồ họa thường không kiểm tra chúng là root. Ngay cả khi họ làm như vậy, đăng nhập vào môi trường máy tính để bàn đồ họa dưới dạng root không được người dùng thử nghiệm alpha và beta trong thế giới thực, vì hầu như không ai thử nó (vì lý do bảo mật đã giải thích ở trên).

    Nếu bạn cần chạy một ứng dụng đồ họa cụ thể như root, bạn có thể sử dụnggksudo hoặc sudo -H. Điều này chạy các chương trình gốc ít hơn nhiều so với khi bạn thực sự đăng nhập bằng đồ họa với tài khoản root.

  • Từ xa. Các roottài khoản có thể có hiệu lực làm bất cứ điều gì, và nó có cùng tên trên thực tế tất cả các hệ thống Unix-like. Bằng cách đăng nhập bằng root thông qua sshhoặc các cơ chế từ xa khác, hoặc thậm chí bằng cách định cấu hình các dịch vụ từ xa để cho phép nó , bạn sẽ dễ dàng hơn cho những kẻ xâm nhập, bao gồm các tập lệnh tự động và phần mềm độc hại chạy trên botnet, để có quyền truy cập thông qua sức mạnh vũ phu, tấn công từ điển (và có thể một số lỗi bảo mật).

    Có thể cho rằng rủi ro không quá cao nếu bạn chỉ cho phép đăng nhập gốc dựa trên khóa và không đăng nhập bằng mật khẩu .

Theo mặc định trong Ubuntu, không có thông tin đăng nhập gốc đồ họa cũng như đăng nhập từ xa thông qua SSH, ngay cả khi bạn cho phép đăng nhập bằng root . Đó là, ngay cả khi bạn kích hoạt đăng nhập root, nó vẫn chỉ được kích hoạt theo những cách an toàn hợp lý.

  • Nếu bạn chạy một máy chủ ssh trên Ubuntu và không thay đổi /etc/sshd/ssh_config, nó sẽ chứa dòng PermitRootLogin without-password. Điều này vô hiệu hóa đăng nhập gốc dựa trên mật khẩu, nhưng cho phép đăng nhập dựa trên khóa. Tuy nhiên, không có khóa nào được cấu hình theo mặc định, vì vậy trừ khi bạn thiết lập một khóa, điều đó cũng sẽ không hoạt động. Hơn nữa, đăng nhập root từ xa dựa trên khóa ít tệ hơn nhiều so với đăng nhập root từ xa dựa trên mật khẩu, một phần vì nó không tạo ra nguy cơ tấn công từ điển và tấn công từ điển.
  • Mặc dù các mặc định sẽ bảo vệ bạn, tôi nghĩ vẫn nên kiểm tra cấu hình ssh của bạn, nếu bạn sẽ kích hoạt tài khoản root. Và nếu bạn đang chạy các dịch vụ khác cung cấp đăng nhập từ xa, như ftp, bạn cũng nên kiểm tra chúng.

Túm cái vạy lại là:

  • Chỉ làm công cụ root khi bạn cần; sudogiúp bạn làm điều đó, trong khi vẫn cung cấp cho bạn toàn bộ quyền lực bất cứ lúc nào bạn muốn.
  • Nếu bạn hiểu cách thức hoạt động của root và sự nguy hiểm của việc lạm dụng nó, việc kích hoạt tài khoản root không thực sự có vấn đề từ góc độ bảo mật.
  • Nhưng nếu bạn hiểu điều đó, bạn cũng biết rằng bạn gần như chắc chắn không cần phải kích hoạt tài khoản root .

Để biết thêm thông tin về root và sudo, bao gồm một số lợi ích bổ sung sudomà tôi chưa đề cập ở đây, tôi rất khuyến nghị RootSudo trong wiki trợ giúp Ubuntu.


'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 chỉ có thể gây ra khi root có thể không thực sự cao hơn tác hại bạn có thể làm với các đặc quyền người dùng thông thường của mình. Nhưng đó vẫn không phải là lý do để mở rộng rủi ro của bạn 'Chưa kể nó đặt bạn vào thói quen của nó ... sau đó bạn đi đến một hệ thống khác và điều gì xảy ra? Tương tự với ý tưởng vô lý làm cho mọi người quen với rm -icách bí danh vỏ. Bạn đi đến một hệ thống không có cái đó và sau đó thì sao? Bé ngồi một người dùng từ những sai lầm như thế này không bao giờ là một ý tưởng tốt khi bạn coi con người là rất nhiều sinh vật của thói quen.
Pryftan

13

Tài khoản root bị 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 biết tài khoản root của bạn, nhưng không thể sử dụng nó ngay cả khi anh ta / cô ta có mật khẩu root. Do đó, kẻ tấn công phải đoán cả tên người dùng có đặc quyền quản trị viên và mật khẩu của người dùng đó (khó khăn 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ũng cài đặt Recovery Console 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ư Chế độ khôi phục trong Ubuntu.

Trong Ubuntu, khi họ nói rằng root 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. Điều này ngăn chặn hiệu quả bất kỳ ai có thể đăng nhập bằng root - vì sẽ không có cách nào họ có thể nhập mật khẩu. Vì vẫn có những lúc cần truy cập root - kernel Ubuntu đã được sửa đổi để chỉ cho phép đăng nhập cục bộ trong chế độ một người dùng.

Cũng xem trang này


Ừm. Không xúc phạm 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.
Muss Chiều

3
Đây là cực kỳ hữu ích - và nó không liên quan đến câu hỏi. Nó liên quan đến ý nghĩa bảo mật của việc kích hoạt tài khoản, điều kiện tiên quyết để chạy như root.
Stefano Palazzo

1
@Stefano Palazzo: Mặc dù thông tin được cung cấp có thể hữu ích, nhưng thật lòng tôi không thể thấy phần nào nằm trong câu trả lời cho những gì tôi cần biết. Tôi đã đọc nó nhiều lần.
Muss Chiều

Không ngăn cản mọi người có thể đăng nhập vào root.
Chad

12

Nó giống như vũ trang một đứa trẻ với khẩu AK47, trong khi anh ta có thể vui vẻ chơi với khẩu súng sơn của mình. ;)

Ý tôi là nó sai bởi vì bạn và các ứng dụng của bạn sẽ có nhiều đặc quyền hơn sau đó họ cần và đó là khi mọi thứ có thểđôi khi sẽ sai :(


5
một sự tương tự thông minh hơn. (
^ ^ ^)

2
Đây là một sự tương tự hoàn toàn không phù hợp. Một đứa trẻ với AK47 có thể tự sát và người khác. Một người dùng unix có quyền truy cập root có thể khiến hệ thống của họ tạm thời không thể hoạt động. (Người ta luôn có thể cài đặt lại hệ điều hành và phục hồi hoạt động).
kbeta

@kbeta Bạn nói đúng, sự tương tự của tôi là một chút ngoài tỷ lệ và phóng đại. xin vui lòng di chuyển trên.
omeid

@kbeta sự tương tự là thích hợp. rủi ro không phải là một hệ thống không thể hoạt động, nhưng mất dữ liệu và quyền riêng tư. người dùng root có thể xóa dữ liệu. vui lòng sử dụng phantasy của bạn để liên kết việc giết và mất dữ liệu.
n611x007

11

Câu hỏi rất hay ... Hãy để tôi trả lời nó từ quan điểm thực tế:

Khi tôi bắt đầu sử dụng Linux, cách đây hơn 10 năm, các bản phân phối chính đã không quảng cáo bằng các tài khoản không root nhiều như ngày nay. Khi tôi đã quen với Windows, tôi cũng không thấy có điểm nào trong việc sử dụng tài khoản người dùng bị ràng buộc. Đặc biệt bởi vì tôi đã phải nhập "su" rất thường xuyên - sudo không phải là phổ biến trước đó. ;-) Vì vậy, tôi luôn đăng nhập bằng root vì tôi phải bảo trì rất nhiều để hệ thống của tôi được cấu hình tốt. Nhưng đoán xem, bất kỳ hệ thống mới được cài đặt nào cũng trở nên rất không ổn định.

Chẳng hạn, một vấn đề cụ thể: Tôi không có nhiều dung lượng ổ cứng dành riêng cho Linux nên đã xảy ra với tôi một vài lần rằng tôi còn 0 byte trên phân vùng. Có thể tôi không hoàn toàn chính xác vì tôi không biết cơ chế chính xác, nhưng khi bạn lấp đầy một đĩa bằng tài khoản không root thì luôn có một vài kilobyte. Nhưng nếu bạn thực sự còn 0 byte, hệ thống của bạn sẽ gây ra những lỗi kỳ lạ và bạn có thể sẽ gặp một số khó khăn để khắc phục thiệt hại trong hệ thống của mình vì có rất nhiều phần mềm hệ thống đang chạy trong nền ...

Một điều nữa là: Sự phân chia giữa root và non-root giúp hệ thống của bạn được tổ chức tốt. Là người dùng root, bạn có thể không muốn cài đặt sạch các ứng dụng mới của mình, điều này khiến bạn có một hệ thống khó bảo trì, bẩn.

Nhưng điều tốt: Các bản phân phối hiện đại thực hiện hầu hết các nhiệm vụ quản trị cho bạn, vì vậy hiếm khi bạn phải tìm hiểu về hệ thống Linux của mình bằng tài khoản root. Nhập mật khẩu theo thời gian là đủ, phần còn lại được thực hiện bởi các tập lệnh của nhà phân phối.

Nhưng tôi nghi ngờ rằng bạn không gặp vấn đề gì với hệ thống Windows của mình nếu bạn sử dụng 95 oder 98. (Ít nhất tôi có vấn đề với điều đó ...) Vì thiếu sự tách biệt rõ ràng giữa Quản trị viên và người dùng thông thường "truyền thống "Các ứng dụng Windows cho rằng chúng có thể làm bất cứ điều gì, ví dụ như cài đặt phần mềm gián điệp nếu chúng cảm thấy thích, thậm chí không cần nói với bạn. Microsoft tham gia vào vấn đề đó khi phát hành Vista. (Thực hiện hiệu quả một cơ chế sudo.) Vì vậy, mọi người có những cuộc đối thoại rất khó chịu nói rằng "Bạn không thể làm điều đó". Đối với một số phần mềm không tuân thủ Vista, bạn cần một số bản hack bẩn để cài đặt phần mềm, ngay cả với tư cách Quản trị viên ...


'Có thể tôi không hoàn toàn chính xác vì tôi không biết cơ chế chính xác, nhưng khi bạn lấp đầy một đĩa bằng tài khoản không root thì luôn có một vài kilobyte.' Có lẽ bạn tham khảo thư mục bị mất + tìm thấy? Nếu vậy bạn có thể là quản trị viên chỉ định số tiền dự trữ. Tôi muốn nói mặc định điển hình là 5% nhưng tôi có thể sai và nó có thể được thay đổi. Nó khá hữu ích mặc dù hiếm khi cần thiết. Rõ ràng có nhiều hơn về nó ở đây (tôi nhớ nó từ những năm sử dụng của tôi): unix.stackexchange.com/questions/18154/ trộm
Pryftan

Thực tế, nó không giới hạn ở các hệ thống tập tin mở rộng: unix.stackexchange.com/questions/7950/ mẹo
Philip

Vâng. Tôi biết điều đó :) Nhưng cảm ơn vì đã thêm nó.
Pryftan

10

Có rất nhiều khía cạnh đằng sau phương pháp này. Một số trong số họ là:

  • Root là tất cả mạnh mẽ.
  • Trong các hệ thống giống như Unix và Unix, các đặc quyền quản trị hệ thống là tất cả hoặc không có gì. Người dùng có quyền truy cập root hoặc không và quyền truy cập root ngụ ý kiểm soát hoàn toàn máy. Nếu máy đang được sử dụng bởi nhiều người hoặc root có quyền truy cập vào các hệ thống hoặc tệp người dùng khác, việc cung cấp cho một số người dùng quyền root một phần sẽ dễ chấp nhận hơn.

  • Người dùng root có thể ẩn tất cả các hành động của họ.
  • sudo ghi lại mọi lệnh chạy qua sudo. Có một bản ghi về những gì đang được thực hiện với sudo giúp chúng tôi chẩn đoán các vấn đề với các hệ thống / quy trình riêng lẻ và các vấn đề cấu hình chung, cũng như giúp chúng tôi xác định các cải tiến cần thiết.

  • Mật khẩu gốc cho phép bạn truy cập vào bất kỳ lệnh nào trên hệ thống.
  • Thông qua tập tin cấu hình của nó, sudo có thể cấp quyền truy cập root cho một nhóm lệnh cụ thể. Điều này cũng tránh hiệu ứng "tất cả hoặc không có gì", cho phép chúng tôi cung cấp cho người dùng cá nhân nhiều quyền kiểm soát hơn đối với máy của họ và giúp họ thoát khỏi các vấn đề phổ biến.

    đây là một bài viết hay: http://cf.stanford.edu/policy/root


    Nhưng khi bạn có sudo đầy đủ, bạn có thể sudo su và ẩn hành động của mình.
    Wilhelm Erasmus

    8
    rm /*
    

    Hãy nói rằng bạn đã dọn dẹp một khu vực hành chính. Bạn mệt mỏi với mật khẩu, vì vậy bạn sudo su. Bạn bị phân tâm chỉ trong giây lát và quên bạn cd /. Sau đó, bạn rm *. Tôi đã làm xong. Bạn có thể lấy lại tất cả, nhưng đó là Pita. Ồ, và nó cũng rơi vào /mediaquá!


    10
    Chúng tôi luôn phàn nàn về việc PC của chúng tôi quá chậm, nhưng dường như chúng được tối ưu hóa để chạy một rm như thế càng nhanh càng tốt.
    jippie

    1
    @jippie Bởi vì RM chỉ phá hủy liên kết inode đến tập tin. Không mất nhiều thời gian để xóa một liên kết và đánh dấu một khoảng trắng là "miễn phí".
    Kaz Wolfe

    @jippie, nó sẽ có bản dựng trong 10 giây đếm ngược
    Hy vọng sẽ giúp ích cho

    7

    Tại sao không có đăng nhập root?

    Mặc dù bạn có thể tạo mật khẩu cho tài khoản superuser cho phép bạn đăng nhập bằng root, nhưng điều đáng nói là đây không phải là cách làm "Ubuntu". Ubuntu đã đặc biệt chọn không cung cấp thông tin đăng nhập và mật khẩu gốc theo mặc định vì một lý do. Thay vào đó, cài đặt Ubuntu mặc định sẽ sử dụng sudo.

    Sudo là một giải pháp thay thế cho việc cung cấp cho mọi người mật khẩu gốc để thực hiện các nhiệm vụ siêu người dùng. Trong cài đặt Ubuntu mặc định, người đã cài đặt HĐH được cấp quyền "sudo" theo mặc định.

    Bất kỳ ai có quyền "sudo" đều có thể thực hiện một cái gì đó "như một siêu người dùng" bằng cách chờ xử lý trước sudolệnh của họ. Chẳng hạn, để chạy apt-get dist-upgradenhư một siêu người dùng, bạn có thể sử dụng:

    sudo apt-get dist-upgrade
    

    Lợi ích của phương pháp sudo

    • Với sudo, bạn chọn trước những người dùng có quyền truy cập sudo. Không cần cho họ nhớ mật khẩu gốc, vì họ sử dụng mật khẩu của riêng họ.

    • Nếu bạn có nhiều người dùng, bạn có thể thu hồi quyền truy cập siêu người dùng chỉ bằng cách xóa quyền sudo của họ mà không cần thay đổi mật khẩu gốc và thông báo cho mọi người về mật khẩu mới.

    • Bạn thậm chí có thể chọn lệnh nào mà người dùng được phép thực hiện bằng sudo và lệnh nào bị cấm đối với người dùng đó.

    • Và cuối cùng, nếu có vi phạm bảo mật, trong một số trường hợp, có thể để lại dấu vết kiểm toán tốt hơn cho thấy tài khoản người dùng nào bị xâm phạm.

    Sudo giúp thực hiện một lệnh đơn giản hơn với các đặc quyền siêu người dùng. Với thông tin đăng nhập gốc, bạn vĩnh viễn vẫn ở trong trình bao siêu người dùng phải thoát bằng exithoặc logout. Điều này có thể dẫn đến việc mọi người ở trong vỏ siêu người dùng lâu hơn cần thiết chỉ vì nó thuận tiện hơn đăng xuất và đăng nhập lại sau đó.

    Với sudo, bạn vẫn có tùy chọn mở trình bao siêu người dùng (tương tác) vĩnh viễn bằng lệnh:

    sudo su
    

    ... Và điều này vẫn có thể được thực hiện mà không cần bất kỳ mật khẩu gốc nào, vì sudocung cấp đặc quyền siêu người dùng cho sulệnh.

    Và tương tự, thay vì su -cho một vỏ đăng nhập, bạn có thể sử dụng sudo su -hoặc thậm chí sudo -i.

    Tuy nhiên, khi làm như vậy, bạn chỉ cần lưu ý rằng bạn đang hoạt động như một siêu người dùng cho mỗi lệnh. Đó là một nguyên tắc bảo mật tốt để không tồn tại như một siêu người dùng lâu hơn mức cần thiết, chỉ để giảm khả năng vô tình gây ra một số thiệt hại cho hệ thống (không có nó, bạn chỉ có thể làm hỏng các tệp mà người dùng của bạn sở hữu).

    Chỉ cần làm rõ, bạn có thể , nếu bạn chọn, cung cấp cho người dùng root mật khẩu cho phép đăng nhập với quyền root, nếu bạn đặc biệt muốn thực hiện mọi thứ theo cách này thay thế. Tôi chỉ muốn cho bạn biết về quy ước ưa thích của Ubuntu sudothay vào đó và thử và giải thích một số lý do tại sao Ubuntu ủng hộ cách tiếp cận đó như một mặc định.

    Tại sao không cho phép đăng nhập root qua SSH?

    Thậm chí nếu người dùng gốc của bạn không có một mật khẩu cho phép bạn đăng nhập bằng root, nó vẫn là một thực tế an ninh tốt để vô hiệu hóa đăng nhập gốc trực tiếp từ bên ngoài, chẳng hạn như trong SSH. Đó là hợp lý cho người dùng phải su -hoặc sudosau khi đăng nhập ban đầu.

    Những lợi ích tiềm năng cho điều này chủ yếu liên quan đến bảo mật:

    • Nó làm giảm vectơ tấn công bằng cách loại bỏ khả năng brute-buộc mật khẩu gốc từ xa. Đó là một điển hình cho một máy chủ trên internet liên tục bị chặn bởi những nỗ lực để bắt bẻ mật khẩu gốc thông qua SSH.

    • Nó tạo ra một lộ trình kiểm toán tốt hơn để ngay cả trong trường hợp vi phạm nơi kẻ tấn công được các đặc quyền siêu người dùng sau này, bạn có thể thấy tài khoản người dùng của mình đã được sử dụng để có quyền truy cập.


    6

    Khi đăng nhập với quyền root, các ứng dụng, tập lệnh hoặc lệnh dòng lệnh có thể truy cập vào các phần nhạy cảm của phần mềm có thể làm hỏng hệ thống. Đây có thể là kết quả của sự thiếu kinh nghiệm đối với phần của người dùng hoặc lập trình viên hoặc do mã ẩn độc hại.


    5

    Nó chỉ quá dễ gây rối khi hoạt động như root. Bạn có thể ghi đè toàn bộ hệ thống theo một lệnh ...


    5

    Tôi có thể thêm rằng có một sự khác biệt giữa Quản trị viên trong Windows và root trong Unix. Quản trị viên vẫn có một số hạn chế trong các hệ thống, trong đó root không có bất kỳ hạn chế nào . Tương tự chính xác của root trong Windows là người dùng hệ thống .

    Điều tồi tệ khi sử dụng PC dưới root / System là bạn có thể vô tình phá hủy mọi thứ mà không có bất kỳ cảnh báo nào từ HĐH.


    3

    Lý do không sử dụng root:

    • Có thể vô tình phá hủy các tập tin hệ thống
    • Có thể bị nhiễm trùng
    • Không đăng nhập hành động

    Lý do sử dụng root:

    • Truy cập vào mọi thứ, không cần nhập mật khẩu
    • GUI, không sử dụng thiết bị đầu cuối để quản lý tập tin / thư mục hệ thống

    Dường như với tôi rằng một tài khoản không root vẫn có thể trở thành nạn nhân của những lý do chống lại việc sử dụng root, phần lớn nó thêm vào là một xác nhận cho hành động của bạn. Tôi nghĩ rằng miễn là bạn biết những gì bạn đang làm, bạn hoàn toàn an toàn khi sử dụng root. Ở đó, tôi đã nói nó.


    Mặc dù về mặt kỹ thuật, có một cách để ghi lại các hành động bao gồm mọi lệnh đơn lẻ. Điều này đi cho mọi người dùng. Xem quy trình kế toán, ví dụ tại đây: linuxjournal.com/article/6144 Và nó chỉ thực sự an toàn nếu bạn cần root; mặt khác, nó không hoàn toàn an toàn (khai thác, v.v.) ngay cả khi lệnh phải an toàn.
    Pryftan

    3

    Nếu các ứng dụng được chạy dưới quyền root, không có gì đảm bảo rằng không ai trong số chúng sẽ thực thi

    rm -rf /
    

    (Đây là một ví dụ về lệnh không nên chạy.)


    @StefanoPalazzo Bài đăng này không có ý nghĩa với lệnh đã bị xóa, vì vậy tôi đã khôi phục lại chỉnh sửa của mình - bạn cũng có thể đã xóa bài đăng. Lưu ý rằng, trái với quan niệm sai lầm phổ biến, lệnh này, như được viết, không thực sự xóa các tệp khi chạy trên hệ thống Ubuntu, nhưng nó tương tự như các lệnh thực hiện. Vì vậy, nếu bạn lo ngại ai đó có thể sao chép lệnh và nuke hệ thống của họ, điều đó không có khả năng. Xem tài liệu của --preserve-root--no-preserve-rootcác tùy chọn trong man rmđể biết chi tiết.
    Eliah Kagan

    Solaris coi lệnh này là hành vi không xác định theo cách giải thích POSIX rộng (và Bryan Cantrill) và đưa ra một lỗi
    Jeremy Hajek

    3

    Với một người dùng am hiểu và cẩn thận, tôi không chắc có câu trả lời đúng hay không. Tôi đã không thấy câu trả lời này, vì vậy tôi nghĩ rằng tôi đã bấm chuông.

    Điều tôi không thích là những thay đổi không chủ ý của các quyền trên các hệ thống nhiều người dùng mà tôi cần chmodsau này. Sửa chữa qua chmod sau thực tế khó chịu hơn nhiều so với việc cần sudo, nhưng nó phụ thuộc vào những gì tôi đã lên kế hoạch.


    3

    Không có nguy hiểm trong việc đăng nhập như root nếu được sử dụng cẩn thận.

    Mặc dù tôi nghĩ rằng vô hiệu hóa root là giải pháp thích hợp hơn, bởi vì kẻ tấn công không thể vũ phu nó.

    Một giải pháp là tạo người dùng trong nhóm sudo với tên tối nghĩa, thích gamervà sử dụng sudo để thực hiện các tác vụ quản trị.

    Do đó, kẻ tấn công không chỉ đoán mật khẩu của người dùng quản trị đó mà cả tên đăng nhập của anh ta. Điều này là không rõ ràng nếu người dùng sử dụng sudo có tên đăng nhập như kittyhoặc gamerhoặc một cái gì đó tương tự.


    2

    Phần mềm dựa trên các thư viện chia sẻ, phụ thuộc, các file cấu hình, vv
    Hầu hết các lần, một nhấp chuột duy nhất trong một ứng dụng gọi là "phản ứng dây chuyền" của nhiều thay đổi, chứ không phải duy nhất mà bạn nghĩ rằng nó sẽ có thể.
    Khi những thay đổi này sắp ảnh hưởng đến các cài đặt quan trọng của hệ thống, điều đó tốt cho bạn - với tư cách là người dùng - biết.
    Đó là lý do tại sao quyền truy cập root là một mô hình bảo mật tốt:
    Nếu điều gì đó quan trọng sắp xảy ra với hệ thống của bạn, bạn sẽ được thông báo bằng cách được yêu cầu nâng cao đặc quyền.


    1

    Đó là một vấn đề hai mặt với nhiều hơn một câu trả lời.

    Đối với một số kiểm tra thực tế về các câu trả lời tương tự nhưng rất tệ cho điều này:

    desktop installations:

    • sử dụng người dùng của riêng bạn và sudo nếu cần, nếu không, một vectơ tấn công đã sử dụng thành công vì bạn không thực sự biết những gì bạn đang làm và hệ thống của bạn bị xâm phạm
    • ở các công ty lớn hơn, bạn thậm chí có thể không có quyền root trên máy trạm của riêng mình, ngay cả khi bạn là quản trị viên, tùy thuộc vào số lượng mũ thiếc-lá có mặt.

    server installations:

    • có một sự khác biệt lớn giữa việc thực hiện các phiên làm việc ngắn của bạn là hợp pháp (với điều kiện bạn có thông tin đăng nhập không mật khẩu, quản lý khóa ssh phù hợp cho tất cả các máy chủ - và fail2ban được định cấu hình cho tất cả thông tin đăng nhập mật khẩu trong khi bạn vẫn ở đó) và có mọi trình nền / dịch vụ chạy với người dùng riêng của nó (đó là điều bắt buộc) - hầu hết mọi người dường như không nhận ra sự khác biệt
    • để giải trí: hãy thử sử dụng các công cụ quản lý cấu hình được kiểm soát phiên bản của bạn (ansible / con rối / muối / bất cứ thứ gì có tệp từ máy chủ git) mà không có quyền truy cập root. (bạn có sẵn một số hình thức AAA cho các hệ thống đặc biệt này, cũng như cho các hệ thống giám sát và sao lưu của bạn không?)
    • Ngoài ra: mặc định rm -rf /không hoạt động trong hầu hết các bản phân phối chính thống IIRC
    • bất kỳ nơi làm việc nghiêm túc nào cũng có máy chủ jumphost / bastion để truy cập vào đội máy chủ ghi lại bất cứ điều gì bạn làm dù thế nào, có khả năng được bảo vệ thêm bởi 2FA
    • nếu bạn có sudo và không có jumphost, bạn có thể sửa các bản ghi máy chủ để kết thúc tuy nhiên bạn muốn chúng bằng mọi cách, nếu chúng không được nhân đôi trong thời gian thực, đó là.
    • khi các bản ghi ssh cũng được 'dọn dẹp', bạn thậm chí không thể được chứng minh là đã có trên máy chủ, nếu không có hệ thống giám sát mạng nào nữa

    Đối với bất kỳ quy mô công ty nào (đọc: rất có thể là SOHO với ip tĩnh) ở giữa hai thái cực thiếu các biện pháp giám sát / sao lưu / tự động hóa / ghi nhật ký, có thể hữu ích khi thực thi sử dụng sudo trên máy chủ. (Điều này bị phá vỡ bởi những người thực hiện sudo su -ASAP sau khi kết nối, hãy để mọi ý định đăng nhập những gì đã xảy ra trở nên lãng phí ngay cả khi không có ý định độc hại ngay khi có nhiều người dùng root đăng nhập. Chúc may mắn thay đổi điều này thông qua các thủ tục bắt buộc và đối xử với mọi người bằng tiếng hà khắc Các biện pháp cho việc không tuân thủ các quy tắc. Cuộc sống luôn tìm thấy một cách.)

    Nhưng nếu bạn không có ít nhất fail2ban để bảo mật thông tin đăng nhập mật khẩu của mình (nếu có bất kỳ hiện tại nào, đặc biệt là trên các hệ thống đối mặt với internet), hãy chú ý đến việc xử lý mật khẩu thích hợp (công cụ quản lý mật khẩu, chính sách lưu giữ, không có mật khẩu chính, xử lý những nhân viên này biến động ...) và có một số hình thức quản lý cập nhật thích hợp cho đội máy chủ để tất cả các máy chủ được vá thường xuyên, dù sao bạn cũng sẽ bị hack vào một ngày nào đó, dù là từ bên trong hay từ bên ngoài.

    Và luôn luôn sử dụng sudotôn giáo và thực thi việc sử dụng nó trong số tất cả mọi người sẽ không thay đổi xác suất của bạn để được sở hữu nhiều trong trường hợp đó.


    Cuối cùng là một câu trả lời thực tế và khác biệt, thay vì câu 'không bao giờ làm điều này' - câu thần chú. +1 và cảm ơn vì điều này.
    Andreas H.

    0

    Cuối cùng, không có hại trong việc chạy như root. Đó chỉ là một nhóm người hoang tưởng nghĩ rằng việc cài đặt lại hệ điều hành là không thể. Đối số "Ai đó có thể thỏa hiệp một chương trình ..", vậy thì sao? nếu họ làm điều đó thì họ đã có thể khóa mật khẩu của bạn hoặc chỉ hiển thị một yêu cầu mật khẩu gốc và bạn có cung cấp cho họ mật khẩu không. Thổi bay hệ thống của bạn vì bạn chọn mọi thứ trong / và xóa? oh tốt, ra khỏi trình cài đặt và cài đặt lại. Chỉ mất chưa đầy 20 phút, lấy một ly cà phê và thư giãn. Root vẫn ổn, tôi đã chạy root miễn là tôi có thể nhớ và bạn biết nó làm gì không? Nó làm cho việc cài đặt các gói ít đau đầu hơn. Bạn không cần phải nhập mật khẩu root cứ sau 5 phút như bình thường. Bạn không gặp phải vấn đề khi cố lưu / chỉnh sửa tệp cấu hình hệ thống vì chúng ' quyền root chỉ. Nó chỉ đơn giản là dễ dàng hơn và tốt hơn để chạy như root.

    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.