Linux小白加油站,日考

发布于:2025-08-09 ⋅ 阅读:(20) ⋅ 点赞:(0)

1. 如何创建一个UID1200、家目录在 /data/user1 、登录Shell/bin/zsh 的系统账户?请描述具体操作步骤。

# 创建家目录
mkdir -p /data/user1

# 创建用户
useradd -u 1200 -d /data/user1 -s /bin/zsh sysuser1

# 验证
id sysuser1
# 输出应包含: uid=1200(sysuser1) gid=1200(sysuser1) groups=1200(sysuser1)
grep sysuser1 /etc/passwd
# 输出应包含: /data/user1:/bin/zsh

2. 某用户忘记密码且被锁定,管理员需要重置密码并解除锁定状态,请说明完整操作流程。

# 解锁账户
passwd -u lockeduser

# 重置密码
echo "NewSecurePass123" | passwd --stdin lockeduser

# 验证状态
passwd -S lockeduser
# 应显示"PS" (密码已设置)

3. 现需将用户 developer 的主组改为 devteam ,并同时加入 docker git 作为附加组,写出具体实现方法。

# 修改主组
usermod -g devteam developer

# 添加附加组
usermod -aG docker,git developer

# 验证
id developer
# 输出应包含: groups=devteam,docker,git

4. 如何批量修改 /home 目录下所有用户家目录的属组,确保其所属组与用户名一致?描述关键步骤。

# 创建修复脚本
cat <<EOF > /root/fix_homedirs.sh
#!/bin/bash
for userdir in /home/*; do
    username=\$(basename "\$userdir")
    if id "\$username" &>/dev/null; then
        chown -R :"\$username" "\$userdir"
        echo "修复 \$userdir 的属组"
    fi
done
EOF

# 执行脚本
chmod +x /root/fix_homedirs.sh
/root/fix_homedirs.sh

# 验证示例
ls -ld /home/developer
# 应显示所属组为developer

5. 某组 admins 需要设置组管理员,并允许该管理员自行添加/移除组成员,如何配置?

# 设置组管理员
gpasswd -A adminuser admins

# 验证
grep admins /etc/gshadow
# 输出应包含adminuser作为组管理员

6. 如何查询系统中所有属于 sudo 组的用户列表?写出具体方法。

# 方法1:直接查询
getent group sudo | cut -d: -f4

# 方法2:详细列表
grep sudo /etc/group | awk -F: '{print $4}' | tr ',' '\n'

# 方法3:通过用户查询
getent passwd | awk -F: '{print $1}' | while read user; do 
    if groups "$user" | grep -q '\bsudo\b'; then 
        echo "$user"; 
    fi; 
done

7. 需要强制用户 john 下次登录时修改密码,并设置密码30天后过期,如何实现?

# 强制下次登录修改密码
chage -d 0 john

# 设置30天过期
chage -M 30 john

# 验证
chage -l john
# 应显示"密码必须更改"和"密码过期后保留的天数:30"

8. 如何查看当前登录用户的UIDGID及所属的所有组信息?描述操作方式。

# UID和GID
echo "UID: $UID, GID: $(id -g)"

# 所有组信息
groups
# 或详细版本
id

9. 某用户离职后,需彻底删除其账户、家目录及所有关联文件,写出安全清理流程。

# 删除用户及家目录
userdel -r departeduser

# 删除邮件假脱机
rm -f /var/spool/mail/departeduser

# 查找残留文件
find / -user departeduser 2>/dev/null | xargs rm -rf

# 验证
id departeduser
# 应显示"no such user"

10. 如何限制普通用户使用空密码登录系统?请说明配置方法及关键文件。

# 编辑PAM配置
cat <<EOF >> /etc/pam.d/system-auth
auth required pam_unix.so nullok
EOF

# 编辑SSH配置
sed -i 's/^#PermitEmptyPasswords.*/PermitEmptyPasswords no/' /etc/ssh/sshd_config

# 重启SSH服务
systemctl restart sshd

# 验证
sshd -T | grep permitemptypasswords
# 应显示"permitemptypasswords no"


网站公告

今日签到

点亮在社区的每一天
去签到