Cấu hình sudo để phân tách nhiệm vụ cho người dùng. Cấp một số đặc quyền cho 1 người dùng hoặc 1 nhóm người dùng theo ý thích.
Install Sudo
root@localhost:~# apt -y install sudo
Cấp quyền root cho tất cả người dùng
root@localhost:~# visudo # Thêm vào cuối file: user [thanhdd] có thể sử sử dụng tất cả quyền root thanhdd ALL=(ALL:ALL) ALL # Cú pháp ⇒ [user] [host=(owner)] [command] # Nhấn phím [Ctrl + x] để thoát visudo
– Kiểm tra lại với user [thanhdd]. Tắt ssh hiện tại, ssh vào server ubuntu bằng user thanhdd
thanhdd@localhost:~$ /sbin/reboot Failed to set wall message, ignoring: Interactive authentication required. Failed to reboot system via logind: Interactive authentication required. Failed to open initctl fifo: Permission denied Failed to talk to init daemon. # Từ chối một cách bình thường
thanhdd@localhost:~$ sudo /sbin/reboot [sudo] password for thanhdd: # password of [thanhdd] sau đó máy reboot bình thường
Cài đặt một số lệnh người dùng không được phép sử dụng
root@localhost:~# visudo # Thêm alias [SHUTDOWN] cho loại lệnh shutdown máy # Mô tả alias gồm những lệnh gì Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \ /sbin/poweroff, /sbin/reboot, /sbin/init, /bin/systemctl # Thêm vào cuối file (Các lệnh trong alias [SHUTDOWN] user sẽ không được phép sử dụng) thanhdd ALL=(ALL:ALL) ALL, !SHUTDOWN
– Kiểm tra lại với user [thanhdd].
thanhdd@localhost:~$ sudo /sbin/shutdown -r now
[sudo] password for thanhdd:
Sorry, user thanhdd is not allowed to execute '/sbin/shutdown -r now' as root on localhost. # Từ chối reboot máy
Phân quyền một số lệnh cho người dùng trong nhóm
– Tạo alias và cấp quyền cho nhóm người dùng
root@localhost:~# visudo # Thêm alias [USERMGR] cho loại comamnd quản lý người dùng # Mô tả alias gồm những lệnh gì Cmnd_Alias USERMGR = /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \ /usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd # Thêm vào cuối file %usermgr ALL=(ALL) USERMGR
– Tạo nhóm user [usermgr]
root@localhost:~# groupadd usermgr
– Thêm user vào nhóm [usermgr]
root@localhost:~# vi /etc/group # add a user in this group usermgr:x:1002:thanhdd
– Kiểm tra lại với user [thanhdd]
thanhdd@localhost:~$ sudo /usr/sbin/useradd testuser [sudo] password for thanhdd: thanhdd@localhost:~$ sudo /usr/bin/passwd testuser New password: Retype new password: passwd: password updated successfully
Phân quyền một số command cho người dùng cụ thể
root@localhost:~# visudo # thêm vào cuối file phân quyền cho người dùng như mong muốn fedora ALL=(ALL:ALL) /usr/sbin/visudo centos ALL=(ALL:ALL) /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \ /usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd debian ALL=(ALL:ALL) /usr/bin/vim
– Kiểm tra lại với user [fedora]
fedora@localhost:~$ sudo /usr/sbin/visudo # chạy bình thường # Sudoers cho phép người dùng cụ thể chạy nhiều lệnh khác nhau với tư cách là người dùng root mà không cần mật khẩu root..
- Kiểm tra lại với user [centos]
centos@localhost:~$ sudo adduser testuser Adding user `testuser' ... Adding new group `testuser' (1003) ... Adding new user `testuser' (1002) with group `testuser' ... Creating home directory `/home/testuser' ... Copying files from `/etc/skel' ... # chạy bình thường
– Kiểm tra lại với user [debian]
debian@dlp:~$ sudo /usr/bin/vim /root/.profile # chạy bình thường # ~/.profile: executed by Bourne-compatible login shells.$
Nhật ký sudo
– Có thể hiển thị nhật ký Sudo trên Journald (với lệnh [journalctl]) hoặc Rsyslogd (trong tệp [/var/log/auth.log]), nếu muốn giữ nhật ký Sudo riêng trong một tệp khác, hãy định cấu hình như theo sau.
root@localhost:~# visudo # thêm vào cuối file Defaults syslog=local1
root@localhost:~# vi /etc/rsyslog.d/50-default.conf # line 8 : thêm vào local1.* /var/log/sudo.log auth,authpriv.*;local1.none /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog
root@localhost:~# systemctl restart rsyslog
Tham khảo thêm
Cấu hình visudo phân quyền người dùng trong LINUX Centos 7