Làm thế nào để KHÔNG trở thành người dùng root? Là quản trị viên root?


42

Tôi đã cài đặt Ubuntu trên PC. Để đăng nhập, tôi sử dụng tên người dùng và mật khẩu tôi đã tạo trong khi cài đặt. Điều này có nghĩa là tôi là một người dùng root? Nếu có, làm thế nào để tôi trở thành không root? Có vẻ như người dùng không root an toàn hơn người dùng quản trị.


9
Bạn đang nhầm lẫn root với quản trị viên , hai điều khác nhau.
fitojb


Windows 7 không làm rõ sự khác biệt này, điều này thực sự làm phiền và làm tôi bối rối. Tương đương với việc chạy bằng root trong Windows là "Chạy với tư cách Quản trị viên". Nhưng tất nhiên, nếu bạn đăng nhập với tư cách quản trị viên, bạn đã chạy mọi thứ với tư cách quản trị viên theo định nghĩa. Lựa chọn thuật ngữ thực sự kém.
Kris Harper

@KrisHarper Theo định nghĩa (hoặc thậm chí là đúng), người dùng phải tự chạy các chương trình. Trong Ubuntu, quản trị viên (người không root) có thể chạy các chương trình với quyền root sudo. Nói chung, quản trị viên (hoặc người dùng được ủy quyền khác) X có thể chạy command...như Y với sudo -u Y command.... Trong Windows Vista trở lên, khi bật UAC , người dùng có quyền quản trị sẽ chạy các chương trình mà không có chúng , trừ khi họ ủy quyền rõ ràng cho một chương trình kế thừa khả năng của họ. Chạy với tư cách Quản trị viên xuất hiện khi bật UAC (hoặc cho người dùng hạn chế).
Eliah Kagan

@EliahKagan Tất nhiên là bạn đúng. Người sử dụng được cấp mã thông báo bảo mật cấp thấp và có thể yêu cầu cấp cao hơn khi cần. Tôi đã nói về ngữ nghĩa từ quan điểm trải nghiệm người dùng. Nếu tôi quản trị một máy tính và đang sử dụng nó, tôi thực sự đang chạy các chương trình với tư cách là quản trị viên. Quan điểm của tôi là đó là một lựa chọn thuật ngữ kém vì nó phá vỡ sự trừu tượng giữa quản trị viên vật lý (bản thân tôi) và kỹ thuật số (một tài khoản người dùng cụ thể). Tôi thấy đó là UX tồi, mặc dù người thành thạo về kỹ thuật sẽ hiểu chuyện gì đang xảy ra.
Kris Harper

Câu trả lời:


79

Bạn là một quản trị viên, nhưng không root. Người rootdùng có thể làm bất cứ điều gì. Quản trị viên có thể thực hiện các hành động nhưroot , nhưng thông thường những gì quản trị viên không thực hiện root. Bằng cách đó, bạn có toàn quyền kiểm soát hệ thống của riêng bạn, nhưng chỉ khi bạn chọn sử dụng nó.

Ubuntu yêu cầu mật khẩu của bạn khi bạn cố gắng thực hiện root, để đảm bảo đó thực sự là bạn.

Tài khoản người dùng: Con người và mặt khác

Người dùng thực sự có tài khoản người dùng để đại diện cho họ. Bạn đã tạo một tài khoản như vậy khi bạn cài đặt Ubuntu. Nhưng không phải tất cả tài khoản người dùng đại diện cho người dùng thực sự .

Người dùng thực sự được cấp (và bị từ chối) khả năng thông qua tài khoản người dùng của họ. Họ phải sử dụng tài khoản người dùng của mình để sử dụng hệ thống; do đó, khả năng và giới hạn tài khoản người dùng của họ áp dụng cho họ.

Tài khoản người dùng cũng được sử dụng để mã hóa các bộ khả năng và giới hạn. Một số tài khoản người dùng - thực tế, trừ khi bạn có nhiều người dùng máy - tồn tại để các chương trình hoặc lệnh nhất định có thể được chạy với danh tính của họ, một danh tính với khả năng và giới hạn phù hợp cho công việc.

