Có tương đương SU cho Windows không


32

Có cách nào (khi đăng nhập với tư cách quản trị viên hoặc thành viên của nhóm quản trị viên) để giả trang thành người dùng không có đặc quyền không? Đặc biệt là trong môi trường AD.

ví dụ, trong thế giới Unix tôi có thể làm như sau (với quyền root):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

Tôi cần kiểm tra / định cấu hình một cái gì đó trên tài khoản của người dùng và tôi không muốn biết mật khẩu của họ hoặc phải đặt lại mật khẩu.

Chỉnh sửa:
runas sẽ không cắt nó. Lý tưởng nhất , toàn bộ máy tính để bàn của tôi sẽ trở thành người dùng, v.v. và không chỉ trong một cửa sổ cmd.


Chỉ tò mò, nhưng tại sao bạn cần phải đăng nhập như người dùng? Tôi thường chỉ cần làm điều này để cấu hình email. Tuy nhiên, tôi đã thấy rằng hầu hết thời gian tôi có thể định cấu hình mọi thứ thông qua Chính sách nhóm / Tập lệnh / v.v.
Dayton Brown

Câu trả lời:


20

Tôi khá chắc chắn không có cách nào được hỗ trợ để chạy như một người dùng khác mà không có thông tin đăng nhập của người dùng đó. Đó là một biện pháp không thoái thác. Ai đó không thể nói: "Tôi đã không làm điều đó", bởi vì họ đã làm điều đó hoặc ai đó có thông tin đăng nhập của họ đã làm điều đó. Và lần thứ hai họ phải cung cấp cho người khác thông tin đăng nhập.

Thông thường cách tôi làm những gì tôi cần làm trong khi đăng nhập với tư cách người dùng khác là sử dụng hỗ trợ từ xa để thực hiện RDP vào phiên và để họ cấp quyền kiểm soát cho tôi. Sau đó, tôi làm bất cứ điều gì trong khi họ đang xem (có lẽ, dù sao đi nữa).

Bất cứ điều gì khác thường có thể được thực hiện với GPO / script.


8
Tôi tin rằng điều này là chính xác. Và, IMHO đây là một cải tiến bảo mật trong thế giới UNIX. Tôi thích ý tưởng rằng ngay cả một quản trị viên cũng không thể là tôi nếu không có mật khẩu của tôi.
tomjedrz

3
Quản trị viên có thể tiếp quản người dùng khác bằng cách đặt lại mật khẩu của họ. Sau đó, họ có thể đăng nhập như bạn. Tuy nhiên, có một dấu vết bằng chứng nếu bạn làm điều này. Đầu tiên, mật khẩu người dùng đã được thay đổi để họ sẽ biết. Thứ hai, sẽ có nhật ký kiểm toán (giả sử đã cho phép kiểm toán).
Erik Funkenbusch

3
Đây thường là cách tôi vận hành là tốt. Tuy nhiên, có những điểm mà tôi nói "Sẽ dễ dàng hơn nhiều khi làm điều này cho Bob nếu tôi là Bob", nhưng Bob đã về nhà một giờ trước.
BIBD

1
Theo như "không thoái thác", việc tôi đặt lại mật khẩu của họ trước tiên không ngăn tôi thực hiện các hành vi độc hại / ngu ngốc như một người dùng khác. Điều đó chỉ có nghĩa là tôi phải làm nhiều việc hơn để che đậy người chịu trách nhiệm.
BIBD

9
Tôi hiểu những gì họ đang cố gắng làm. Tôi chỉ nghĩ rằng đó là nhà hát an ninh nhiều hơn an ninh thực tế.
BIBD

17

Tôi đã nhận thấy rất nhiều người khác đề cập đến các biến thể của lệnh runas và cách bạn cần biết mật khẩu người dùng, điều này đúng, nhưng tôi không nghĩ rằng ai đó đã im lặng trả lời câu hỏi. "muốn toàn bộ máy tính để bàn sẽ trở thành người dùng, v.v. và không chỉ trong một cửa sổ cmd". Đây là cách tôi đi về nó:

Lưu ý : Tôi sẽ đề cập đến Lệnh Prompt đầu tiên này là CP1 để loại bỏ nhiễu sau này.

Trong tài khoản quản trị của bạn, hãy mở Dấu nhắc Lệnh

Đối với tài khoản địa phương

runas /profile /user:computernamehere\username cmd

Đối với tài khoản miền

runas /profile /user:domainname\username cmd

HOẶC cách mà tôi thích nó

runas /profile /user:username@domainname cmd

Lưu ý: Một dấu nhắc lệnh mới sẽ mở (CP2), đây là người dùng mà bạn đang cố đăng nhập như.

Mở CP1 và gõ:

taskkill /f /IM explorer.exe

Mở CP2 và gõ:

explorer.exe

Tùy thuộc vào máy tính, nó có thể tạo một hồ sơ cho người dùng nếu họ chưa bao giờ đăng nhập vào đó trước đó. Bạn có thể tự cứu mình sau khi mở cửa sổ nhắc lệnh để sử dụng sau.

Khi bạn hoàn thành công việc của mình, chỉ cần làm điều tương tự ngược lại.

Trong loại CP2:

taskkill /f /IM explorer.exe

