Mật khẩu SSH / Đăng nhập khác nhau từ Mật khẩu SUDO


9

Tôi muốn sử dụng một mật khẩu khác để nâng người dùng của mình lên trạng thái sudo so với mật khẩu tôi sử dụng để đăng nhập (thông qua GUI, shell hoặc SSH) vào tài khoản của tôi. Điều này có thể không?

EDIT: Vì việc đặt mật khẩu root sẽ cho phép đăng nhập bằng root, đây không phải là cách hay. Tôi thích mật khẩu sudo dành riêng cho người dùng hơn là mật khẩu gốc toàn hệ thống.


1
Bạn có thể giải thích về điều này - tại sao bạn muốn làm điều này?
Doug Harris

1
Tôi cảm thấy câu hỏi giải thích đủ rõ, nhưng mục tiêu là làm cho đăng nhập an toàn thông qua các mật khẩu dài, khó sử dụng và sau đó sử dụng một mật khẩu khác để truy cập sudo, do đó, việc xâm phạm tài khoản của người dùng không tự động cung cấp quyền truy cập sudo.
Richard

Tôi đã nghe nói có thể thực hiện sudo thông qua các phím rsa / dsa, có thể có bất kỳ cụm mật khẩu nào bạn muốn.
Cướp

Câu trả lời:


2

từ người đàn ông sudoers:

rootpw          If set, sudo will prompt for the root password instead of the
                password of the invoking user.  This flag is off by default.

runaspw         If set, sudo will prompt for the password of the user defined
                by the runas_default option (defaults to root) instead of the
                password of the invoking user.  This flag is off by default.

Hoặc bạn chỉ có thể cấm hoàn toàn đăng nhập dựa trên mật khẩu thông qua ssh. Yêu cầu khóa mã hóa mật khẩu để đăng nhập từ xa. Sau đó, bạn được tự do sử dụng mật khẩu cho sudo. Tùy chọn có liên quan là

từ người đàn ông sshd_config

 PasswordAuthentication
         Specifies whether password authentication is allowed.  The default
         is “yes”.

Cảm ơn sự giúp đỡ của bạn, Chas. Ông chủ. Tôi e rằng một tác dụng phụ của giải pháp của bạn là tài khoản root sẽ có mật khẩu và do đó có thể đăng nhập với quyền root, đây không phải là một cánh cửa mà tôi muốn mở. Tôi thích mật khẩu sudo dành riêng cho người dùng hơn là mật khẩu gốc toàn hệ thống.
Richard

Bạn cũng có thể vô hiệu hóa đăng nhập root từ sshd_config
Cướp

1

bạn đang tìm kiếm điều này thay vì trong người đàn ông sudoers?

   targetpw        If set, sudo will prompt for the password of the user
                   specified by the -u option (defaults to root) instead of the
                   password of the invoking user. 

Cảm ơn sự giúp đỡ của bạn, johnshen64. Tôi e rằng một tác dụng phụ của giải pháp của bạn là tài khoản root sẽ có mật khẩu và do đó có thể đăng nhập với quyền root, đây không phải là cánh cửa mà tôi muốn mở. Tôi thích mật khẩu sudo dành riêng cho người dùng hơn là mật khẩu gốc toàn hệ thống.
Richard

người dùng đó không phải là người dùng root, nó chỉ mặc định là root nếu bạn không chỉ định nó. bạn có thể thử nghiệm nó để xem nếu nó sẽ giúp bạn. unix khá mở và nếu những thứ này vẫn không hiệu quả với bạn, bạn thậm chí có thể viết một tập lệnh bao bọc hoặc thậm chí sửa đổi sudo (nếu bạn biết c) để làm chính xác những gì bạn muốn.
johnshen64

@ johnshen64 Tôi nghĩ rằng anh ấy đang phản đối thực tế là cùng một mật khẩu sẽ được sử dụng cho tất cả người dùng.
Chas. Owens

Tôi hiểu, nhưng người dùng quản trị có thể được tạo cho mỗi người dùng, giả sử $ {USER} foradmin, để người dùng luôn chỉ định -u $ {USER} foradmin, mặc dù để thực thi sudo vẫn cần phải được thay thế bằng tập lệnh tùy chỉnh.
johnshen64

1

Làm thế nào về việc vô hiệu hóa đăng nhập mật khẩu qua SSH và cho phép đăng nhập khóa công khai nơi bạn có thể đặt mật khẩu khó đoán của mình. Sau đó, mật khẩu cục bộ có thể ngắn hơn và được sử dụng bởi sudo.

Ngoài ra, bạn sẽ phải cấu hình /etc/pam.d/sudođể sử dụng một mô-đun khác (hoặc bổ sung), thoạt nhìn pam_dialpasscó thể cho phép những gì bạn cần.

Bạn cũng có thể định cấu hình cấu hình LDAP cho một và mật khẩu cục bộ cho mật khẩu khác. Tất cả sẽ phụ thuộc vào số lượng thay đổi bạn có thể và sẵn sàng thực hiện, mô-đun nào có sẵn, v.v.


Cảm ơn sự giúp đỡ của bạn, Bram. Đề xuất đầu tiên của bạn sẽ hoạt động, lưu rằng xác thực khóa công khai có thể bị cấm hoạt động, trừ khi bạn chuẩn bị chuyển các tệp chính xung quanh.
Richard

1

GIẢI PHÁP 1: newgrp

Một cách đơn giản để giải quyết trường hợp sử dụng của bạn sẽ là sử dụng :NOPASSWDkết hợp với mật khẩu nhóm và nhóm:

Thêm một dòng để sudoers:

%rudo   ALL=(ALL:ALL) NOPASSWD:ALL

Tạo một nhóm được bảo vệ qua mật khẩu:

groupadd rudo
gpasswd  rudo # Enter passwd

Bây giờ khi bạn đăng nhập với tư cách là người dùng không có quyền (giả sử bạn chưa có trong rudonhóm), hãy đăng nhập vào rudonhóm, tại thời điểm đó bạn sẽ được nhắc nhập mật khẩu.

login user
newgrp rudo

Bây giờ bạn có thể chạy sudomật khẩu ít hơn, miễn là bạn vẫn đăng nhập vào nhóm.


GIẢI PHÁP 2: runaspw

Một cách tốt hơn, có thể an toàn hơn để làm điều này sử dụng runaspw. runaspwđược liên kết với runas_defaulttùy chọn để bạn cũng phải thêm tùy chọn đó.

Giả sử bạn đã có %sudomục nhập nhóm mặc định :

%sudo   ALL=(ALL:ALL) ALL

thêm các dòng này vào tập tin sudoers:

Defaults:%sudo  runas_default=sudo
Defaults:%sudo  runaspw

Bây giờ thêm sudongười dùng mới bằng mật khẩu:

useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo

Bây giờ người dùng nhóm sudo sẽ được nhắc về mật khẩu của người dùng sudo nhưng chỉ người dùng trong nhóm sudo mới có thể sudo (không giống như giải pháp nhóm ở trên, nơi bất kỳ ai trong nhóm hoặc với nhóm mật khẩu đều có thể sudo).

Một vấn đề nhỏ là người dùng runas mặc định bây giờ sudovì vậy để sudo là root, bạn cần xác định rõ ràng root:

sudo -u root <cmd>

Nhưng đủ dễ để xác định một lệnh bí danh ( alias sudo='sudo -u root') hoặc lệnh sudo gián tiếp.

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.