Ví dụ: www-datangười dùng tồn tại để nếu bạn chạy một máy chủ web, nó sở hữu dữ liệu mà máy chủ có thể truy cập được. Không có người dùng thực sự nào phải được trao quyền để thực hiện các thay đổi không được kiểm soát đối với những dữ liệu đó và máy chủ web không phải được trao quyền để thực hiện bất kỳ hành động nào không cần thiết để phục vụ web. Do đó, cả dữ liệu web và phần còn lại của hệ thống đều an toàn hơn trước sự cố vô tình hoặc cố ý, so với việc máy chủ web được điều hành bởi một số người dùng có tất cả quyền hạn của máy chủ web (và có quyền hạn của máy chủ web sở hữu).

Tài khoản người dùng không quan trọng nhất của con người

Các superuser , có username là root, là một tài khoản người dùng không phải con người với sự kết hợp rất cụ thể về khả năng và hạn chế: tất cả các khả năng, và không có giới hạn .

rootĐược phép làm bất cứ điều gì. Vẫn có những điều rootkhông thể làm được vì bản thân hệ thống không thể thực hiện hoặc có ý nghĩa đối với chúng. Vì vậy, rootkhông thể giết chết một quá trình trong giấc ngủ không bị gián đoạn , hoặc làm cho một tảng đá quá nặng để di chuyển, sau đó di chuyển nó .

Nhiều quy trình hệ thống quan trọng, như init, chạy như rootrootđược sử dụng để thực hiện các tác vụ quản trị.

Tôi có thể đăng nhập như root?

Có thể định cấu hình roottài khoản để có thể đăng nhập bằng mật khẩu, nhưng điều này không được bật theo mặc định trong Ubuntu. Thay vào đó, bạn có thể nghĩ rootnhư là giống như www-data, lp, nobody, và các tài khoản khác không phải con người. (Chạy cat /etc/passwdhoặc getent passwdđể xem tất cả.)

Người dùng đăng nhập bằng tài khoản người dùng của riêng họ và sau đó nếu một số tác vụ được thực hiện với tài khoản người dùng khác, họ sẽ khiến tác vụ đó được thực hiện với danh tính đó mà không thực sự đăng nhập như người dùng đó.

Bạn cũng có thể định cấu hình những người dùng không phải là người khác www-data, vì vậy người ta cũng có thể đăng nhập như họ. Tuy nhiên, điều đó khá hiếm, trong khi ở một số HĐH giống Unix khác, thông thường đăng nhập như root trong một thiết bị đầu cuối . Những rủi ro của chạy một giao diện đồ họa hoàn toàn như root, kết hợp với bao nhiêu chương trình đồ họa không được thiết kế để chạy như rootvà có thể không hoạt động đúng, có nghĩa là bạn không bao giờ nên cố gắng để có được một rootthuộc sở hữu phiên máy tính để bàn .

Xin lưu ý rằng mặc dù đăng nhập như rootbị vô hiệu hóa trong Ubuntu, có nhiều cách để lấy rootshell mà không cần xác thực root, điều này tạo ra hiệu ứng tương tự: phổ biến nhất là sudo -shoặc-i , chế độ phục hồicác kỹ thuật tương tự . (Đừng lo lắng nếu bạn không biết những thứ đó là gì.) Đây không thực sự đăng nhập: trong chế độ khôi phục, bạn sẽ trở thành roottrước khi bất kỳ đăng nhập nào xảy ra; với các sudophương thức dựa trên, bạn chỉ đang chạy shell với quyền root.

Quản trị viên

Trong Ubuntu, quản trị viên là người dùng có thể làm bất cứ điều gì họ muốn root, khi họ chọn làm như vậy .

Cài đặt hệ thống, hiển thị tài khoản người dùng bao gồm tài khoản quản trị viên.
Cài đặt hệ thống> Tài khoản người dùng. "Eliah Kagan" là một quản trị viên, vì vậy anh ta có thể làm những việc như root, nhưng anh ta thì khôngroot .

Tôi là quản trị viên trên hệ thống Ubuntu của mình. Khi tôi chạy các chương trình, thông thường chúng chạy như ek("Eliah Kagan" là tên đầy đủ tương ứng với ektên người dùng.)

Khi tôi chạy AbiWord hoặc LibreOffice, nó chạy như ek. Khi tôi chạy Firefox, Chromium, Empathy hoặc Pidgin, nó sẽ chạy như ek. Các chương trình chạy để cung cấp giao diện máy tính để bàn chạy như ek.

Tuy nhiên, tôi là quản trị viên, vì vậy nếu tôi cần thực hiện một nhiệm vụ quản trị, tôi có thể làm như vậy.

sudo

