Cài đặt ban đầu Ubuntu 22.04: Cấu hình sudo

bởi | LPI, Ubuntu

Home » LPI » Ubuntu » Cài đặt ban đầu Ubuntu 22.04: Cấu hình sudo

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

Cài đặt ban đầu Ubuntu 22.04: Cấu hình sudo

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 nhóm người dùng bằng sudo

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

Phân quyền người dùng bằng sudo
– 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

nhật ký sudo

Tham khảo thêm

Cấu hình visudo phân quyền người dùng trong LINUX Centos 7

Cài đặt ban đầu Ubuntu 22.04: Enable root user

Cài đặt ban đầu Ubuntu 22.04 – Add User