В небольшом скрипте bash, который я запускаю, я пытаюсь создать новый каталог, который создается. Я добавил:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
после строки, где я mkdir ( sudo mkdir /var/www/$sitename
).
По некоторым причинам чоун не выполняется. Я могу выполнить его вручную, но при записи в файл это не работает. Я заметил, что «chown» не выделен тем же цветом, что и «mkdir» и «chmod», но я не могу понять свою проблему.
Почему здесь не работает работа?
Это проблема с $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 или из демона?
echo USER is $USER
, что она печатает?
USER is root
. Как вы думаете, с помощью редактирования, которое вы сделали, вы можете объяснить, как создать файл, чтобы тот, кто не является пользователем root, выполнял сценарий?
getent group $USER