Trên dòng lệnh, tôi thường sử dụng sudođể chạy một lệnh như root:

sudo command...

Điều này sẽ nhắc tôi nhập mật khẩu của tôi . (Không phải rootmật khẩu; rootkhông có.)

  • Bởi vì tôi là quản trị viên, tôi có thể thực hiện các hành động như root. Trong cấu hình mặc định, tôi phải nhập mật khẩu của mình để làm điều này.
  • Người dùng không phải là quản trị viên có thể thực hiện các hành động như root, ngay cả bằng cách nhập mật khẩu của họ. sudocác lệnh sẽ thất bại nếu người dùng chạy chúng không phải là quản trị viên.

Bởi vì quản trị viên là những người dùng hoàn toàn bình thường ngoại trừ khả năng thực hiện các hành động như root, việc chạy một lệnh yêu cầu rootđặc quyền vẫn sẽ thất bại, ngoại trừ khi lệnh được chạy nhưroot .

Ảnh chụp màn hình minh họa sự cần thiết của sudo: quản trị viên chỉ có thể chạy một số lệnh nhất định thành công bằng cách thực hiện như <code> root </ code>, thường được thực hiện bằng cách thêm sudo (và khoảng trắng) vào lệnh.
Ảnh chụp màn hình minh họa nhu cầu sử dụng sudođể thực hiện các nhiệm vụ hành chính. (Dựa trên "Sandwich" của Randall Munroe .)

sudo, đồ họa

Các chương trình đồ họa có thể chạy như rootthông qua các mặt trận đồ họa chosudo , chẳng hạn như gksu/gksudokdesudo. Ví dụ, để chạy GParted như roottôi có thể chạy gksudo gparted. Sau đó, tôi sẽ được nhắc đồ họa cho mật khẩu của tôi.

nhắc nhở mật khẩu đồ họa gksudo

Vì tôi được nhắc về mặt đồ họa, không cần phải có thiết bị đầu cuối. Đây là một trong những cách các công cụ quản trị được chạy như root.

Bộ công cụ

Polkit (từng được gọi là PolicyKit) là một cách khác để quản trị viên thực hiện mọi việc như root. Một chương trình truy cập một dịch vụ thực hiện hành động. Đôi khi, hành động đang chạy toàn bộ chương trình; đôi khi hành động bị hạn chế hơn.

Ngày nay, nhiều tiện ích quản trị hệ thống đồ họa được thiết lập để sử dụng polkit theo mặc định, thay vì sử dụng sudo.

Một ví dụ về tiện ích như vậy là Trung tâm phần mềm. Nó tận dụng tối đa lợi thế của polkit, yêu cầu người dùng chỉ nhập mật khẩu khi họ muốn làm một cái gì đó yêu cầu rootđặc quyền. (Điều này cũng có thể với sudoxác thực dựa trên, nhưng khó hơn và xấu hơn để thực hiện.)

Trong Trung tâm phần mềm, tôi có thể tìm và đọc về một ứng dụng; sau đó tôi hỏi mật khẩu khi tôi muốn cài đặt nó.

Xác thực qua polkit để cài đặt một ứng dụng trong Trung tâm phần mềm Ubuntu.

Polkit khác nhau như thế nào

Bất kỳ chương trình đồ họa có thể được chạy như rootvới gksudovà các mặt trận đồ họa khác sudo. (Chương trình có thể không hoạt động tốt, tùy thuộc vào việc nó có được thiết kế để sử dụng hay không root. Nhưng lệnh để khởi động chương trình sẽ được thực thi như root.)

Mặc dù polkit hiện nay phổ biến hơn sudoGUI trước vì cách các ứng dụng trên Ubuntu thực hiện các hành động như rootđằng sau hậu trường, polki sẽ chỉ chạy một ứng dụng đồ họa như root thể có một tệp cấu hình cho phép nó và cho biết những hành động nào có thể được thực hiện .

Polkit, phi đồ họa

pkexec là lệnh được sử dụng để chạy một chương trình với polkit.

Giống như sudo, pkexeccó thể chạy các lệnh phi đồ họa. (Và nó không yêu cầu tệp cấu hình xác định khả năng của lệnh - nó chỉ đơn giản chạy lệnh như root.)

pkexec command...

pkexecnhắc nhở về mật khẩu bằng đồ họa, ngay cả khi nó được chạy từ Terminal (đây là một trong những cách hành vi của nó tương tự như gksudochạy thẳng sudo).

