Labels

Thứ Tư, 20 tháng 6, 2012

Dùng sudo không cần nhập password



Một số chương trình cần phải dùng thường xuyên tuy nhiên đòi hỏi mật khẩu (quyền root) mới cho sử dụng khiến bạn cảm thấy phiền phức? Như: shutdown, reboot,... từ command line

Tin vui là có giải pháp giúp thực hiện công việc đơn giản hơn nhờ vào việc cấp phép cho tài khoản người dùng. Tuy nhiên việc này cần cẩn thận để đảm bảo tính bảo mật cho hệ thống của bạn nhé!!!

Ví dụ bên dưới làm cho lệnh shutdown, các lệnh khác tương tự

Thường khi tắt máy trong command line các bạn gõ lệnh
sudo shutdown -h now 
tức nhiên hệ thống sẽ yêu cầu bạn xác minh mật khẩu một lần nữa, việc này khá là phiền với người dùng bình thường. Chúng ta sẽ làm cho nó không hỏi mật khẩu nữa?

Chúng ta chỉ cần làm 2 việc sau:
  1. Bật suid cho /sbin/shutdown
  2. Chỉnh sửa /etc/sudoers với lệnh visudo
 Bước 1. Bật suid cho /sbin/shutdown

Để bật thuộc tính này ta dùng lệnh bên dưới với quyền root
sudo chmod u+s /sbin/shutdown
Các bạn có thể tìm hiểu SUIDCHMOD ở các bài viết khác
Xong bước này bạn có thể shudown không cần dùng sudo

 Bước 2. Chỉnh sửa /etc/sudoers với lệnh visudo

Bước này bạn có thể cho phép một số user chạy lệnh dưới quyền root không cần nhập mật khẩu (dùng sudo nhưng không đòi mật khẩu nữa)
sudo visudo
lệnh này để mở và chỉnh sửa tệp /etc/sudoers, chỉnh sửa xong nhấn Ctrl+X và chọn Yes

Thêm dòng bên dưới vào cuối tệp đang mở, với mysurface là user cho phép shutdown không cần password
mysurface ALL = NOPASSWD: /sbin/shutdown
Với ubuntu, mặc định các thành viên trong nhóm %admin điều yêu cầu nhập password. Tuy nhiên bạn có thể cho phép tất cả thành viên trong nhóm %admin không cần nhập password bằng cách đổi thành
%admin ALL = NOPASSWD: /sbin/shutdown
Và ngay bây giờ bạn có thể tắt máy bằng lệnh dưới không cần nhập mật khẩu gì cả.
sudo shutdown -h now
Hoặc là khởi động lại máy dùng lệnh shutdown
sudo shutdown -r now
Và bạn muốn tất cả các lệnh dưới sudo không cần nhập mật khẩu (KHÔNG ĐƯỢC KHUYẾN CÁO VÌ HỆ THỐNG CỦA BẠN SẼ KHÔNG CÒN AN TOÀN)
Trong visudo bạn tìm dòng
root ALL= (ALL) ALL
Sửa lại thành
root ALL=(ALL) NOPASSWD: ALL
Save lại và thử nghiệm chạy 1 lệnh có sudo sẽ thấy kết quả
Chí Thanh

4 nhận xét:

Hoài Nguyễn Thanh nói...

mình nghĩ rằng bài viết này chỉ dành cho những người dùng máy nhà thôi chứ còn sever thì đây là một chuyện cực kỳ nghiêm trọng

TCT nói...

cảm ơn ý kiến của bạn! mình đã có cảnh báo dưới bài viết

Tùng nói...

thank!
đang rất, rất cần cài này!

Unknown nói...

Thanks bạn nha ! Mình tìm hoài k thấy :)

Đăng nhận xét