In un piccolo script bash che sto eseguendo, sto tentando di creare una nuova directory creata. Ho aggiunto:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
dopo la linea in cui mkdir ( sudo mkdir /var/www/$sitename
).
Per qualche motivo il chown non sta eseguendo. Posso eseguirlo manualmente ma quando scritto nel file non funziona. Ho notato che "chown" non è evidenziato nello stesso colore di "mkdir" e "chmod" ma non riesco a capire il mio problema.
Perché il chown non funziona qui?
È un problema con $USER:$USER
?
EDIT Ecco lo script completo. Come chown il file a qualsiasi utente non root eseguisse lo script?
#!/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
la variabile viene impostata durante l'accesso interattivo. Come si esegue lo script - dalla sessione di accesso o utilizzando cron o dal demone?
echo USER is $USER
, cosa stampa?
USER is root
. Con la modifica che ho apportato pensi di poter spiegare come chown il file a qualunque utente non root esegua lo script?
getent group $USER