(Nếu không có GUI - ví dụ: nếu bạn đã đăng nhập từ bảng điều khiển ảo hoặc phiên SSH chỉ có văn bản hoặc GUI không hoạt động đúng - thì pkexecsẽ xuống cấp một cách duyên dáng và nhắc mật khẩu của bạn trên dòng lệnh .)

Chạy một lệnh trong một thiết bị đầu cuối với pkexec.

Khi xác thực được thực hiện thành công, lệnh sẽ chạy trong thiết bị đầu cuối.

Một lệnh chạy liền mạch dưới dạng <code> root </ code> sau khi xác thực thành công bộ công cụ.

Chạy các lệnh như những người dùng khác bên cạnh root

rootlà đặc biệt bởi vì nó được làm bất cứ điều gì có thể được thực hiện. Nhưng đó là tài khoản người dùng giống như bất kỳ tài khoản nào và cách chạy các lệnh như rootvới sudo(trực tiếp hoặc với giao diện đồ họa) hoặc polkit có thể được sửa đổi một chút để chạy lệnh như bất kỳ người dùng nào khác:

sudo -u username command...
gksudo -u username command...
pkexec --user username command...

Gì? Bạn chỉ cần gõ sudođầu tiên? Bảo mật đó thế nào?!

Chạy các lệnh với sudolà giống như gọi sự không tương xứng của giáo hoàng .

Khi bạn thực hiện một lệnh vớisudo [gọi bất khả xâm phạm của giáo hoàng] , Ubuntu [Công giáo] cố gắng hết sức để đảm bảo bạn thực sự là bạn [thực sự là Giáo hoàng].

Vâng, tôi biết tính không sai lầm của giáo hoàng (ngay cả khi quy phạm) là tuyên bố; song song là không hoàn hảo.

Cố gắng làm một cái gì đó như rootvới sudo(hoặc polkit) là một vấn đề lớn - Ubuntu sẽ không chỉ để điều đó trôi qua như tất cả những lần khác bạn chạy một chương trình.

Bạn được nhắc nhập mật khẩu của bạn. (Sau đó, bạn đã làm như vậy được ghi nhớ trong một thời gian ngắn, vì vậy bạn không phải liên tục nhập mật khẩu khi quản trị hệ thống của mình.)

Bên cạnh việc nhắc nhở bạn cẩn thận , điều này bảo vệ chống lại hai tình huống:

  • Ai đó sử dụng máy tính của bạn (hoặc thiết bị di động), có thể dưới chiêu bài kiểm tra email của họ hoặc một số mục đích vô hại tương tự. Ở đây, họ vẫn có thể gây hại cho họ - ví dụ: họ có thể sửa đổi hoặc xóa tài liệu của bạn. Tuy nhiên, họ không thể quản trị hệ thống, vì họ không thể nhập mật khẩu của bạn.
  • Các chương trình không được yêu cầu quản trị hệ thống không thể thực hiện được, trừ khi bạn nhập mật khẩu. Ví dụ: nếu trình duyệt web của bạn bị xâm phạm bởi lỗi bảo mật và chạy mã độc, nó vẫn không thể thực hiện các tác vụ quản trị. Nó không thể tạo và xóa người dùng, sửa đổi các chương trình được cài đặt dưới dạng root(bao gồm mọi thứ được cài đặt bởi trình quản lý gói, chẳng hạn như LibreOffice) hoặc thay đổi hệ thống ở mức sâu.

Tôi đã nghe nói về su. Cái gì vậy Tôi có thể sử dụng nó?

suxác thực như một người dùng khác và chạy một lệnh (hoặc bắt đầu một vỏ tương tác). Có thể giới hạn người được phép sử dụng su, nhưng suxác thực bằng mật khẩu của tài khoản đích , không phải mật khẩu của người dùng đang chạy.

Ví dụ, chạy như tên người dùng , giống như .su username -c 'command...'command...sudo -u username command...

Nhưng khi bạn chạy một lệnh như usernamevới sudo, bạn nhập mật khẩu của bạn . Khi bạn chạy một lệnh như usernamevới su, bạn nhập usernamemật khẩu .

suthực hiện xác thực cho người dùng đích , với subạn chỉ có thể chạy các lệnh khi người dùng có tài khoản được bật .

