【问题标题】:sudo useradd wont make home directorysudo useradd 不会创建主目录
【发布时间】:2013-12-07 18:12:45
【问题描述】:

我有一个可以运行的自动脚本,只是它永远不会创建主目录。数据是从数据库中提取的。

脚本如下:

$SQL -s -e "SELECT uid, password FROM registrations WHERE processed = 0"   \
|  while read A B; do
        sudo useradd   $A -p $B -m /home/

您可以看到-m 在那里,但它似乎忽略了它并且从不创建主目录,我不知道为什么。我一定错过了什么,但我不知道是什么

【问题讨论】:

  • 你是如何执行automatic script的?
  • 目前,通过键入 . test.sh
  • 运行脚本的用户是否有足够的权限来执行useradd?我的意思是,如果你在没有sudo 的情况下直接从控制台运行useradd ...,它可以工作吗?最后,如果您使用 sudo sudo ./test.sh 运行整个脚本,它会起作用吗?
  • 是的,目前它以 root 身份运行,并创建用户但不创建主目录
  • 当您尝试以该用户身份 su 时,此命令将创建一个主目录。即使在 /etc/passwd 中列出的主目录也可能会在您第一次尝试以该用户身份登录后创建。

标签: sql linux add home-directory


【解决方案1】:

如果您运行man useradd,您会看到-m 不需要参数。

以这种方式运行它应该可以解决问题(或者至少它只是在我的 Debian Squeeze 上运行):

useradd $A -p $B -m

在手册页中,您还可以找到其他有用的选项,例如:-d-b

【讨论】:

  • 我也尝试过:useradd $A -p $B -m 也一样
  • 如果您从控制台useradd zzz1 -p temp4you -m 运行它,它可以工作吗?如果不是,那么您一定对$A$B 的值有问题,您应该echo 整个命令以查看它实际在那里执行的内容。您也可以尝试在命令执行后立即回显结果echo $?。这将有助于调试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 2020-11-16
  • 1970-01-01
  • 2020-10-09
  • 2014-02-10
  • 2015-04-06
  • 1970-01-01
相关资源
最近更新 更多