একটি ছোট বাশ স্ক্রিপ্টে আমি চলছে আমি তৈরি হওয়া একটি নতুন ডিরেক্টরি ছড়িয়ে দেওয়ার চেষ্টা করছি। আমি যোগ করেছি:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
লাইন পরে আমি যেখানে mkdir ( sudo mkdir /var/www/$sitename
)।
কিছু কারণে শাবক কার্যকর হচ্ছে না। আমি এটি ম্যানুয়ালি কার্যকর করতে পারি তবে ফাইলে যখন লেখা থাকে এটি কাজ করে না। আমি লক্ষ্য করেছি যে "ছাউনী" "এমকেডির" এবং "ছোমড" এর একই রঙে হাইলাইট করা হয়নি তবে আমি আমার সমস্যাটি বুঝতে পারি না।
কেন এখানে কাজ বন্ধ না?
এটা কোন সমস্যা আছে $USER:$USER
?
সম্পাদনা এখানে সম্পূর্ণ স্ক্রিপ্ট। যে কোনও নন-রুট ব্যবহারকারী স্ক্রিপ্টটি সম্পাদন করলেন আমি কীভাবে ফাইলটিকে ছুঁড়ে দেব?
#!/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
ইন্টারেক্টিভ লগইন চলাকালীন পরিবর্তনশীল সেট করা হয়। আপনি কীভাবে আপনার স্ক্রিপ্টটি চালাবেন - লগইন সেশন থেকে বা ক্রোন ব্যবহার করে বা ডেমন থেকে?
echo USER is $USER
এটি কী মুদ্রণ করে?
USER is root
,। আমি যে সম্পাদনা করেছি তা দিয়ে আপনি কি মনে করেন যে কীভাবে ফাইলটি মুখ্য করবেন যার মূলটি নিরঙ্কুশর ব্যবহারকারী স্ক্রিপ্টটি কার্যকর করেন?
getent group $USER