У невеликому скрипті 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
?
EDIT Ось повний сценарій. Як би я порушив файл тому, хто не користувач 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