创建用户:
useradd -m username # 创建用户并建立家目录
passwd username # 设置用户密码
修改用户属性:
usermod -aG groupname username # 将用户添加到附加组
usermod -L username # 锁定用户账户
usermod -U username # 解锁用户账户
删除用户:
userdel -r username # 删除用户及其家目录
创建组:
groupadd groupname
修改组成员:
gpasswd -a username groupname # 添加用户到组
gpasswd -d username groupname # 从组中移除用户
查看权限:
ls -l filename
修改权限:
chmod 755 filename # 数字模式
chmod u+x,g-w,o=r filename # 符号模式
修改所有者:
chown user:group filename
SUID (Set User ID):
chmod u+s /path/to/file
SGID (Set Group ID):
chmod g+s /path/to/file
Sticky Bit (用于目录):
chmod +t /path/to/directory
编辑sudoers文件:
visudo
示例配置:
username ALL=(ALL) ALL # 完全sudo权限
username ALL=(ALL) NOPASSWD: /usr/bin/apt # 特定命令无需密码
%groupname ALL=(ALL) ALL # 组权限
查看登录记录:
last
lastb # 查看失败登录尝试
lastlog # 查看用户最后登录时间
配置审计:
# 编辑/etc/ssh/sshd_config
LogLevel VERBOSE
安装auditd:
apt install auditd # Debian/Ubuntu
yum install audit # RHEL/CentOS
常用命令:
auditctl -l # 查看当前规则
auditctl -w /etc/passwd -p wa # 监控passwd文件写入和属性变更
ausearch -k keyname # 搜索审计日志
aureport # 生成审计报告
bash
apt install aide
aideinit
aide --check
# 限制登录尝试
auth required pam_tally2.so deny=5 unlock_time=1800
编辑/etc/ssh/sshd_config
:
PermitRootLogin no
PasswordAuthentication no # 使用密钥认证
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers user1 user2 # 只允许特定用户
检查SUID/SGID文件:
find / -perm /4000 -type f -exec ls -ld {} \;
find / -perm /2000 -type f -exec ls -ld {} \;
检查无主文件:
find / -nouser -o -nogroup
检查开放端口:
netstat -tulnp
ss -tulnp
检查计划任务:
crontab -l
ls -la /etc/cron*
/var/log/auth.log
(认证日志)/var/log/syslog
(系统日志)/var/log/secure
(RHEL安全日志)/var/log/audit/audit.log
(审计日志)通过以上措施,可以构建一个相对安全的Linux系统环境,并能够有效监控和审计系统活动。