Ben çalışıyorum küçük bir bash komut dosyasında oluşturulan yeni bir dizin chown çalışıyorum. Ekledim:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
sonra mkdir ( sudo mkdir /var/www/$sitename
).
Bazı nedenlerden dolayı chown çalışmaz. Manuel olarak çalıştırabilirim, ancak dosyaya yazıldığında çalışmıyor. "Chown" un "mkdir" ve "chmod" ile aynı renkte vurgulanmadığını fark ettim ama sorunumu anlayamıyorum.
Chown neden burada çalışmıyor?
Bir sorun $USER:$USER
mu var ?
EDIT İşte tam komut dosyası. Kök olmayan kullanıcının komut dosyasını yürüttüğü dosyayı nasıl seçerim?
#!/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
değişken etkileşimli oturum açma sırasında ayarlanır. Komut dosyanızı giriş oturumundan veya cron kullanarak veya arka plan programından nasıl çalıştırıyorsunuz?
echo USER is $USER
, ne yazdırılır?
USER is root
,. Yaptığım düzenleme ile, root olmayan kullanıcının komut dosyasını yürüttüğü dosyaya nasıl chown yapılacağını açıklayabileceğinizi düşünüyor musunuz?
getent group $USER