Các roottài khoản (giống như www-datanobody) bị tắt theo mặc định. Không có mật khẩu sẽ hoạt động để đăng nhập như root. Vì vậy, bạn không thể sử dụng suđể chạy các lệnh như root.

Bạn có thể sử dụng suđể chạy các lệnh như một người dùng khác có thể đăng nhập (thường bao gồm tất cả các tài khoản người dùng trên hệ thống của bạn đại diện cho con người).

Khi đăng nhập với tư cách là khách, bạn hoàn toàn không thể sử dụng su.

Kết hợp susudo

Một người không phải là quản trị viên thậm chí có thể sử dụng suđể chạy sudonhư một quản trị viên. (Mặc dù điều này cũng ổn, vì họ cần mật khẩu của quản trị viên để chạy các lệnh với tư cách quản trị viên.) Đó là, một người dùng hạn chế có thể sử dụng suđể chạy sudođể chạy lệnh như root. Điều này có thể trông giống như:

su username -c 'sudo command...'

(Chạy các chương trình đồ họa theo cách này đòi hỏi sự chăm sóc đặc biệt .)

Sẽ không phải sulà một cách an toàn hơn để chạy các lệnh như root?

Chắc là không.

Điều gì xảy ra nếu người dùng không được phép hành động như rootvậy?

Biến họ thành người dùng hạn chế thay vì quản trị viên.

Điều gì nếu một chương trình chạy như một cố gắng quản trị để sudođến root?

Trừ khi bạn đã cấu hình lại sudođể cho nó thành công mà không cần mật khẩu, nó sẽ thất bại.

Không thể là một chương trình không nên chạy như rootcõng trên một sudolệnh gần đây , vì vậy không cần mật khẩu?

Điều này sẽ rất khó thành công. Ngày nay, hầu hết các hệ điều hành (bao gồm Ubuntu) đã được sudocấu hình theo mặc định để dấu thời gian của nó chỉ áp dụng trong một ngữ cảnh cụ thể.

Ví dụ: nếu tôi chạy sudo ...trong một tab Terminal và xác thực thành công, sudotrong một tab khác (hoặc được chạy bởi một chương trình GUI không liên quan hoặc tôi chạy từ bảng điều khiển ảo hoặc phiên SSH) sẽ vẫn nhắc mật khẩu. Ngay cả khi nó chạy ngay sau đó.

Không phải một chương trình đang chạy như người dùng X có quyền truy cập vào mật khẩu của người dùng X?

Không.

Nếu một chương trình độc hại có thể chạy như một quản trị viên, nó có thể "lắng nghe" những gì đang được nhập khi quản trị viên xác thực bằng sudohoặc polkit không?

Có khả năng, có. Nhưng sau đó nó có thể "lắng nghe" mật khẩu được nhập vào su.

Nếu tôi nói với ai đó mật khẩu của tôi

Đừng nói với mọi người mật khẩu của bạn.

Điều gì sẽ xảy ra nếu ai đó phải biết mật khẩu của tôi để làm điều gì đó thay cho tôi, nhưng tôi không muốn để họ quản trị hệ thống?

Tốt nhất, họ nên có một tài khoản người dùng riêng cho phép họ làm những gì họ cần làm. Ví dụ: có thể chia sẻ tệp giữa các tài khoản, cho phép nhiều người dùng viết thư cho họ, trong khi vẫn từ chối quyền truy cập cho người dùng khác.

Tuy nhiên, trong trường hợp một người ít tin cậy hơn có thể được phép chia sẻ tài khoản của bạn, thì đó phải là một tài khoản người dùng hạn chế. Bạn có thể tạo một tài khoản riêng cho mục đích này (điều này có ý nghĩa - nếu đó là tài khoản dành cho bạn và người khác mà bạn muốn có các khả năng khác nhau, thì đó phải là một tài khoản khác).

Vì vậy, sẽ là điều an toàn nhất là để không cho phép cả hai sudosuvà làm cho mọi người đăng nhập như root, cách thủ công?

Không, bởi vì có những nhược điểm nghiêm trọng liên quan đến việc cho phép mọi người đăng nhập như roottất cả. Bất cứ khi nào có thể, nên thực hiện số lượng hành động nhỏ nhất có thể root. Ngay cả hầu hết các hành vi liên quan trực tiếp đến việc quản trị một hệ thống (ví dụ: xem những gì người dùng được định cấu hình và đọc nhật ký) thường không yêu cầu rootđặc quyền.

