flora222

kali和centOS在用户创建相关方面命令的差别

kali和centOS在用户创建相关方面命令的差别


问题根源


  1. useradd 是极简创建
    在 Kali 这类系统里, useradd 只会在系统数据库里创建用户条目,默认不会自动创建主目录( /home/flora1 )和邮件池。
    这就是为什么你用 userdel -r 删除时,系统会提示找不到主目录和邮件池。
  2. userdel -r 彻底删除
    你执行了 userdel -r flora1 ,这个命令会:
  • 删除用户本身
  • 删除用户的主目录(如果存在)
  • 删除用户的邮件池(如果存在)
    虽然它提示找不到主目录,但用户本身已经被删掉了,所以后续再用 su flora1 就会提示用户不存在。

正确创建用户的方式


如果你想创建一个带主目录、能正常登录的用户,应该用 adduser 而不是 useradd :

bash
adduser flora1 -g father

adduser 是一个更友好的交互式脚本,会帮你自动创建主目录、设置默认 Shell,还会提示你设置密码。

或者,如果你坚持要用 useradd ,需要加上参数来手动创建主目录:

useradd flora1 -g father -m -s /bin/bash

  • -m :自动创建用户主目录
  • -s /bin/bash :指定默认的登录 Shell

其他类似命令


在 Linux 里,很多命令都有这种“极简工具”和“友好脚本”的区别,我给你整理几个常见的:

  1. userdel vs. deluser
  • userdel :系统底层命令,功能基础。

  • 仅删除用户条目,默认不删除主目录和邮件池。

  • 要彻底删除所有相关文件,需要加上 -r 参数:
    bash
    userdel -r username

  • deluser :是 userdel 的友好封装脚本(Debian/Ubuntu/Kali 体系下才有)。

  • 默认只删除用户条目,不会动主目录。

  • 要彻底删除主目录和邮件池,需要加上 --remove-home 参数:
    bash
    deluser --remove-home username

  • 还可以用 --remove-all-files 来删除用户拥有的所有文件。

  1. groupadd vs. addgroup
  • groupadd :底层命令,仅创建用户组,不会做额外配置。
  • addgroup :友好脚本,会自动处理组 ID 分配,还能交互式创建。
    bash
    addgroup groupname
  1. groupdel vs. delgroup
  • groupdel :底层命令,直接删除组,若组里还有用户会报错。
  • delgroup :友好脚本,会先检查组是否为空,还可以用 --only-if-empty 确保安全删除。
    bash
    delgroup --only-if-empty groupname
  1. passwd vs. chpasswd
  • passwd :交互式修改密码,一次改一个用户。
    bash
    passwd username

  • chpasswd :批量修改密码,适合脚本里用,非交互式。
    bash
    echo "username:newpassword" | chpasswd

posted on 2026-01-20 22:00  Flora2  阅读(0)  评论(0)    收藏  举报

导航