Sunday, January 25, 2015

Tùy chỉnh lệnh sudo cho Ubuntu .

Giống như đa số những thành phần khác trên linux, lệnh sudo cũng có sẵn rất nhiều tùy chọn tùy chỉnh cho người dùng, ví dụ như chạy 1 lệnh mà không cần hỏi passoword, chỉ cho phép 1 người dùng nhất định chạy những lệnh nhất định, …
Lệnh sudo được điều khiển từ file /etc/sudoers trong ổ đĩa hệ thống. File này phải được chỉnh sửa bằng lệnh visudo (Lệnh để kiểm tra cú pháp để đảm bảo rằng bạn ko làm hỏng file).
Đặt quyền cho từng tài khoản
Mặc định tài khoản được tạo ra khi cài mới Ubuntu là tài khoản Administrator tức là có quyền sử dụng lệnh sudo. Sau đó từ tài khoản admin bạn có thể tạo thêm bao nhiêu tài khoản tùy ý, có thể là tài khoản Admin hoặc tài khoản User.
Bạn có thể chỉnh quyển cho từng người dùng ngay trong giao diện đồ họa trong User Account Tool. Để mở bảng điều khiển, bấm chuột vào tên tài khaonr của bạn ở góc trên bên phải màn hình, chọn User Accounts, hoặc có thể search ngay trong Dash.
Bắt sudo quên mật khẩu của bạn ngay lập tức.
Mặc định, khi bạn thực thi quyền sudo, sudo sẽ nhớ mật khẩu của bạn trong vòng 15 phút. Đấy là lý do bạn có thể thực hiện liên tiếp 1 đống lệnh ngay sau đó mà không cần nhập mật khẩu. Tuy nhiên vì một lý do nào đó người khác mượn máy bạn ngay sau đó, mật khẩu sudo vẫn tồn tại và người đó có thể “làm hại” máy bạn. Lúc đó bạn sẽ cần sudo phải quên mật khẩu ngay tức khắc khi 1 câu lệnh được thực thi và bạn sẽ cần lệnh sau:
sudo -k
Bắt sudo luôn hỏi mật khẩu
Giả sử có ai đó thường xuyên dùng máy bạn và bạn muốn sudo luôn hỏi mật khẩu mỗi khi 1 câu lệnh được thực thi, bạn có thể tắt hoàn toàn chế độ tự nhớ mật khẩu.
Chức năng này năng này nằm trong file /etc/sudoers. Chạy lệnh visudo để mở file tùy chỉnh này:
sudo visudo
Lệnh này sẽ tự động mở file /etc/sudoers bằng trình sửa text nano khá thân thiện.
Thêm dòng sau vào sau dòng Defaults
Defaults timestamp_timeout=0
Dùng tổ hợp phím ctrl+O để lưu, ctrl+X để thoát. Nano sẽ hỏi mật khảu bạn trước khi lưu.
Thay đổi thời gian hết hạn cho mật khẩu
Vẫn trong file sudoers, thêm dòng sau để thay đổi thời gian nhớ mật khẩu.
Default timestamp_timeout=5
Thay số 5 bằng thời gian bạn muốn (đơn vị phút).
Không bao giờ hỏi mật khẩu
Bạn có thể ra lệnh cho sudo không bao giờ hỏi mật khẩu nữa. Tất nhiên là bạn phải đăng nhập, tất cả các lệnh sẽ được thực thi bằng quyền root. Để làm điều này, thêm dòng sau vào file sudoers, thay username bằng tên account cua bạn.
username ALL=(ALL) NOPASSWD: ALL
Bạn cũng có thể thay dòng %sudo để tất cả các tài khoản Admin khác không yêu cầu mật khẩu nữa.
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
Chạy một số lệnh nhất đinh mà không cần dùng sudo
Bạn cũng có thể gán đặc quyền không hỏi mật khẩu cho một số lệnh nhất định thay vì gán quyền cho tất cả các tài khoản. Ví dụ dòng sau sẽ giúp lệnh apt-get và shutdown không hỏi mật khẩu, giúp bạn nhanh chóng cài ứng dụng và tắt máy. Rất hữu ích đúng không nào. Thay username bằng tên bạn muốn.
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get,/sbin/shutdown
Chỉ cho phép người dùng nhất định chạy những lệnh nhất định
Bạn có thể chặn liệt kê ra một số lệnh và không cho User thực thi lệnh đó với sudo. Ví dụ không cho user thực thi lệnh shutdown bằng quyền sudo. Tuy nhiên, User có thể lách luật bằng cách dùng lệnh cp, copy shutdown ra chỗ khác và thực thi nó mà không cần đến sudo.
Trong tình huống này, bạn có thể liệt kê một số lệnh nhất định mà 1 người chỉ có thể chạy.
standarduser ALL=/usr/bin/apt-get,/sbin/shutdown
Trong dòng configure này, người dùng với tên standarduser chỉ có thể chạy lệnh apt-get và shutdown.

Để xem một người dùng có thể thực thi những lệnh nào, sử dụng lệnh sau:
sudo -U standarduser –l
Ghi lại nhật kí sử dụng sudo (Logging)
Bạn có thể ghi lại nhật kí sử dụng sudo bằng cách thêm vào dòng sau:
Defaults logfile=/var/log/sudo
Trong đó /var/log/sudo là đường dẫn bạn muốn. Sau đó bạn có thể mở file này bằng các Text Editor bạn muốn.
Hãy nhớ rằng, nếu bạn không phân quyền sudo cho các User cẩn thận. Họ có thể sửa hoặc xóa nội dung tệp tin. Tính năng logging sẽ rất hữu ích khi bạn sử dụng chung máy tính với nhiều người.
Hãy chia sẻ các thủ thuật với GeekLinux trên fanpage facebook tại địa chỉ facebook.com/geeklinux.net

No comments:

Post a Comment