Tại sao Ubuntu không cho phép người dùng GUI đăng nhập bằng root tại thời điểm hệ thống khởi động giống như quản trị viên trong Windows?
Tại sao họ lại hạn chế chúng tôi chỉ đăng nhập thông qua thiết bị đầu cuối?
Tại sao Ubuntu không cho phép người dùng GUI đăng nhập bằng root tại thời điểm hệ thống khởi động giống như quản trị viên trong Windows?
Tại sao họ lại hạn chế chúng tôi chỉ đăng nhập thông qua thiết bị đầu cuối?
Câu trả lời:
Bởi vì không nên làm như vậy trừ khi bạn biết chính xác những gì bạn đang làm. Root là một siêu người dùng, có nghĩa là nó có thể làm bất cứ điều gì và mọi thứ - nó chỉ có nghĩa cho các nhiệm vụ hành chính. Các tác vụ hàng ngày có thể chịu rủi ro bảo mật SILL được khai thác nếu MỌI NGƯỜI (hoặc một tỷ lệ lớn người dùng) sử dụng root. Hãy nghĩ rằng Windows - 99% các vấn đề về phần mềm độc hại và vi rút là từ những người sử dụng tài khoản quản trị viên cho các tác vụ hàng ngày.
Hãy xem một ví dụ.
Điều gì xảy ra nếu ai đó xâm nhập vào hệ thống của bạn và bảo nó xóa đĩa của bạn? Nếu bạn đang chạy như một người dùng bình thường, các tệp duy nhất bạn sẽ (có thể) có thể xóa là những tệp thuộc về bạn chứ không phải ai khác. Nếu, giả sử, bạn có người khác sử dụng máy tính, các tệp của họ sẽ không bị chạm vào, cho dù bạn có cố gắng thế nào. Điều đó có nghĩa là bạn sẽ không thể thay đổi bất kỳ tệp hệ thống nào và do đó hệ thống của bạn sẽ vẫn ổn định và không bị ảnh hưởng / không bị nhiễm.
Tuy nhiên, nếu bạn chạy bằng root, bạn có thể xóa toàn bộ ổ cứng, có thể gây ra một số thiệt hại cho chính phần cứng và thường khiến hệ thống không sử dụng được. Correction: bất cứ ai có thể nhận được để chạy một đơn lệnh như là người chủ trên máy tính của bạn (một số trang web độc hại hoặc một tập tin đính kèm email) có thể làm điều đó.
Hãy xem http://everyjoe.com/tĩ/explain-why-not-log-on-as-root/ , là một bài viết hay có thể giải thích nó tốt hơn tôi đã làm.
EDIT: đây là một cái khác http://ihazomgsecurityskillz.blogspot.nl/2010/09/rasty-as-root.html
EDIT2: bạn luôn có thể sử dụng sudo command
hoặc gksu command
để chạy command
như siêu người dùng, cả hai đều hoạt động với các tiện ích đồ họa và dòng lệnh. sudo
Tuy nhiên, thường được sử dụng cho CLI và gksu
là mật khẩu đồ họa được thực hiện tương tự.
Để một mức độ nào đó, chúng cho phép bạn trở thành root
tạm thời - nhiều, nhiều hơn chạy bằng root liên tục và rủi ro bất ổn.
Trong Ubuntu tiêu chuẩn, các thông tin root
đăng nhập không được phép, không phải từ trình quản lý đăng nhập GDM (đồ họa) cũng như từ bảng điều khiển văn bản (nghĩa là, bạn sẽ nhận được nếu nhấn Ctrl+ Alt+ F1).
Để thực hiện root
các hoạt động (ví dụ, quản trị viên), bạn phải sử dụng các sudo
lệnh trong một thiết bị đầu cuối, hoặc bất kỳ GUI tương đương của nó: chúng sẽ yêu cầu bạn cho bạn mật khẩu và sau đó thực hiện các hoạt động ưu tiên yêu cầu (và duy nhất mà một).
Lý do cho hành vi này là, như những người khác đã chỉ ra, rằng các hoạt root
động thực hiện vốn đã rất rủi ro và số lượng hoạt động thực sự đòi hỏi root
đặc quyền là tương đối nhỏ: bằng cách sử dụng sudo
phương pháp này, bạn đang chạy hầu hết thời gian với một tài khoản không có quyền (nghĩa là vô hại cho hệ thống và những người dùng khác) và chỉ nhận được root
quyền hạn khi thực sự cần thiết.
Một ví dụ có thể giúp làm rõ. Giả sử bạn muốn cài đặt một dịch vụ mới (daemon) trên máy của bạn; cái này tương đối mới và bạn cần đọc về nó và cách cấu hình nó theo nhu cầu của bạn. Cuối cùng, bạn sẽ duyệt web rất nhiều để tìm thông tin, cấu hình ví dụ, v.v., có thể có một số trò chuyện IRC để hỏi thêm thông tin - không ai trong số này yêu cầu root
quyền hạn! Cuối cùng, bạn chỉ cần quyền truy cập đặc quyền cho hai thao tác:
sudo apt-get install ...
) vàMột nguyên tắc thường được chấp nhận trong bảo mật máy tính là luôn sử dụng mức đặc quyền ít nhất có thể để thực hiện một thao tác. - điều này làm giảm nguy cơ xảy ra sự cố do lỗi trong phần mềm hoặc lỗi từ nhà điều hành.
Thiết lập mặc định của Ubuntu đi theo hướng này; root
thay vào đó, nếu bạn đang sử dụng thông tin đăng nhập, cuối cùng bạn sẽ lướt internet, thực hiện IRC (và có thể tất cả các công cụ khác mà một người thực hiện đồng thời) từ root
tài khoản, do đó không cần thiết phải đe dọa hệ thống.
Cập nhật: Đối với ví dụ trình biên dịch của bạn, tôi sẽ tiến hành theo cách này:
Đăng nhập vào nút thông qua SSH với tư cách là người dùng thông thường của bạn và từ một nút Ubuntu hoặc GNU / Linux khác nơi bạn có màn hình X11 đồ họa đang chạy. Đảm bảo bật X11 chuyển tiếp qua SSH:
ssh -X myuser@remotemachine.example.org
Tại dấu nhắc shell / SSH, hãy ra lệnh:
sudo /path/to/the/compiler/install/program
Điều này sẽ chạy trình cài đặt trình biên dịch với các root
đặc quyền và truy cập (thông qua chuyển tiếp SSH) hiển thị đồ họa trước mặt bạn.
Lý do đằng sau việc sử dụng sudo trong Ubuntu có thể được tìm thấy ở đây . Nếu bạn cần một cách nhanh chóng để "đi root", tôi sử dụng sudo -s
hoặc sudo -i
.
Ngoài hàng núi cảnh báo bằng cách sử dụng root, bạn có thể kích hoạt đăng nhập root bằng cách đăng nhập và thực hiện các thao tác sau từ thiết bị đầu cuối:
sudo passwd
Điều này trước tiên sẽ nhắc bạn nhập mật khẩu của bạn sau đó sẽ yêu cầu bạn thay đổi mật khẩu UNIX. Mật khẩu bạn nhập sẽ dành cho root
tài khoản.
Các Ubuntu Wiki có một bài viết tuyệt vời về chiều sâu của rễ và sudo trong Ubuntu - hãy cẩn thận và cạm bẫy.
Có hai câu hỏi ở đây. Một là, tại sao đăng nhập root bị tắt theo mặc định trong Ubuntu? Điều đó đã được giải quyết bởi một số bài viết ở đây.
Câu hỏi thứ hai là, tại sao các thông tin đăng nhập gốc đồ họa lại bị chê bai?
Tất cả các nhược điểm của đăng nhập gốc nongraphical cũng áp dụng cho đăng nhập gốc đồ họa. Nhưng khi bạn đăng nhập bằng đồ họa, bạn chạy nhiều chương trình hơn, hoạt động theo cách phức tạp hơn nhiều so với khi bạn đăng nhập bằng máy tính. Toàn bộ giao diện người dùng đồ họa và tất cả các chương trình đồ họa cần thiết để sử dụng GUI hiệu quả, sẽ được chạy dưới quyền root. Một lỗ hổng bảo mật nhỏ trong bất kỳ ai trong số họ sẽ cho phép ai đó kiểm soát hoàn toàn hệ thống của bạn.
Đăng nhập với quyền root hoàn toàn không được khuyến nghị trong Ubuntu, nhưng không có sự đồng thuận trong cộng đồng bảo mật rằng đó là một thực tế tồi tệ. Tuy nhiên, đăng nhập gốc đồ họa chỉ đơn giản là một thực tiễn xấu và gần như tất cả các hệ điều hành đã loại bỏ chúng hoặc khuyến nghị mạnh mẽ chống lại chúng.
Ở mức độ thấp hơn, việc có một người dùng không phải root (đặc biệt là một người dùng có khả năng thực hiện các hoạt động với quyền root với sudo hoặc PolicyKit) trong một đăng nhập đồ họa có rủi ro. Nhưng chúng được kiểm soát nhiều hơn so với khi mọi thứ trong môi trường đồ họa thực sự phải được chạy dưới quyền root với khả năng không giới hạn. Tuy nhiên, đối với các tình huống bảo mật là tối quan trọng, thông thường nên loại bỏ hoàn toàn các giao diện đồ họa, đó là lý do tại sao Ubuntu Server không gửi GUI theo mặc định và chính thức khuyến nghị không cài đặt một giao diện (mặc dù nó được hỗ trợ để làm như vậy) .
Trong thế giới Windows, giờ đây bạn có thể cài đặt Windows Server theo cách chủ yếu loại bỏ giao diện người dùng đồ họa (về mặt kỹ thuật, vẫn còn một số yếu tố, nhưng nó bị tước bỏ và bạn không thể chạy các chương trình đồ họa tùy ý). Điều này dựa trên lý do tương tự.
Ngay cả khi bạn quyết định kích hoạt đăng nhập gốc, vui lòng không đăng nhập bằng đồ họa dưới dạng root. Kích hoạt đăng nhập gốc có thể khiến bạn có nguy cơ bảo mật cao hơn một chút; điều hành toàn bộ môi trường đồ họa khi root khiến bạn có nguy cơ cao hơn rất nhiều.
Ngoài ra, ngoại trừ các công cụ quản trị đồ họa được thiết kế để chạy dưới quyền root với gksu / gksudo / kdesudo, hầu hết các chương trình đồ họa không có ý định chạy dưới quyền root. Bởi vì chúng không được thử nghiệm rộng rãi trong chế độ này, chúng có thể thất bại hoặc hoạt động thất thường (điều này đặc biệt xấu, vì chúng đang chạy như root ).
Cuối cùng, ngay cả một số công cụ quản trị đồ họa, nhưusers-admin
, sẽ thất bại nếu chạy bằng root, vì chúng sẽ được chạy bởi người dùng bình thường và thực hiện các hành động với quyền root (mà không bao giờ thực sự chạy bằng root) bằng PolicyKit.
Mở Terminal ( Ctrl+ Alt+ Thoặc Dash home> Thêm ứng dụng> Đã cài đặt (Mở rộng)> Terminal).
ĐỂ HOẠT ĐỘNG TÀI KHOẢN ROOT
Trong một loại thiết bị đầu cuối hoặc dán sudo passwd root
. Nhập mật khẩu đăng nhập bình thường của bạn (nếu bạn được yêu cầu), sau đó bạn sẽ được yêu cầu nhập root
mật khẩu mới và xác nhận nó.
ĐỂ THÊM MỘT ĐĂNG KÝ MỚI KHUYẾN MÃI CHO PHÉP BẠN ĐỂ ĐĂNG NHẬP ROOT VÀ MẬT KHẨU
Trong một loại thiết bị đầu cuối hoặc dán. gksudo gedit /etc/lightdm/lightdm.conf
. Thao tác này sẽ mở cửa sổ soạn thảo văn bản đồ họa nơi bạn có thể chỉnh sửa tệp cấu hình cho màn hình đăng nhập.
Thêm dòng greeter-show-manual-login=true
vào dưới cùng của tập tin.
Bây giờ các tập tin nên đọc như sau:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
Lưu lightdm.conf
tệp và thoát khỏi gedit.
Khởi động lại Ubuntu 12.04 và bạn sẽ thấy một cửa sổ Đăng nhập Đăng nhập mới (thay thế cửa sổ "Khác" trước đó) cho phép nhập Tên người dùng và Mật khẩu. Nhập root
tên người dùng và sau đó nhập mật khẩu bạn đã gán cho tài khoản root.
Tôi hy vọng điều này sẽ giúp những người khác cần / muốn root
truy cập.
như đối với Ubuntu 12.04 LTS, bạn có thể thực hiện việc này bằng quyền root:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
Sau đó, bạn được yêu cầu nhập cả tên người dùng và mật khẩu để đăng nhập bằng đồ họa. Tôi giả sử bạn đã đặt mật khẩu cho root :)
Tôi biết có vô số lý do mà bạn không nên đăng nhập trực tiếp với quyền root, tuy nhiên, có thoát một số trường hợp hiếm gặp (ví dụ trong hộp kiểm tra chạy trong vmware) khi bạn thực sự đánh giá cao sự kiên nhẫn của việc root.
Bởi vì người dùng root và Quản trị viên (trong Windows) tương đương với một vị thần với máy tính. Người dùng đó có thể điều chỉnh mọi thứ từ quyền truy cập tệp đến thậm chí xóa toàn bộ hệ thống tệp. Điều khá phổ biến đối với người dùng gia đình trung bình là Quản trị viên (dưới tên đó hoặc tên khác được thiết lập khi khởi động lần đầu). Bởi vì bất kỳ chương trình nào được thực thi khi người dùng đó là toàn hệ thống, nó sẽ trở nên nguy hiểm.
Việc thiếu kiểm soát đối với các đặc quyền Quản trị cho phép các vấn đề về virus / phần mềm độc hại hoặc thậm chí tự hủy hoại. Chính vì điều này mà nhiều bản phân phối, bao gồm Ubuntu, đã hạn chế việc chuyển sang công suất cao thêm một bước (một bước nhận thức có phần giúp khẳng định rằng "mọi thay đổi tôi thực hiện ở đây là những thay đổi lớn hơn trong phạm vi").
Mặc dù bạn không thể đăng nhập trực tiếp dưới quyền root (vì những lý do mà người khác đã giải thích rõ), bạn có thể chạy các ứng dụng GUI dưới dạng root. Ví dụ: Hệ thống → Quản trị → Trình quản lý gói Synaptic là một ứng dụng đồ họa chạy dưới quyền root.
Để chạy một ứng dụng với quyền root (ứng dụng văn bản hoặc ứng dụng GUI), chỉ cần sử dụng một trong các lệnh sau:
sudo name-of-the-application
gksu name-of-the-application
Chúng gần như giống hệt nhau. Sự khác biệt chính là đầu tiên yêu cầu mật khẩu của bạn trên thiết bị đầu cuối, thứ hai sử dụng cửa sổ hộp thoại đồ họa.
sudo
và gksu
quan trọng hơn so với nơi bạn nhập mật khẩu. gksu
được ưa thích cho các ứng dụng GUI và sudo
cho dòng lệnh xem tại đây và đây
Root thực sự không được khuyên sử dụng thông thường nhưng đôi khi bạn có một danh sách dài các lệnh đầu cuối cần quyền root và việc đăng nhập với quyền root sẽ thuận tiện hơn. Tôi sử dụng sudo xterm
hoặc gksu xterm
để mở một thiết bị đầu cuối gốc Tôi nghĩ rằng nó dễ dàng hơn một chút để phân biệt cửa sổ thuật ngữ nào có quyền root khi bạn có dấu nhắc thuật ngữ "root @" tiện dụng
Lưu ý bổ sung: Ubuntu không cho phép người dùng GUI đăng nhập bằng root vì Ubuntu ngăn bạn vô tình xóa hoặc xóa các tệp quan trọng bằng ứng dụng GUI (như nautilus).
Chỉ với giao diện người dùng CLI, nó có thể giảm nguy cơ sai lầm của chúng tôi. Nhưng trước đây chúng ta không thể đăng nhập bằng root ngay cả trong chế độ CLI vì Ubuntu tạo mật khẩu ngẫu nhiên cho root. Nhiệm vụ quản trị gốc chỉ có thể được thực hiện bằng cách sử dụng mật khẩu của người dùng bằng lệnh sudo hoặc gksu.
Nó dựa trên quy tắc Debian.
Vì không có lý do chính đáng để đăng nhập với quyền root , tôi sẽ đoán sự khác biệt giữa RH (cho phép đăng nhập root) và ubfox (làm mọi thứ bằng sudo / gksu) là vấn đề ưu tiên.
Đối với phần khác của câu hỏi của bạn, bạn sẽ có thể chạy cài đặt đồ họa của mình bằng cách đăng nhập như một người dùng thông thường, nhấn ALT-F2
và nhập gksu
. Trong hộp thoại kết quả, chỉ cần nhập lệnh khởi chạy trình cài đặt của bạn.
Bạn nên luôn luôn đăng nhập như chính mình và sau đó sudo để thực hiện các hành động như root. Ubuntu được thiết lập để cho phép bạn hầu hết tất cả các quyền truy cập cần thiết theo mặc định. Những thay đổi nhỏ sẽ chăm sóc phần còn lại (như thêm bạn đã sử dụng vào các nhóm khác). Nó được coi là thực hành kém để đăng nhập như root. Thực tiễn tốt nhất trong ngành là mặc định được thiết lập ở đây.
Ai đó có thể đăng nhập bằng root có thể là một điều rất xấu từ góc độ bảo mật.