Dalam skrip bash kecil yang saya jalankan, saya mencoba mencari direktori baru yang dibuat. Aku sudah menambahkan:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
setelah baris di mana saya mkdir ( sudo mkdir /var/www/$sitename
).
Karena suatu alasan chown tidak mengeksekusi. Saya dapat menjalankannya secara manual tetapi ketika ditulis dalam file itu tidak berfungsi. Saya telah memperhatikan bahwa "chown" tidak disorot dalam warna yang sama dengan "mkdir" dan "chmod" tetapi saya tidak dapat memecahkan masalah saya.
Mengapa chown tidak berfungsi di sini?
Apakah ini masalah $USER:$USER
?
EDIT Berikut adalah skrip lengkapnya. Bagaimana cara saya meng-chown file ke pengguna non root mana saja yang menjalankan 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
variabel diatur selama login interaktif. Bagaimana Anda menjalankan skrip Anda - dari sesi login atau menggunakan cron atau dari daemon?
echo USER is $USER
, apa yang tercetak?
USER is root
,. Dengan hasil edit yang saya buat, apakah Anda pikir Anda bisa menjelaskan cara meng-chown file ke pengguna non-root mana yang menjalankan skrip?
getent group $USER