Ngoài ra, cũng giống như khả năng một chương trình độc hại có thể xem ai đó những gì khi họ chạy sudohay su, hoặc tạo ra một giả sudo/ sumật khẩu nhanh chóng, có khả năng một chương trình độc hại có thể tạo ra một màn hình đăng nhập giả danh, quá.

Điều gì làm cho một người dùng một quản trị viên?

Thành viên nhóm.

Trong Ubuntu 12.04 trở lên , quản trị viên là thành viên của nhóm được gọi sudo.

Trong Ubuntu 11.10 trở về trước , quản trị viên là thành viên của nhóm được gọi admin.

Khi hệ thống Ubuntu trước 12.04 được nâng cấp lên 12.04 trở lên, adminnhóm sẽ được giữ khả năng tương thích ngược (và tiếp tục trao quyền quản trị cho người dùng trong đó), nhưng sudonhóm cũng được sử dụng.

Tài khoản người dùng hạn chế

Tôi có thể sử dụng tài khoản người dùng hạn chế thay vì tài khoản quản trị viên không?

Nếu bạn thích, chắc chắn. Tạo tài khoản người dùng hạn chế trong Cài đặt hệ thống > Tài khoản người dùng và đăng nhập với tư cách người dùng đó.

Tôi có thể biến tài khoản quản trị viên của mình thành tài khoản người dùng hạn chế không?

Có, chỉ cần loại bỏ nó khỏi sudoadmincác nhóm (xem ở trên).

Nhưng bạn nên đảm bảo có ít nhất một tài khoản quản trị viên khác, để bạn có thể quản trị hệ thống của mình. Nếu không có, thì bạn phải khởi động vào chế độ phục hồi hoặc CD trực tiếp và làm cho một số người dùng trở thành quản trị viên . (Điều này tương tự với việc đặt lại mật khẩu quản trị viên bị mất .)

Các công cụ đồ họa để quản trị người dùng và nhóm thường sẽ ngăn bạn tạo một hệ thống không có quản trị viên hoặc ít nhất là cảnh báo bạn. Các công cụ dòng lệnh thường sẽ không (tin tưởng rằng bạn biết bạn đang làm gì).


2
@ EliahKagan-một người câm khác :) Tôi sẽ thực hiện một sự tương tự - Root giống như cha mẹ và bất kỳ người dùng nào cũng giống như một đứa trẻ. Trẻ lớn hơn (quản trị viên) có nhiều đặc quyền hơn. Một đứa trẻ (người dùng) không bao giờ có thể là Cha mẹ (Root). Đứa trẻ 12 tuổi có thể làm những việc không nguy hiểm trong nhà (OS / Ubuntu) như sử dụng tủ lạnh và đồ đạc. Anh ta không được phép chạm vào tiền an toàn. Nhưng, 18 tuổi (quản trị viên) có thể, sử dụng 'sudo' hoặc sự cho phép của cha mẹ để truy cập số tiền đó. Nhưng, cả hai không được phép chạm vào súng trong một két sắt khác. Chỉ root (cha mẹ) có thể làm điều đó. Có ý nghĩa ?
FirstName LastName

1
Tài khoản @FirstNameLastName Quản trị viên đại diện cho người dùng thực sự, trong thế giới thực, có tất cả sức mạnh. Quản trị viên có thể "thực roothiện bất cứ điều gì" với sudovà PolicyKit. Quản trị viên thậm chí có thể kích hoạt roottài khoản và đăng nhập. Nếu bạn trừu tượng tài khoản người dùng là sự kết hợp giữa các hành động máy móc và ý thức, người dùng có cả người dùng và người không bao gồm roothành động hoàn toàn máy móc. Nếu bạn hiểu làm thế nào tất cả hoạt động, thì nếu sự tương tự của bạn củng cố điều đó, thật tuyệt! Nhưng tôi không nghĩ rằng nó thực sự nắm bắt được mối quan hệ quản trị gốc.
Eliah Kagan

