在一个小的bash脚本中,我正在运行,尝试创建一个新目录。我已经添加:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
我mkdir(sudo mkdir /var/www/$sitename
)所在的行之后。
由于某些原因,chown没有执行。我可以手动执行它,但是当写入文件时它不起作用。我注意到,“ chown”没有以与“ mkdir”和“ chmod”相同的颜色突出显示,但是我无法弄清楚我的问题。
为什么chown在这里不工作?
这有问题$USER:$USER
吗?
编辑 这是完整的脚本。无论非root用户执行脚本时,我如何将文件整理给谁?
#!/bin/sh
#!/bin/bash
# New Site
cd /etc/apache2/sites-available/
echo "New site name (test.my):"
read sitename
echo "<VirtualHost *:80>
ServerAdmin admin@$sitename
ServerName $sitename
ServerAlias $sitename
DocumentRoot /var/www/$sitename
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/$sitename>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>" > $sitename.conf
sudo mkdir /var/www/$sitename
sudo chown $USER:$USER /var/www/$sitename
echo USER is $USER
sudo chmod 775 /var/www/$sitename
sudo a2ensite $sitename.conf
sudo apachectl restart
echo "New site created"
$USER
交互式登录期间设置变量。您如何运行脚本-从登录会话或使用cron或从守护程序运行?
检查脚本是否可以看到USER变量。如果在脚本中添加一行
—
马克·普洛特尼克
echo USER is $USER
,则该行输出什么?
@MarkPlotnick显然,
—
BrassApparatus
USER is root
。您认为通过我所做的编辑,您可以解释如何将文件授予任何非root用户执行脚本?
@myaut我从终端手动运行它。
—
BrassApparatus
getent group $USER