Tại sao root trong bánh xe và người vận hành? Root có thể trong một nhóm bao giờ làm cho một sự khác biệt?


18

Tôi chỉ nhận thấy trên máy FreeBSD của tôi rằng root nằm trong bánh xe và người vận hành. Tôi đang cố gắng nghĩ về một tình huống trong đó UID 0 trong một nhóm sẽ có bất kỳ ảnh hưởng nào đến ... ờ ... bất cứ điều gì, và tôi sẽ trở nên trống rỗng. Đối với vấn đề đó, root thậm chí có cần một nhóm đăng nhập chính trong / etc / passwd không? Hoặc đăng nhập (3) bị sặc và chết nếu người dùng có trường nhóm chính trống?

(Để làm rõ: Tôi hiểu mục đích tồn tại của nhóm "gốc", vì các tệp cần có chủ sở hữu nhóm. Tôi không hiểu vấn đề mà người dùng root / toor / bất cứ điều gì có thành viên nhóm đó.

Đây chỉ là hành trình từ nhiều thập kỷ trước, hay có một lý do thực sự cho nó?

Câu trả lời:


5

Tóm lại: không. Có root wheeloperatornhóm không thay đổi gì.

Nhưng bạn cũng đang đặt câu hỏi cho 2 điều khác:

  • id nhóm gốc (theo mặc định) được đặt thành 0, là giá trị gần nhất với giá trị trống bạn có thể nhận được.

    $ head -4 /etc/passwd
    # $FreeBSD: releng/9.2/etc/master.passwd 243947 2012-12-06 11:52:31Z rwatson $
    #
    root:*:0:0:Charlie &:/root:/bin/csh
    toor:*:0:0:Bourne-again Superuser:/root:
    

    Như đã nói, mỗi người dùng phải có một nhóm, vì vậy bạn không thể đặt id nhóm gốc (cũng như bất kỳ người dùng nào gid) thành một giá trị trống hoặc trống. Nếu bạn cố gắng đặt một người dùng gid thành trống, bạn sẽ được cảnh báo bởi pwd_mkdb:

    pwd_mkdb: no gid for user root
    pwd_mkdb: at line #3
    pwd_mkdb: /etc/pw.Rlb2U3: Inappropriate file type or format
    re-edit the password file?
    

    Vì vậy, thực tế là root được định nghĩa là nhiều hơn về việc đặt tên đúng thay vì chỉ là một con số ngớ ngẩn. Bạn có thể thay đổi gid gốc thành bất kỳ số vô nghĩa nào (gid không nằm trong /etc/group). Người dùng root của bạn vẫn có thể đăng nhập suhoặc bất cứ điều gì root khác có thể làm. Bạn sẽ chỉ có một cái gì đó như thế:

    $ id
    uid=0(root) gid=10000 groups=10000,5(operator)
    
  • về lý do tại sao một số người dùng thuộc nhóm bánh xe là một câu chuyện hoàn toàn khác, như FreeBSD , như OpenBSD hoặc NetBSD , người dùng phải là một phần của wheelđể su root .

    Từ tài liệu FreeBSD ( chương 9.4 ):

    Để su vào root (hoặc bất kỳ tài khoản nào khác có đặc quyền siêu người dùng), bạn phải ở trong nhóm bánh xe . Nếu tính năng này không có ở đó, bất kỳ ai có tài khoản trên hệ thống cũng phát hiện ra mật khẩu của root đều có thể có quyền truy cập cấp siêu người dùng vào hệ thống. Với tính năng này, điều này không hoàn toàn đúng; su (1) sẽ ngăn họ thậm chí cố gắng nhập mật khẩu nếu họ không ở trong bánh xe .

    Nhưng bạn đã đúng, loại bỏ người dùng root khỏi bánh xe sẽ không thay đổi mọi thứ. Điều này là hoàn toàn chính thức, nhiều như người dùng toor cũng không phải là một phần của bánh xe hoặc root là một phần của nhóm nhà điều hành .

  • Tuy nhiên, nhóm vận hành hoàn toàn chính thức, không có bất kỳ ý nghĩa đặc biệt nào.

Đây cũng là những gì Richard Stallman nghĩ về nhóm bánh xe (từ hướng dẫn sử dụng gnu su ):

Tại sao GNU "su" không hỗ trợ nhóm 'bánh xe' ===================================== ==========

(Phần này là của Richard Stallman.)

Đôi khi một số người dùng cố gắng giữ toàn bộ sức mạnh trên tất cả những người còn lại. Ví dụ, vào năm 1984, một vài người dùng tại phòng thí nghiệm AI của MIT đã quyết định giành quyền lực bằng cách thay đổi mật khẩu của nhà điều hành trên hệ thống Twenex và giữ bí mật với mọi người khác. (Tôi đã có thể ngăn chặn cuộc đảo chính này và cung cấp năng lượng trở lại cho người dùng bằng cách vá kernel, nhưng tôi không biết làm thế nào để làm điều đó trong Unix.)

Tuy nhiên, đôi khi những người cai trị nói với ai đó. Theo cơ chế "su" thông thường, một khi ai đó biết được mật khẩu gốc thông cảm với người dùng thông thường, người đó có thể nói với những người còn lại. Tính năng "nhóm bánh xe" sẽ biến điều này thành không thể, và do đó củng cố sức mạnh của những người cai trị.

Tôi đứng về phía quần chúng, không phải của những người cai trị. Nếu bạn đã quen với việc hỗ trợ các ông chủ và sysadins trong bất cứ điều gì họ làm, ban đầu bạn có thể thấy ý tưởng này lạ.


1

đăng nhập (3) và những người khác mong đợi nhóm chính. Họ cần nó để họ có thể đặt các trường hợp lệ trong các tệp utmp / wtmp. Và ngay cả khi chúng không (thay đổi định dạng tệp), bạn sẽ gặp vấn đề cơ bản hơn khi đăng nhập (1) hoặc sshd (8) hoặc các chương trình khác cố gắng thiết lập phiên người dùng - bất kể utmp / wtmp họ cần phải điền cả hai Thuộc tính quy trình nhân UID và GID (vì các tệp được tạo bởi người dùng đã đăng nhập phải có UID và GID được điền, như bạn thấy).

Đối với vấn đề tại sao root toàn năng cần nhiều hơn nhóm chính, nó không cho kiểm tra quyền (vì chúng bị bỏ qua cho UID 0), nhưng nó sử dụng cho một số mục đích sử dụng khác.

Nhóm "bánh xe" đặc biệt được sử dụng cho một số kiểm tra xác thực bổ sung như ví dụ pam_wheel

Các nhóm khác như "toán tử" có thể được sử dụng cho các tính năng bảo mật (ví dụ: một số quy trình khi được chạy bởi root có thể setuid (2) thành USER không được ưu tiên (như "không ai"), trong khi vẫn duy trì tư cách thành viên NHÓM của nó (như "toán tử"). Nó sẽ cho phép quá trình như vậy tiếp tục truy cập các tệp thuộc sở hữu của nhóm đó, đồng thời giảm đáng kể các vấn đề bảo mật khi chạy với quyền truy cập UID 0 đầy đủ.

Tôi không chắc liệu có chương trình nào sử dụng tính năng này trong hệ thống của bạn không (hoặc nếu mặc định FreeBSD HIỆN TẠI)


0

Nó có thể tạo sự khác biệt - ngay khi bất kỳ chương trình nào kiểm tra tư cách thành viên nhóm và hành xử khác nhau tùy thuộc vào kết quả. Tất nhiên, không có sự khác biệt nào với các đặc quyền mà người dùng root có thể ép buộc .


0

Có phải là nếu không có ai là thành viên của nhóm bánh xe thì bánh xe chỉ đơn giản là bị bỏ qua và tất cả người dùng có thể chạy su ... và có khả năng đoán mật khẩu. Bằng cách có ít nhất một người dùng là thành viên của nhóm bánh xe (tức là người dùng gốc), sau đó kiểm soát bánh xe được kiểm tra và chỉ những thành viên khác của bánh xe nhóm có thể cố gắng chạy su.

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.