Mở CP1 và gõ:

explorer.exe

Bây giờ bạn nên quay lại tài khoản quản trị viên ban đầu. Bạn có thể kiểm tra nhanh bằng cách nhấn phím Windows và tìm bảng điều khiển người dùng hiện tại.

Hy vọng điều này sẽ giúp.


3
Đó là một số phép thuật sâu sắc.
mskfisher

@mskfisher Haha, nếu bạn nghĩ rằng một người điên, bạn nên xem những gì tôi phải làm để tìm ra cách giết một phiên psexec đã bị khóa sau khi chạy một lệnh wmic xấu. ... Pskill từ dấu nhắc lệnh thứ hai, chỉ vào máy từ xa, sau khi sử dụng psservice để theo dõi id tiến trình cho psexec trên dấu nhắc lệnh đầu tiên!
Michael H

4 năm sau tôi đã được nhắc về câu hỏi này và khi tôi có thời gian để kiểm tra nó. Ôi!
BIBD

Trên Windows 10, sử dụng dấu nhắc runas cho mật khẩu của người dùng.
TheAmigo

7

Không có cơ chế tích hợp trong Windows để làm điều này. Nó có thể được thực hiện, nhưng bạn sẽ phải có một cái gì đó được viết để làm những gì bạn muốn và có lẽ bạn sẽ phải làm quen với các API không có giấy tờ.

Một trong những áp phích ở đây, grawity, có quyền ngay khi gọi CreatProcessAsUser (), nhưng trước tiên bạn sẽ cần tạo mã thông báo với API gốc zwCreateToken không có giấy tờ. Nếu bạn đã tắt Explorer và kích hoạt một phiên bản Explorer mới w / CreatProcessAsUser () Tôi khá chắc chắn rằng bạn sẽ muốn bạn muốn.

Microsoft không làm cho những gì bạn muốn làm trở nên dễ dàng bởi vì đó không phải là cách họ muốn bạn sử dụng NT. Nếu bạn cần phải đăng nhập với tư cách là người dùng để khắc phục sự cố của họ, trong hầu hết các trường hợp, bạn sẽ giải quyết vấn đề đó theo cách tối ưu.

Bạn có thể thực hiện các thay đổi đối với sổ đăng ký của người dùng khi đăng nhập như họ (bằng cách đính kèm sổ đăng ký của họ và thao tác theo cách đó). Bạn có thể thay đổi các tệp trong hồ sơ người dùng của họ khi không đăng nhập với tư cách người dùng. Nếu bạn cần "thiết lập email" hoặc các hoạt động khác "với tư cách là người dùng", bạn nên viết tập lệnh hoặc tận dụng chức năng tích hợp (Mẫu quản trị chính sách nhóm, tùy chọn, v.v.) để thực hiện công việc bẩn thỉu cho bạn.

Nếu bạn phải làm điều này, hãy xem RunAsEx trên Code Project. Mã đó sẽ cung cấp cho bạn một ý tưởng khá tốt về những gì bạn sẽ cần phải làm. Tôi đã không thử chương trình, nhưng có vẻ như mọi thứ đang diễn ra đúng cách.


5

Bạn có thể sử dụng lệnh sau trên Windows XP trở lên:

RunAs.exe

Các tùy chọn dòng lệnh có sẵn ở đây .

Điều này sẽ không hoạt động mà không biết mật khẩu người dùng. Tôi không tin rằng có một cách trong Windows để hoạt động trong tài khoản người dùng mà không cần mật khẩu do cách nhận dạng Bảo mật được tải.


3
Tôi tin rằng chương trình RunAs vẫn yêu cầu bạn biết mật khẩu của người dùng mà tôi tin rằng các trạng thái câu hỏi ban đầu không được biết đến
Kevin Kuphal

Bạn đúng ... Tôi đã quên điều đó.
Doug Luxem

2

(Chỉ là một phỏng đoán.) Nếu tài khoản của bạn có SeCreateTokenPrivilege, bạn có thể viết một chương trình nhỏ để tạo một quy trình bằng cách sử dụng CreateProcessAsUser()hoặc một chức năng tương tự ... (Nhưng ngay cả các quản trị viên cũng không có đặc quyền theo mặc định.)


2

Mặc dù tôi không có kinh nghiệm cá nhân với một số giải pháp sudo được đề cập trên trang web này, tôi rất khuyến khích nonadmin bắt đầu bởi Aaron Margosis tuyệt vời . Nó là một trợ giúp lớn khi bạn tung ra người dùng hạn chế. Tôi chủ yếu nhảy với một cái gì đó vì mọi người khác đang nói sử dụng Runas. Tuy nhiên, tôi nghĩ rằng hầu hết hoặc tất cả những thứ được gọi là sudo cho windows xử lý nhiều hơn với độ cao thay vì hoạt động như một người dùng khác mà không có mật khẩu của họ.


0

Process Explorer procexp.exe trên http://live.sysinternals.com có chạy như người dùng hạn chế (trên menu file) mà sẽ cho phép bạn chạy một chương trình bằng các thông tin hiện tại của bạn, nhưng với ACL của bạn lột xuống của một bình thường người dùng (không phải quản trị viên). Không phải những gì bạn muốn chính xác, nhưng tốt cho thử nghiệm.

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.