7
@FirstNameLastName Dường như với tôi một sự tương tự tốt hơn là: các quản trị viên giống như Bruce Wayne, và rootgiống như Batman. Sự khác biệt hoàn toàn là một vấn đề về bản sắc được xây dựng. Bruce Wayne có thể trở thành Người Dơi bất cứ khi nào anh ta muốn và làm hầu hết mọi thứ, nhưng anh ta sẽ luôn là Bruce Wayne dưới chiếc mặt nạ. Tuy nhiên, Batman là người thực sự hơn anh ta - nhân vật Bruce Wayne là một người có khả năng che chở anh ta khỏi những hậu quả của việc trở thành Người Dơi. Bằng cách thể hiện như Wayne trong cuộc sống hàng ngày, anh ta thường có thể bảo vệ bản thân và những người thân yêu khỏi những sai lầm của chính mình, sai sót trong hệ thống và phần mềm độc hại của Thành phố Gotham.
Eliah Kagan

4

Không có gì là một câu hỏi ngớ ngẩn;)

Tôi hy vọng điều này làm rõ mọi thứ một chút:

Trong Ubuntu, hai loại tài khoản người dùng khác nhau có thể được tạo ra: tài khoản tiêu chuẩn và tài khoản quản trị viên . Sự khác biệt giữa hai: tài khoản tiêu chuẩn không được phép thực hiện bất kỳ thay đổi quan trọng nào đối với hệ thống của bạn bằng cách đạt được quyền truy cập root, trong khi tài khoản quản trị viên có thể sử dụng mật khẩu của họ để thực hiện thay đổi với tư cách là người dùng root. Bản thân người dùng Root là một trong nhiều người dùng mà hệ thống đã tạo và bạn thường không thấy hoặc thông báo và bạn không thể đăng nhập như vậy (theo mặc định, dù sao đi nữa). Nếu bạn đã đăng nhập vào tài khoản loại quản trị viên, bạn có thể trở thành người dùng Root này vớisudo lệnh trong một thiết bị đầu cuối và bạn có thể nhập mật khẩu của mình để cài đặt phần mềm, thực hiện thay đổi hệ thống, v.v. Nếu bạn đăng nhập như một người dùng chuẩn, bạn không thể thực hiện bất kỳ thao tác nào trong số đó.


Nếu quản trị viên có thể trở thành root bằng cách chỉ chạy một lệnh, người khác / hacker có thể chạy nó từ xa và trở thành người dùng root không?
FirstName LastName

@FirstNameLastName Họ cần phải đăng nhập từ xa với tư cách là một trong những người dùng khác để có thể chạysudo
Izkata

@FirstNameLastName cũng sudo yêu cầu tên tài khoản và mật khẩu trước khi cấp quyền truy cập root.
Kẻ hủy diệt

@Destrictor - đúng vậy. trong thực tế, đó là những gì tôi bối rối. Tôi đang ở trong tài khoản quản trị và đặt mật khẩu quản trị viên để đăng nhập vào root. Khi mật khẩu và tên người dùng giống nhau cho quản trị viên và root, tại sao có hai tài khoản?
FirstName LastName

@FirstNameLastName lý do chính bạn cần nhập mật khẩu khi sử dụng sudo là để đăng nhập. Điều này chủ yếu là vì lý do bảo mật (điều gì đó đã xảy ra và bộ phận CNTT của bạn đang tìm hiểu ai / cái gì / ở đâu)
Destrictor

3

Trong tất cả các hệ thống Linux Để thực hiện bất kỳ thay đổi nào đối với hệ thống, chúng tôi cần được xác thực là người dùng root và cũng như áp dụng tất cả các thay đổi mà chúng tôi cần là người dùng root.

Người dùng bình thường không thể áp dụng các thay đổi trên toàn hệ thống. Đây là lợi thế của Linux khi so sánh với các cửa sổ.

Nếu bất kỳ cuộc tấn công nào được thực hiện thì sẽ chỉ xuất phát từ khu vực đó trong hệ thống Linux / Unix vì để tấn công hoặc sửa đổi các khu vực còn lại Nó cần quyền root nhưng trong Windows nếu một nơi bị tấn công có nghĩa là toàn bộ hệ thống sẽ bị ảnh hưởng.

Đó là lý do tại sao chỉ trong nhiều câu hỏi nếu bất kỳ người dùng nào không đặt mật khẩu root, thì chúng tôi sẽ cảnh báo anh ta vì điều này không được khuyến nghị trong các trường hợp bảo mật và để lại sự lựa chọn cho họ.

Nếu bạn muốn biến thành người dùng root, sudo có thể giúp bạn.

sudo -i 

Nếu bạn muốn khởi chạy ứng dụng với tư cách người dùng root thì bạn có thể sudo.

sudo <app_name>

Nó luôn luôn tốt hơn để chạy hệ thống như người dùng không root.


