Все, что необходимо сделать, установить virtualbox-guest-utils
с pacman
. Не делайте ничего больше. Даже не пытайтесь установить Гостя Virtualbox Utils из меню Virtualbox и не смонтировать ISO, тот метод работы со многими дистрибутивами, но не с ArchLinux.
Когда Вы сделали то, что сказано относительно моего первого предложения, сделайте то, что сказано относительно записи Wiki.
Дуга не имеет выпусков, она прокручивает выпуск, таким образом, неправильно сказать "с последним Archlinux". И возраст носителя установки ни на что не влияет, он просто предоставляет программы, которые применимы, в то время как установка, таким образом, не имеет значения при установке дуги с носителем установки с 2010. Вы добираетесь, те же версии программ установили Вашу заключительную установку дуги.
Если по каким-либо причинам $USER
не установлен, вы можете использовать команду id
для получения идентификационной информации о реальном пользователе. Таким образом, при первом использовании переменной $USER
можно использовать расширение оболочки для получения значения по умолчанию. Измените строку chown
в вашем скрипте на:
sudo chown ${USER:=$(/usr/bin/id -run)}:$USER /var/www/$sitename
Если USER
пустая или неустановленная при выполнении, bash установит переменную USER
на выход /usr/bin/id -run
Для того, чтобы упростить проблему, и поскольку вы получаете переменную sitename, почему бы вам не прочитать переменную имени пользователя?
С этим вы бы удостоверились, что выполнение сценария не зависит от переменных окружения, сделанных доступными так, как выполняется сценарий.
Я думаю, что здесь крошечная ошибка. sudo открывает новую оболочку для выполнения команды, и после sudo пользователь становится root. Так что, возможно, вам следует использовать что-то вроде этого:
MYUSER=$USER
sudo chown $MYUSER:$MYUSER
как я думаю, MYUSER не перезаписывается системно и будет работать.
Когда я вызываю свой скрипт с sudo
, он устанавливает $ USER
как root.
$ sudo ./myscript.sh
Я попробовал chown $ {USER: = $ (/ usr / bin / id -run)}: $ USER / var / www / $ sitename
, но он все равно вернул root.
Я обнаружил, что если я использовал who
с awk
, я смог бы получить текущего пользователя, который вызвал сценарий с sudo
.
currentuser=$(who | awk '{print $1}')}
chown -R $currentuser:$currentuser /var/www/$sitename`