Trong một tập lệnh bash nhỏ tôi đang chạy, tôi đang cố gắng tạo ra một thư mục mới được tạo. Tôi đã thêm:
sudo chown $USER:$USER /var/www/$sitename
sudo chmod 775 /var/www/$sitename
sau dòng nơi tôi mkdir ( sudo mkdir /var/www/$sitename
).
Vì một số lý do, chown không được thực thi. Tôi có thể thực hiện thủ công nhưng khi được ghi trong tệp thì nó không hoạt động. Tôi đã nhận thấy rằng "chown" không được tô sáng cùng màu với "mkdir" và "chmod" nhưng tôi không thể tìm ra vấn đề của mình.
Tại sao không làm việc ở đây?
Nó có phải là một vấn đề với $USER:$USER
?
EDIT Đây là kịch bản đầy đủ. Làm thế nào tôi có thể chỉnh sửa tập tin cho bất kỳ người dùng không phải root nào thực thi tập lệnh?
#!/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
biến được đặt trong quá trình đăng nhập tương tác. Làm thế nào để bạn chạy tập lệnh của bạn - từ phiên đăng nhập hoặc sử dụng cron hoặc từ daemon?
echo USER is $USER
, nó in ra cái gì?
USER is root
. Với bản chỉnh sửa tôi đã thực hiện, bạn có nghĩ rằng bạn có thể giải thích cách chỉnh sửa tệp cho bất kỳ người dùng không phải root nào thực thi tập lệnh không?
getent group $USER