3

Tài khoản được tạo trong khi cài đặt là tài khoản quản trị viên .

Trong Ubuntu, tài khoản root không có mật khẩu và do đó, bạn không thể đăng nhập với tư cách rootngười dùng. Có nhiều cách để phá vỡ điều này, nhưng đây là cài đặt mặc định.

Tài khoản Quản trị viên trong Ubuntu có nghĩa là người dùng được thêm vào nhóm sudo, điều này làm cho tài khoản đủ điều kiện nhận được các ưu tiên tạm thời bằng cách sử dụng sudolệnh. Chính sách có thể yêu cầu leo ​​thang đặc quyền bằng cách nhắc mật khẩu 'Quản trị viên'. (Bạn cần chọn người dùng quản trị viên và cung cấp mật khẩu của tài khoản đó.)

Để xác nhận rằng đây là sự thật:

  • Mở một thiết bị đầu cuối và cố gắng cập nhật chỉ mục gói phần mềm. apt-get updatelà lệnh được sử dụng để làm điều đó và điều này đòi hỏi phải được chạy dưới quyền root. Nó chỉ hoạt động khi bạn đăng nhập với quyền root hoặc thực thi nó dưới quyền root bằng cách sử dụng các mức leo thang đặc quyền. Quản trị viên có thể chạy sudo apt-get updatebằng cách xác thực sudocơ chế cho phép các lệnh được chạy như bất kỳ người dùng nào. Một người dùng tiêu chuẩn sẽ không được phép làm điều này.

  • Mở tài khoản người dùng từ Cài đặt hệ thống và cố gắng thêm người dùng mới. Cơ chế bảo vệ được sử dụng là Chính sách. Quản trị viên sẽ được phép xác thực và leo thang đặc quyền nhưng người dùng chuẩn sẽ bị chặn. Nó yêu cầu mật khẩu 'quản trị viên để tiếp tục.

Đây là cách bạn kiểm tra xem tài khoản của bạn có phải là quản trị viên hay không:

  • Mở tài khoản người dùng từ cài đặt hệ thống.
  • Chọn tài khoản người dùng của bạn trong cột bên trái.
  • Bạn sẽ thấy Administratordưới tên tài khoản trong cả hai bảng cho tài khoản quản trị viên và Standardcho người dùng bình thường.

2

Không.

người dùng mà bạn đăng nhập vào Ubuntu, không phải là người dùng quản trị viên (người dùng quản trị viên theo thuật ngữ Linux được gọi là root)


6
Điều này là sai lệch ở tốt nhất. Người dùng không root được tạo trong quá trình cài đặt quản trị viên. Không phải root, mà là một quản trị viên (có nghĩa là, chủ yếu, rằng họ có thể thực hiện các hành động như rootvới sudovà PolicyKit).
Eliah Kagan

@EliahKagan - ok, vậy thì sự khác biệt giữa quản trị viên và tài khoản root là gì? Tôi chưa quen với linux và cũng là khoa học máy tính, vì vậy hãy đồng ý với tôi.
FirstName LastName

@EliahKagan Không thực sự, đó chỉ là cố gắng áp dụng thuật ngữ Windows cho linux. sudotruy cập có thể bị giới hạn bởi chương trình bạn đang cố chạy như root, điều này làm cho nó mờ hơn rất nhiều.
Izkata

@FirstNameLastName Có một người dùng thực sự được đặt tên là "root" (thông thường; tôi đã nghe nói nó có thể được thay đổi, nhưng tôi không biết làm thế nào). Nó có quyền truy cập vào tất cả mọi thứ.
Izkata

2
@Izkata Không, quản trị viên có ý nghĩa cụ thể trong Ubuntu. Hoàn toàn không đúng khi nói rằng tài khoản người dùng được tạo trong khi cài đặt không phải là quản trị viên. Đối với việc cho phép các lệnh cụ thể chạy như rootvới sudo, điều đó không liên quan. Quản trị viên có thể chạy bất kỳ lệnh nào như rootvới sudo. Theo mặc định, không ai khác có thể chạy bất kỳ lệnh nào như root(hoặc bất kỳ người dùng nào khác) với sudo. Ngoài ra, sudochỉ là một cơ chế để thực hiện các hành động với quyền root - những gì mọi người có xu hướng nghĩ sudolà thực sự thường là Chính sách, những ngày này.
Eliah Kagan
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.