“Thuần hóa” UAC của Microsoft Windows Vista
Liệu có tính năng nào của Microsoft Windows Vista gây bực tức
trên toàn cầu hơn User Account Control, tức UAC viết rút gọn, hay
không? Trong điều kiện cần thiết nó vô cùng hữu ích nhưng khi
ngược lại nó trở thành sự bất tiện không thể chịu nổi. Giải pháp hấp
dẫn ở đây là tắt UAC đi và xem như xong, nhưng đây không phải là
giải pháp xác đáng. Sẽ có những lần bạn muốn sự bảo vệ của UAC và có nhiều cách bạn
biến UAC thân thiện hơn là xâm chiếm. Hợp tác với nó hơn là chống lại nó, và bạn sẽ
thấy ngạc nhiên thú vị là nó dễ điều khiển đến mức nào. Sau đây là 7 cách khiến UAC
của Vista ít xâm phạm hơn mà vẫn tránh xa được hiểm nguy an ninh.
Liệu có tính năng nào của Microsoft Windows Vista gây bực tức trên toàn cầu hơn User
Account Control, tức UAC viết rút gọn, hay không? Trong điều kiện cần thiết nó vô cùng
hữu ích nhưng khi ngược lại nó trở thành sự bất tiện không thể chịu nổi.
Hay nhìn theo một quan điểm ôn hòa hơn, nó là một tính năng đôi lúc cũng tối cần thiết
với Windows – một cách để kiểm soát quyền truy cập tài khoản người dùng quản trị để
những chương trình không có quyền truy cập quản trị không nhận được nó.
Chúng tôi theo quan điểm thứ 2, ngoài việc phá vỡ nhiều thói quen làm việc hiện hành,
cũng có nhiều câu hỏi xung quanh cách hoạt động, hoặc phải hoạt động như thế nào, của
nhiều chương trình dưới sự điều khiển của UAC.
Giải pháp hấp dẫn ở đây là tắt UAC đi và xem như xong, nhưng đây không phải là giải
pháp xác đáng. Sẽ có những lần bạn muốn sự bảo vệ của UAC và có nhiều cách bạn biến
UAC thân thiện hơn là xâm chiếm. Hợp tác với nó hơn là chống lại nó, và bạn sẽ thấy
ngạc nhiên thú vị là nó dễ điều khiển đến mức nào.
1. Xung đột quyền quản trị
Điều quan trọng đầu tiên cần được nói đến là trong trường hợp nào hộp thoại của UAC
nên và không nên xuất hiện. Nhiều người than phiền rằng UAC quấy rầy họ ngay khi đó
dường như chỉ là một hành động hệ thống hoàn toàn bình thường, như mở một file hoặc
copy một thứ gì đó sang một nơi khác. Đây không phải là cách làm việc hợp lý của UAC,
vì vậy sau đây là bài phân tích nhanh khi nào bạn nên và không nên nhận những câu lệnh
của UAC.
UAC có thể khởi động không cần thiết nếu các điều khoản
của bạn được thiết lập không chính xác.
Đầu tiên, UAC nên khởi sự bất cứ khi nào bạn click vào một biểu tượng hoặc hộp thoại
Windows có biểu tượng hình cái khiên (shield). Logo này được tạo ra làm lời chú thích
bằng hình ảnh rằng bất cứ hành động có liên quan đến nó sẽ phải có sự chấp thuận của
UAC, một dạng cảnh báo trước cho người dùng. Những hành động này bao gồm những
thứ như bộ cài đặt ứng dụng, thứ rõ ràng cần phải có sự cho phép của quản trị (admin) để
hoạt động. Có lẽ giờ bạn sẽ thấy các biểu tượng cài đặt ứng dụng sẽ được trang trí thêm
biểu tượng hình khiên; đó chính là chỉ thị cần sự chấp thuận của UAC để chạy chúng.
UAC không nên bật ra khi bạn mở những tài liệu trong thư mục người dùng, khi truy cập
vào những tài liệu trên một ổ đĩa khác mà bạn biết là của mình, hoặc khi chạy những
chương trình bình thường như Office hoặc Firefox mà không cần quyền quản trị để hoạt
động đúng. Nếu điều này xảy ra, có khả năng cao là điều khiển sự cho phép trên những
file đó bị hỏng hoặc thiết lập sai.
Trường hợp này thường xảy ra khi làm việc với những file trên ổ cứng được di chuyển từ
một máy tính khác, ví dụ như máy chạy Windows phiên bản trước đó. Một ổ cứng định
dạng FAT hoặc FAT32 thường không hiển thị những vấn đề đó vì những hệ thống file
này không cần đến sự cho phép, nhưng ổ cứng định dạng NTFS có thể có quyền sở hữu
trên file và thư mục thuộc về một user nào đó chứ không phải hệ thống hiện tại của bạn.
Kết quả là, bất kỳ hoạt động file nào trên ổ đấy cũng phải thực hiện dưới chế độ admin,
mà có khi vẫn thất bại.
Giải pháp: thu lại quyền sở hữu
Giải pháp ở đây là lấy lại quyền sở hữu tất cả mọi thứ trên ổ, dù bạn là user hiện tại hay
là một quản trị viên. Điều này có thể được thực hiện thông qua GUI, nhưng thường sẽ
nhanh hơn và linh hoạt hơn nếu thực hiện thông qua cửa sổ lệnh. Nếu ổ E: là ổ có vấn đề,
bạn có thể dùng lệnh ICACLS, ví dụ như:
Icacls e:\* /setowner Administrators /T /C
Nên nhớ rằng lệnh này mất một lúc mới hoàn tất, vì nó lặp đi lặp lại trên từng đối tượng
trong hệ thống file và áp dụng thay đổi về bảo mật. Có thể bạn cũng sẽ muốn tự động gỡ
bỏ Recycle Bin ra khỏi ổ này sau khi thực hiện xong, vì nó sẽ không hoạt động chính xác
sau khi thay đổi các điều khoản hoặc quyền sở hữu. Điều này cũng thực hiện được từ cửa
sổ lệnh:
attrib -s -h e:\RECYCLER
rd /s e:\RECYCLER
(vẫn giả định thực hiện trên ổ e:)
Recycle Bin của ổ này sẽ được tái tạo tự động lần kế tiếp bạn khởi động lại hệ thống. Có
thể bạn cần phải gán các điều khoảncho ổ đĩa này để có thể truy cập vào tất cả mọi thứ
trong nó, nhưng quyền sở hữu đã là mức cao nhất.
2. Sử dụng Process Explorer
Bây giờ đến câu hỏi kế tiếp: Liệu có thể khởi động những chương trình nhất định mà
không phải đối phó với các lệnh UAC không? Câu trả lời ngắn gọn là có, mặc dù có
“nhiều con đường dẫn đến thành Rome”. Con đường chính xác mà bạn sẽ đi tùy thuộc
vào thói quen làm việc và bạn muốn chỉnh sửa nó đến mức nào.
Chạy Process Explorer với quyền admin sẽ cho phép bạn khởi chạy
những chương trình khác với đặc quyền quản trị
Cách tránh UAC của chúng tôi là chạy chương trình Process Explorer của
Sysinternals.com thay thế cho Task Manager. Khi bạn dùng PE với tùy chọn dòng lệnh
/T, nó sẽ tự khởi động chương trình với tư cách Administrator. Đặt shortcut tới PE trong
trong nhóm Startup và sau khi đăng nhập bạn sẽ gặp nhắc nhở của UAC để chạy chương
trình với quyền quản trị.
Vậy giải pháp nằm ở đâu? Khi PE khởi động với quyền admin, một trong những điều bạn
có thể thực hiện là dùng nó để mở những chương trình khác cũng với quyền admin. Hãy
thực hiệnđiều này thông qua hộp thoại File/Run của chương trình, nó cũng có chức năng
History và có thể được sử dụng để lưu những nhiệm vụ admin phổ biến, như mở một
phiên CMD hoặc chạy COMPMGMT.MSC /S (bảng điều khiển Computer
Management). Tất cả những chương trình đó sẽ chạy với quyền admin mà không vướng
hộp thoại của UAC.
Dĩ nhiên PE không phải là chương trình duy nhất có thể sử dụng theo hướng này để khởi
chạy các chương trình khác cũng với quyền admin, mà nó là một trong những chương
trình tốt hơn vì nhiều lý do – chí ít nó đã được viết để thay thế cho một thành phần của hệ
thống, chính vì vậy nó là một phần mã tin cậy mà không ảnh hưởng gì đến bạn.
Phương pháp này có một số hạn chế, phần lớn trong số này là những gì liên quan đến sự
thoải mái cho người dùng. Hạn chế lớn nhất là tốn nhiều công sức: muốn khởi chạy PE
bạn cần phải mở nó từ khay hệ thống (hoặc bằng cách nhấn Ctrl – Shift – Esc), sau đó
mở menu Run (Ctrl – R) và gõ thứ bạn đang tìm kiếm hoặc kéo xuống để tìm. Nó sẽ tốt
đẹp nếu (a) bạn để PE chạy liên tục; (b) bạn cần phải chạy một chương trình với quyền
admin.
Chính vì vậy bạn có thể cảm thấy hẳn phải có một cách tốt hơn để thực hiện điều này, và
thực sự là có vài cách.
3. Lên lịch cho một nhiệm vụ chạy với quyền quản trị
Cách duy nhất để tránh UAC là khởi động một chương trình với quyền admin thông qua
Task Scheduler. Vì bạn không thể khởi động Task Scheduler và thêm vào một nhiệm vụ
quyền admin nếu không phải là admin (và không phải thông qua UAC) ngay từ ban đầu,
tuy nhiên điều này không phải là lỗ hổng. Những thông tin admin cần thiết được lưu cùng
với bản thân nhiệm vụ.
Khi được thiết lập, nó có thể được dùng để chạy những nhiệm vụ riêng lẻ (an toàn hơn)
hoặc như một framework để khởi chạy những nhiệm vụ quản trị (hơi ít an toàn hơn,
nhưng tiện lợi hơn).
Sau đây là một ví dụ cách tạo một nhắc lệnh quản trị theo cách này.
Task Manager có thể tránh UAC. Chỉ cần chọn “Run with highest privileges”
1. Truy cập với tài khoản quản trị và khởi động Task Scheduler. Một cách nhanh chóng là
gõ sched trong menu Start, sau đó nhấn vào Task Scheduler khi nó xuất hiện. Nó cũng
có sẵn trong Control Panel, dưới mục “Schedule tasks” ở bảng bên trái theo cách hiển
thị chuẩn, hoặc trong Administrative Tools theo hiển thị Classic.
2. Tạo một nhiệm vụ mới bằng cách nhấn “Create Task” trong bảng Actions (“Create
Basic Task” có thể không đưa ra hết các tùy chọn mà bạn cần.)
3. Trong thẻ General, đặt tên cho task. “Admin” sẽ hoạt động tốt. Bất kỳ tên nào cũng
được miễn là bạn thấy dễ nhớ; vì bạn sẽ cần nó sau này. Chọn hộp chọn “Run with
highest privileges”.
4. Trong thẻ Actions, chọn “New” và chọn “Start a program”. Đưa đường dẫn đến
chương trình bạn muốn chạy với quyền admin. Trong trường hợp này là cmd.exe. Chọn
OK và thêm hành động đó vào danh sách.
5. Trong thẻ Conditions, bỏ chọn tất cả các tùy chọn đưa ra.
6. Trong thẻ Settings, bỏ chọn tất cả các tùy chọn đưa ra, trừ “Allow task to be run on
demand”.
7. Chọn OK và thêm vào nhiệm vụ được lên lịch.
8. Để chạy nhiệm vụ, tạo một shortcut dẫn đến vị trí sau
C:\Windows\System32\schtasks.exe /run /tn ""
(tên nhiệm vụ) là tên bạn chọn trong bước 3. Cần phải có dấu trích dẫn (“”) xung quanh
tên. Bạn có thể đặt một icon để nhấn mạnh đây là một hoạt động quyền admin.
9. Khởi động shortcut. Bạn sẽ thấy xuất hiện một cửa sổ CMD với dòng chữ
Administrator: taskeng.exe ở thanh tiêu đề.
Một trong những mẹo mà bạn nên làm trên cửa sổ CMD admin là đặt màu nền cửa sổ
thành màu đỏ thẫm để có thể liếc qua mà vẫn phân biệt được liệu đang gõ vào một cửa sổ
lệnh admin hay cửa sổ thường. Để thực hiện điều này, khởi động cửa sổ CMD, nhấn Alt
– Space để mở menu của cửa sổ, và chọn Properties. Dưới mục “Colors”, chọn bộ màu
bạn muốn sử dụng cho cửa sổ admin, nhấn OK.
Phương pháp tương tự cũng được sử dụng để khởi động trường hợp “nâng cao” của
Explorer. Sử dụng explorer/separate để mở Explorer trong một trường hợp riêng– nếu
không nó sẽ khởi động như một cửa sổ lệnh thường khác chứ không phải “nâng cao”.
(Cẩn thận với những trường hợp Explorer nâng cao, vì bạn có khả năng làm rối tung hoàn
toàn mọi thứ lên theo cách này.)
Thêm nữa, nếu bạn khởi động trường hợp Explorer “nâng cao”, hãy nhớ rằng bạn không
thể sao chép hoặc di chuyển file giữa các trường hợp “nâng cao” và không nâng cao của
Explorer. Ví dụ, nếu bạn thử sao chép vào hoặc ra khỏi thư mục Windows, khởi động
chương trình Explorer như trên và nhấn Ctrl-N để mở một cửa sổ thứ 2 từ trường hợp
trên để có thể sao chép giữa chúng với nhau.
Một ứng dụng khác cho Task Scheduler
Cũng có thể dùng Task Scheduler để mở một ứng dụng với quyền quản trị. Hơn nữa, vốn
đã có một ví dụ bằng chứng về việc thực hiện điều này như thế nào, và đó là bằng chứng
điều đó tiện lợi như thế nào.
Có một số hướng dẫn về cách sử dụng Task Scheduler để tạo ra một tập lệnh có thể được
dùng để chạy bất cứ thứ gì mà không cần lệnh UAC, bằng một menu ngữ cảnh chuột
phải.
SkipUAC, đây là chương trình sử dụng cả nhiệm vụ lịch biểu và ứng dụng chạy trên
nhiệm vụ để đạt được thành tích của nó. Nên nhớ rằng bạn phải có khả năng chạy các
nhiệm vụ với quyền admin để cài đặt chương trình này ngay từ bước đầu, và chất lượng
của toàn bộ điều này là khá tốt – nó được dành cho những người thực sự biết họ đang làm
gì.
4.Sử dụng “Chế độ im lặng” của UAC
Một trong những tính năng của UAC mà ít được ghi nhận rộng rãi là “quiet mode” (chế
độ im lặng), điều giúp cho sự nâng cao UAC có thể được cài đặt diễn ra câm lặng mà
không cần sự đồng ý của người dùng. Những chương trình cần “nâng cao” vẫn chạy
trong tình trạng bảo mật riêng biệt, và người dùng vẫn chạy chế độ mặc định với quyền
ưu tiên giảm.
TweakUAC có thể được dùng để bật/tắt UAC, hoặc khiến nó làm việc im lặng
Chế độ im lặng không được đặt sẵn mặc định qua bản điều khiển UAC Vista, có lẽ bởi vì
có khả năng nó sẽ bị lạm dụng. Bật lên và những chương trình đòi quyền ưu tiên từ hệ
thống có thể chạy mà không cần sự đồng ý đặc biệt của người dùng. Tuy nhiên, nó vẫn là
một cách hữu dụng để tạm thời tăng tốc một số hoạt động đòi quyền nâng cao nếu bạn
không sử dụng trình tiện ích nâng cao.
Để bật chế độ im lặng bằng tay, bạn sẽ cần chỉnh sửa Registry (một hành động UAC).
Đặt các giá trị DWORD:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft (NSDQ: MSFT)\
Windows\CurrentVersion\Policies\System\
ConsentPromptBehaviorAdmin
và
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Policies\System\ConsentPromptBehaviorUser
Về 0 (mặc định là 2). Bạn có thể sẽ cần làm mới policy sau đó, bằng cách sử dụng lệnh
gpupdate từ một nhắc lệnh nâng cao.
Một cách khác để bật chế độ im lặng là sử dụng một phần mềm freeware của các hãng
thứ ba, TweakUAC. TweakUAC cho phép bạn tắt UAC hoàn toàn (đòi phải reboot), tái
kích hoạt và đưa nó vào chế độ im lặng theo yêu cầu.
5. Tắt Secure Desktop
Một trong những tính năng – hoặc nỗi phiền toái, tùy thuộc vào quan điểm – của UAC là
cách UAC bật lên được khởi động trên một màn hình an toàn, và tách biệt hoàn toàn. Đó
là lý do vì sao màn hình tối đi trong vòng một giây và lệnh của UAC xuất hiện trên phiên
bản xám xịt của màn hình (nghĩa là bạn không thể thao tác được nữa). Điều này ngăn cản
tất cả mọi thứ trừ bạn, người dùng, thao tác trực tiếp với lệnh của UAC, vì vậy một
chương trình độc hại không thể kích hoạt UAC mạo danh bạn.
Điều Secure Desktop làm phiền mọi người nhất là mất vài giây để quay trở lại, đặc biệt
khi bạn đang sử dụng một máy tính không có phần cứng video nhanh nhất hoặc không sử
dụng giao diện Aero.
Có thể vô hiệu hóa Secure Desktop và khiến lệnh UAC biến mất nhanh hơn trên màn
hình chính. Để đối phó với Secure Desktop, chỉnh sửa Registry và đặt giá trị DWORD:
i>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
\
System\PromptOnSecureDesktop
Đặt về 1 để bật Secure Desktop và 0 để tắt nó. Bạn có lẽ sẽ cần chạy gpupdate/force sau
khi thực hiện để chắc chắn thay đổi có hiệu lực.
Nếu bạn không thoải mái với ý tưởng hy sinh về độ an toàn quá nhiều chỉ vì tốc độ nhanh
hơn một chút, đừng tắt Secure Desktop; bạn có thể chọn một trong những cách được trình
bày trong bài.
6. Thắt chặt điều khiển của UAC
Cùng với tất cả các cách để việc sử dụng UAC dễ dàng hơn, chúng tôi cũng đưa vào một
số mẹo vặt có thể hữu dụng cho những ai muốn UAC an toàn hơn. Ở chế độ mặc định,
UAC bắt buộc người dùng không phải admin gõ mật khẩu admin, nhưng cho phép người
dùng admin chỉ cần đơn giản nhấn OK để đồng ý một hành động của UAC. Có nghĩa là
có thể buộc UAC yêu cầu password cho tất cả các người dùng, bao gồm cả admin.
Để thực hiện điều này, chỉnh sửa Registry, và cài đặt giá trị DWORD
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft (NSDQ: MSFT)\Windows\
CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin
về 1. Giá trị mặc định là 2, tức là hành vi admin tiêu chuẩn.
Cài đặt ConsentPromptBehaviorAdmin để bắt buộc các admin cung cấp password khi
UAC xuất hiện.
7. Thực thi chạy mã có xác thực
Sau đây là một cách tăng cường bảo mật có thể có ích với những người muốn chạy UAC
im lặng những vẫn muốn có thêm sự bảo vệ chống lại những đoạn mã giả tạo.
UAC có thể được thiết lập để chạy chương trình với tư cách admin chỉ nếu khi chúng có
chữ ký số hợp lệ, mặc dù theo mặc định tính năng này bị tắt đi. Phần lớn các bộ cài
chương trình có một số dạng chữ ký; bạn có thể tìm xem một ứng dụng có chữ ký hay
không bằng cách nhấn chuột phải lên biểu tượng chương trình, chọn Properties, tìm thẻ
Digital Signatures. Đây là một dạng bảo hiểm rằng chương trình đang chạy không độc
hại và có nguồn gốc.
Để chắc chắn UAC chỉ chấp nhận những mã được ký, chỉnh sửa Registry và đặt giá trị
DWORD:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
Policies\System\ValidateAdminCodeSignatures
về 1. Thay đổi này thường xảy ra ngay lập tức.
Nhớ rằng có nhiều chương trình vô hại nhưng không được ký sẽ không hoạt động, và nếu
bạn cố gắng chạy chúng với quyền admin mà tính năng này được kích hoạt thì chúng sẽ
bị lỗi. Nếu bạn nhận được dòng lỗi “A referral was returned from the server” thì đó là
dấu hiệu chương trình bạn đang muốn chạy chưa được ký. (Đây có lẽ là nguyên nhân
chức năng này bị vô hiệu hóa theo mặc định, vì nó sẽ khiến nhiều chương trình “vô tội”
không hoạt động.)
Nếu có gì đó bạn biết là hợp lệ và muốn chạy nó với quyền admin, bạn có thể làm được
bằng cách chạy nó thông qua dòng lệnh nâng cao, Explorer, hoặc thông qua Process
Explorer được nhắc đến trước đó.