En un pequeño script bash que estoy ejecutando, estoy intentando crear un nuevo directorio que se crea. He añadido:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
después de la línea donde mkdir ( sudo mkdir /var/www/$sitename
).
Por alguna razón, el chown no se está ejecutando. Puedo ejecutarlo manualmente pero cuando está escrito en el archivo no funciona. He notado que "chown" no está resaltado en el mismo color que "mkdir" y "chmod", pero no puedo resolver mi problema.
¿Por qué Chown no funciona aquí?
¿Es un problema con $USER:$USER
?
EDITAR Aquí está el guión completo. ¿Cómo cedería el archivo a cualquier usuario no root que haya ejecutado el 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 variable se establece durante el inicio de sesión interactivo. ¿Cómo ejecuta su script: desde la sesión de inicio de sesión o usando cron o desde daemon?
echo USER is $USER
, ¿qué imprime?
USER is root
. Con la edición que hice, ¿crees que puedes explicar cómo dividir el archivo a cualquier usuario no root que ejecute el script?
getent group $USER