从shell脚本中获取奇怪的结果

时间:2015-02-03 06:37:35

标签: bash shell chown

以下脚本是我尝试在运行nginx的服务器上自动创建部分网站的开始。我打算增加更多,但我不是bash专家所以我正在努力学习。问题出在第26行,它应该将htdocs文件夹称为 user (在命令行上调用的域名的第一部分)和 group = www-data。这一切都有效,但用户总是最终成为“域名” - 不是域名本身,而是“域名”。这个变量在脚本的其余部分都很好用,我可以在最后回复它,并且它也是正确的。我一定错过了一些简单的东西,但这让我疯狂。有人对此有所了解吗?仅供参考,在命令行mk_home.sh example.com之后,使用完整域调用脚本。感谢。

更新:在其他服务器上尝试时,此行为未重复。我还不确定最初是什么导致它。

#!/bin/bash

# Script mk_home.sh to create user, home and set permissions for hosting.

line=$1
MAIN=${line%.*}
EXT=${line#*.}

# create random password
PASSWD="$(openssl rand -base64 12)"
echo $MAIN
echo $PASSWD

# start creation of home
mkdir /srv/www/$1
chmod go-w /srv/www/$1
mkdir /srv/www/$1/htdocs

# quietly add a user without password
adduser --quiet --disabled-password -shell /bin/nologin --gecos "$1" $MAIN

# set password
echo "$MAIN:$PASSWD" | chpasswd

# finish permissions on home
chown $MAIN:www-data /srv/www/$1/htdocs
chmod ug+rwX /srv/www/$1/htdocs

# add default home to user
usermod -d /srv/www/$1/htdocs $MAIN

0 个答案:

没有答案