Nếu bạn đã từng sử dụng Linux hoặc biết ai đó sử dụng Linux, thì có lẽ bạn đã nghe nói về lệnh sudo. Lệnh này là một thành phần quan trọng đối với mọi bản phân phối Linux và những gì nó làm là cho phép bạn chạy một lệnh với tư cách là một người dùng khác, đặc biệt là người dùng root. Trên một số bản phân phối Linux nhất định, bạn có thể đăng nhập với tư cách là người dùng root bằng cách sử dụng lệnh su, nhưng điều này được coi là rất rủi ro và không ai từng làm điều đó.
Trên thực tế, nó nguy hiểm đến mức nó bị vô hiệu hóa theo mặc định trên các bản phân phối Linux như Ubuntu. Thay vào đó, bạn phải sử dụng lệnh sudo nếu bạn muốn chạy một lệnh như người dùng root. Vậy còn Windows thì sao? Thật không may, hầu hết mọi người đều đăng nhập vào Windows với tư cách Quản trị viên, giống như người dùng root trong Linux. Tuy nhiên, Microsoft đã cố gắng giảm bớt các tác động nguy hiểm khi đăng nhập với tư cách Quản trị viên bằng cách bật Kiểm soát tài khoản người dùng hoặc UAC.
Theo cách đó, ngay cả khi người dùng có các đặc quyền Quản trị, các ứng dụng chạy trong tài khoản đó sẽ không được thừa hưởng các đặc quyền đó trừ khi được người dùng ủy quyền theo cách thủ công. Điều này giúp ngăn phần mềm độc hại và phần mềm gián điệp lây nhiễm cho người dùng Windows đã đăng nhập với tư cách Quản trị viên.
Vậy trong khi người dùng Linux có lệnh sudo, người dùng Windows có gì? Có những lựa chọn thay thế mà người dùng Windows có thể sử dụng để chạy các lệnh với các đặc quyền nâng cao? Có một lệnh sudo cho Windows? Trong bài viết này, tôi sẽ nói về năm lựa chọn thay thế cho lệnh sudo cho người dùng Windows.
Lưu ý : Hiện tại một số công cụ này khá cũ, vì vậy chúng có thể hoặc không thể hoạt động với các phiên bản Windows mới nhất.
Lệnh Windows Runas
Windows có lệnh runas, là đối tác trực tiếp với sudo trên Linux. Sử dụng lệnh runas, bạn có thể thực thi một tập lệnh, chương trình hoặc lệnh với tư cách là người dùng khác hoặc với tư cách quản trị viên. Cú pháp đầy đủ cho lệnh runas là:
runas [/ profile] [/ env] [/ netonly] [/ smartcard] [/ showtrustlevels] [/ trustlevel] / user: chương trình UserAccountName
Nếu bạn muốn mở một dấu nhắc lệnh quản trị, bạn có thể gõ như sau:
runas / noprofile / user: Quản trị viên cmd
/ noprofile sẽ không tải hồ sơ người dùng hiện tại. Bạn có thể loại bỏ điều đó nếu bạn cần truy cập vào các biến môi trường người dùng. Nếu bạn muốn mở tệp văn bản bằng Notepad với đặc quyền của quản trị viên, bạn có thể sử dụng lệnh này:
runas / người dùng: Quản trị viên "notepad my_file.txt"
Bạn có thể kiểm tra trang Technet trên runas để biết thêm thông tin về cách sử dụng nó.
Lưu ý rằng khi sử dụng lệnh runas, nếu bạn cài đặt chương trình hoặc thay đổi cài đặt, v.v., những thay đổi sẽ được thực hiện đối với tài khoản người dùng mà bạn đang chạy lệnh trên. Ví dụ: giả sử bạn có người dùng X là người dùng bình thường và người dùng Y, là quản trị viên. Nếu bạn đăng nhập vào X và sau đó thực hiện một runas bằng thông tin đăng nhập của Quản trị viên, các thay đổi sẽ được thực hiện cho cài đặt của Quản trị viên, không phải người dùng X.
Vì vậy, nếu bạn cài đặt một ứng dụng bằng cách nhấp chuột phải vào tệp EXE và chọn Run as Administrator, nó sẽ được cài đặt vào hồ sơ người dùng Administrator tích hợp, chứ không phải ứng dụng bạn đã đăng nhập. Nếu bạn muốn các đặc quyền nâng cao thực sự như sudo mà không có vấn đề về hồ sơ, hãy xem phương án tiếp theo bên dưới.
Sudo cho Windows - Sourceforge
Sudo cho Windows là một chương trình miễn phí mà bạn có thể cài đặt sẽ cung cấp cho bạn trải nghiệm tương tự về lệnh sudo trên Linux cho Windows. Sự khác biệt duy nhất là Sudo cho Windows, bảo tồn hồ sơ người dùng và quyền sở hữu các đối tượng được tạo ra theo quy định của nhà phát triển. Điều này thực sự tiện dụng nếu bạn muốn sử dụng quyền nâng cao để cài đặt ứng dụng hoặc thay đổi vị trí của người dùng như Tài liệu của tôi, v.v.
Nó sẽ cung cấp cho bạn các đặc quyền quản trị, nhưng sẽ giữ tất cả các thay đổi trong hồ sơ hiện tại thay vì tài khoản bạn đang sử dụng để chạy lệnh. Chương trình yêu cầu .NET phiên bản 2.0 mà bạn không thể tải xuống riêng lẻ. Để có được 2.0, bạn phải cài đặt .NET Framework 3.5, bao gồm 2.0.
Khi bạn cài đặt Sudo cho Windows, bạn cần thêm tài khoản người dùng mà bạn cho phép để có các đặc quyền nâng cao cho một nhóm cụ thể được tạo bởi chương trình có tên S udoers . Nhấp chuột phải vào My Computer hoặc PC này và nhấp vào Manage . Sau đó mở rộng Người dùng và Nhóm và nhấp vào Nhóm . Bạn sẽ thấy một cái gọi là Sudoers .
Nhấp đúp vào Sudoers và nhấp vào nút Thêm .
Trên hộp thoại tiếp theo, nhấp vào nút Nâng cao và sau đó nhấp vào Tìm ngay . Điều này sẽ liệt kê ra tất cả người dùng và các nhóm trên hệ thống. Bấm đúp vào người dùng bạn muốn thêm.
Lặp lại bước này cho nhiều người dùng bạn muốn thêm. Sau đó bấm OK và bạn sẽ thấy các thành viên được liệt kê trong hộp danh sách Thành viên được hiển thị ở trên. Nhấn OK và bây giờ bạn sẽ có thể sử dụng lệnh sudo GUI và lệnh. Nếu bạn nhấp chuột phải vào một chương trình, bạn sẽ thấy tùy chọn Sudo .
Bạn cũng có thể mở một dấu nhắc lệnh và gõ sudo để chạy lệnh với quyền nâng cao.
Nhìn chung, nó khá tiện lợi và hoạt động rất tốt. Tuy nhiên, lưu ý rằng chương trình cụ thể này thực sự hữu ích để khởi chạy chương trình hoặc quy trình thông qua nhấp chuột phải hoặc qua dấu nhắc lệnh, nhưng nó không có nghĩa là để chạy các ứng dụng dòng lệnh. Ví dụ: nếu bạn muốn thực hiện sudo mkdir, c: \ Program Files \ new, thì điều này sẽ không hoạt động khi sử dụng Sudo cho Windows. Đối với chức năng đó, có một chương trình khác được gọi là điều tương tự, nhưng bởi một nhà phát triển khác. Đọc dưới đây.
Sudo cho Windows - Luke Sampson
Có một nhà phát triển khác đã viết một Sudo khác cho Windows cũng cho phép bạn thực thi các ứng dụng dòng lệnh. Vì vậy, hãy quay lại ví dụ về cách tạo thư mục mới trong C: \ Program Files. Bạn thực sự không thể làm điều này theo mặc định.
Ở trên tôi đang sử dụng PowerShell, nhưng bạn cũng sẽ gặp lỗi tương tự khi sử dụng dấu nhắc lệnh. Tuy nhiên, một khi bạn cài đặt Sudo cho Windows, chỉ cần thêm từ sudo vào phía trước lệnh và nó hoạt động hoàn hảo không có lỗi!
Để cài đặt nó, bạn cần mở PowerShell và sau đó nhập các lệnh sau theo thứ tự:
iex (new-object net.webclient) .doadopes ('// get.scoop.sh') set- execpolicy không giới hạn -s cu -f scoop cài đặt sudo
Nếu mọi thứ hoạt động tốt, bạn sẽ thấy đầu ra sau trong PowerShell sau mỗi lệnh:
Đó là nó! Bây giờ bạn có thể bắt đầu nhập các lệnh và thêm sudo ở phía trước. Điều khó chịu duy nhất của chương trình này là cửa sổ UAC vẫn bật lên và bạn đã bấm Có để nó hoạt động. Ngay cả với sự phiền toái nhỏ đó, những lợi ích cũng rất đáng giá.
Nâng
Elevate là một chương trình hoạt động với UAC và không hoạt động chính xác như sudo. Với Elevate, nó sẽ thay đổi người dùng thực thi thành Quản trị viên giống như lệnh runas. Tuy nhiên, nó hữu ích để làm việc trong dòng lệnh hoặc với các tệp bó.
Mục đích chính của độ cao không phải là để đi xung quanh UAC, mà là bắt đầu một quá trình ở trạng thái nâng cao từ lớp vỏ không nâng lên và sau đó tiếp tục như bình thường ngay cả khi lệnh đã hoàn thành. Elevate rất hữu ích cho việc tạo kịch bản vì bạn không phải lo lắng về việc cố gắng tạo toàn bộ tập lệnh nhấp chuột phải và chạy dấu nhắc lệnh như quy trình Quản trị viên.
Độ cao PowerToys cho Windows
Đối với những người bạn làm nhiều việc trên dòng lệnh hoặc làm việc với các tập lệnh và tệp bó, thì trang Elevation PowerToys cho Windows có khá nhiều công cụ và tập lệnh hữu ích.
Các đồ chơi sức mạnh nâng cao kịch bản được tạo ra để khắc phục các khía cạnh bực bội của UAC khi cố gắng nâng một chương trình từ dòng lệnh hoặc chạy các kịch bản với tư cách quản trị viên.
Hy vọng rằng, đó là đủ các công cụ và chương trình để bạn cảm thấy như bạn đang thực sự sử dụng sudo trên Windows. Không có sự thay thế hoàn hảo cho nó, nhưng có khá nhiều lựa chọn đến gần. Nếu bạn sử dụng một cái gì đó khác để nâng cao các chương trình, lệnh hoặc tập lệnh trong Windows, hãy cho chúng tôi biết trong các nhận xét. Thưởng thức!