User and group management in Linux allows administrators to control user access to the system and resources.
Creating a New User:
sudo useradd -m username
sudo passwd username
-m
: Creates the user's home directory.passwd
: Sets the user's password.Deleting a User:
sudo userdel -r username
-r
: Removes the user's home directory.Modifying User Information:
sudo usermod -l new_username old_username
sudo usermod -aG groupname username
-l
: Changes the username.aG
: Adds the user to an additional group.Creating a New Group:
sudo groupadd groupname
Deleting a Group:
sudo groupdel groupname
Adding a User to a Group:
sudo usermod -aG groupname username
Viewing User Groups:
groups username
/etc/passwd
: Contains basic user information.
/etc/shadow
: Stores user password information.
/etc/group
: Contains group information.
PAM is a flexible framework for managing authentication in Linux. With PAM, administrators can control how users are authenticated, granted access, and managed.
Module: .so
files that perform authentication tasks.
Configuration File: Located in /etc/pam.d/
, defining authentication rules.
PAM configuration files are located in /etc/pam.d/
. Example configuration file:
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
Explanation :
Setting Password Policies: Edit /etc/security/pwquality.conf
minlen = 12
dcredit = -1
ucredit = -1
Locking an Account After Failed Logins: Add to /etc/pam.d/common-auth
auth required pam_tally2.so deny=5 unlock_time=300
LDAP (Lightweight Directory Access Protocol) is a protocol for accessing directory information, such as user accounts, groups, and devices.
Install LDAP Packages:
sudo zypper install openldap2 nss-pam-ldapd
Configure LDAP: Edit /etc/nslcd.conf
uri ldap://ldap.example.com
base dc=example,dc=com
binddn cn=admin,dc=example,dc=com
bindpw password
Restart Service:
sudo systemctl restart nslcd
Active Directory (AD) is Microsoft's directory service. Integrating AD with Linux allows AD users to access Linux systems.
Install Samba and Winbind Packages:
sudo zypper install samba-winbind krb5-client
Configure Kerberos: Edit /etc/krb5.conf
:
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
kdc = ad.example.com
admin_server = ad.example.com
}
Join the Domain:
sudo net ads join -U Administrator
Restart Service:
sudo systemctl restart winbind
SSO allows users to access multiple systems with a single authentication.
Using Kerberos:
SSO with LDAP:
SSO with OAuth or SAML: