Ubuntu 22.04 LTS: Manage Sudo

ubuntu22-04

Initial Settings

This section explain how to install and configure Sudo to separate users' duty if some people share privileges.

Step [1] Install Sudo.


root@bizantum:~# apt -y install sudo

Step [2] Grant root privilege to a user all.


root@bizantum:~# visudo
# add to the end: user [ubuntu] can use all root privilege
ubuntu    ALL=(ALL:ALL) ALL

# how to write ⇒ [user] [host=(owner)] [command]
# push [Ctrl + x] key to quit visudo
# verify with user [ubuntu]
ubuntu@bizantum:~$ /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.
# denied normally
ubuntu@bizantum:~$ sudo /sbin/reboot
[sudo] password for ubuntu:                # password of [ubuntu]

Session terminated, terminating shell...   # run normally

Step [3] In addition to the setting of Step [2], add settings that some commands are not allowed.


root@bizantum:~# visudo
# add alias for the kind of shutdown commands
# Cmnd alias specification

Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \
/sbin/poweroff, /sbin/reboot, /sbin/init, /bin/systemctl 

# add (commands in alias [SHUTDOWN] are not allowed)
ubuntu    ALL=(ALL:ALL) ALL, !SHUTDOWN

# verify with user [ubuntu]
ubuntu@bizantum:~$ sudo /sbin/shutdown -r now
[sudo] password for ubuntu:

Sorry, user ubuntu is not allowed to execute '/sbin/shutdown -r now' as root on ubuntu.
# denied normally

Step [4] Grant privilege of some commands to users in a group.


root@bizantum:~# visudo
# add alias for the kind of user management comamnds
# Cmnd alias specification
Cmnd_Alias USERMGR = /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \
/usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd 

# add to the end
%usermgr ALL=(ALL) USERMGR
root@bizantum:~# groupadd usermgr
root@bizantum:~# vi /etc/group
# add a user in this group
usermgr:x:1002:ubuntu
# verify with user [ubuntu]
ubuntu@bizantum:~$ sudo /usr/sbin/useradd testuser
ubuntu@bizantum:~$     # run normally
ubuntu@bizantum:~$ sudo /usr/bin/passwd testuser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Step [5] Grant privilege of some commands to a user.


root@bizantum:~# visudo
# add to the end for each user setting
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

# verify with user [fedora]
fedora@bizantum:~$ sudo /usr/sbin/visudo
# run normally
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
# verify with user [centos]
centos@bizantum:~$ sudo /usr/sbin/userdel -r testuser
centos@bizantum:~$     # run normally
# verify with user [debian]
debian@bizantum:~$ sudo /usr/bin/vim /root/.profile
# run normally
# ~/.profile: executed by Bourne-compatible login shells.

Step [6] It's possible to display Sudo logs on Journald ( with [journalctl] command ) or Rsyslogd ( in [/var/log/auth.log] file ), however, if you'd like to keep only Sudo logs in another file, Configure like follows.


root@bizantum:~# visudo
# add to the end
Defaults syslog=local1
root@bizantum:~# vi /etc/rsyslog.d/50-default.conf
# line 8 : add
local1.*                        /var/log/sudo.log
auth,authpriv.*;local1.none     /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog

root@bizantum:~# systemctl restart rsyslog

Comments

Popular posts from this blog

Debian 12 Bookworm: Install Kubeadm
Introduction In this article, we will explore the what, who, where, when, why, and how of Kubeadm functionality on the Debian 12 Bookworm platform, so let's get started.
Fedora 40 : Mail Server
Introduction This guide covers the installation and configuration of a mail server on Fedora 40. It will help you understand the what, who, where, when, why, and how of setting up a mail server.
Cyber Security: NIST Overview
Overview The National Institute of Standards and Technology (NIST) is a pivotal entity in the United States that plays a crucial role in advancing measurement science, standards, and technology. Understanding NIST’s functions, importance, and impact is vital for various industries and sectors.
Cyber Security: ISO 27001 Overview
Introduction ISO 27001 is an international standard for information security management systems (ISMS). It provides a framework for managing sensitive company information to ensure it remains secure. Understanding ISO 27001 is crucial for organizations aiming to protect their information assets.
AlmaLinux 9: How to Install
Introduction AlmaLinux 9 Server is a free and open-source Linux distribution that provides a stable and secure platform for server environments. It's a popular choice for both enterprise and personal use due to its reliability and robust features. This guide will walk you through the steps to install AlmaLinux 9 Server on your system.
AlmaLinux 9: Overview
Introduction AlmaLinux 9 is a robust, open-source enterprise operating system that serves as a community-driven alternative to CentOS. Designed to deliver stability, performance, and long-term support, AlmaLinux is an excellent choice for servers in diverse environments, from small businesses to large enterprises.