【问题标题】:Home directory shell主目录外壳
【发布时间】:2019-12-24 09:45:59
【问题描述】:

我正在编写下面的脚本,为特定用户创建主目录,并且也需要提供所有权。

下面指定的名为 userid 的变量在主目录创建后是否有效?运行此脚本时出现 gettig 错误,但创建了主目录但未创建 chown

#!/bin/bash
#################### How to Check folder already exits or not #####################################################
read -p "Enter user id: " userid
if [ -d /tmp/$userid ]; then
echo -e "\e[31mFOLDER ALREADY EXISTS\e[0m"
else
mkdir /tmp/$userid
chown -R $userid:root $userid
fi

【问题讨论】:

  • 您尝试在 $userid 上运行 chown 而不是在 /tmp/$userid 上运行。
  • 输入用户 ID:用户 chown:无效用户:'/tmp/user:root' [root@lab Bash-Scripting]#

标签: bash shell


【解决方案1】:

您需要将$useridsecond 实例替换为目录名称。所以替换:

chown -R $userid:root $userid

与:

chown -R $userid:root /tmp/$userid

【讨论】:

  • #!/bin/bash read -p "Enter user id: " userid if [ -d /tmp/$userid ];然后 echo -e "\e[31mFOLDER ALREADY EXISTS\e[0m" else mkdir /tmp/$userid chown -R $userid:root /tmp/$userid fi 仍然得到无效的用户 ID :(
  • 您提供给脚本的$userid是否存在于系统中?
  • 为了让chown 正确地将用户标识和组标识分配给文件,用户必须已经存在于系统中。您可以通过运行id -u someusername 来检查用户是否已经存在,它会告诉您是否没有这样的用户。如果没有,请使用useradd 命令创建一个。
  • 谢谢迈克尔,没有创建用户 ID。
猜你喜欢
  • 2020-01-03
  • 2012-02-28
  • 2010-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多