Подтвердить что ты не робот

Запустите script в макрокоманде "Разрешить отказ"

Я новичок в mac, не знакомый с командой терминала, я помещаю файл dvtcolorconvert.rb в корневую директорию моего тома, этот ruby ​​script может конвертировать темы xcode 3 в формат тем xcode 4, который равен xxxxxxxx.dvtcolortheme.

Затем запустите script /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme на терминале, но всегда запрашивает "Permission denied".

Что случилось с этим? Кто-нибудь может помочь мне решить эту проблему? Спасибо.

4b9b3361

Ответ 1

Пожалуйста, прочитайте весь ответ, прежде чем пытаться работать с sudo

Попробуйте запустить sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

Команда sudo выполняет команды, которые следуют за ней с привилегиями "суперпользователя" или "root". Это должно позволить вам выполнить почти что угодно из командной строки. Тем не менее, НЕ ДЕЛАЙТЕ ЭТО! Если вы используете script на своем компьютере и не нуждаетесь в нем для доступа к основным компонентам вашей операционной системы (я предполагаю, что вы не поскольку вы вызываете script что-то внутри своего домашнего каталога (~/)), тогда он должен быть запущен из вашего домашнего каталога, то есть:

~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

Переместите его в ~/или подкаталог и выполните оттуда. У вас никогда не должно быть проблем с правами доступа, и там не будет риска получить или изменить что-либо важное для вашей ОС.

Если у вас все еще есть проблемы, вы можете проверить разрешения на файл, запустив ls -l в том же каталоге, что и ruby ​​script. Вы получите что-то вроде этого:

$ ls -l  
total 13  
drwxr-xr-x    4 or019268 Administ    12288 Apr 10 18:14 TestWizard  
drwxr-xr-x    4 or019268 Administ     4096 Aug 27 12:41 Wizard.Controls  
drwxr-xr-x    5 or019268 Administ     8192 Sep  5 00:03 Wizard.UI  
-rw-r--r--    1 or019268 Administ     1375 Sep  5 00:03 readme.txt

Вы заметите, что файл readme.txt говорит -rw-r--r-- слева. Это показывает разрешения для этого файла. 9 символов справа могут быть разделены на группы из 3-х символов "rwx" (чтение, запись, выполнение). Если я хочу добавить права на выполнение этого файла, я бы выполнил chmod 755 readme.txt и эта часть разрешений стала бы rwxr-xr-x. Теперь я могу выполнить этот файл, если захочу, запустив ./readme.txt (./говорит bash, чтобы искать в текущем каталоге предназначенную команду, а не искать переменную $PATH).

schluchc ссылается на man-страницу для chmod, сделайте это, запустив man chmod. Это лучший способ получить документацию по заданной команде, man <command>

Ответ 2

Вы предоставили себе права на выполнение script?

Следующая команда в качестве суперпользователя сделает это для вас:

sudo chmod 755 'filename'

Подробнее см. справочную страницу chmod.

Ответ 3

Проверьте права на свой Ruby script (возможно, не имеет разрешения на выполнение), ваш файл темы и каталог (в случае, если он не может прочитать тему или пытается создать там другие темы), а также каталог, когда вы запустите script (в случае, если он создает временные файлы в текущем каталоге, а не /tmp).

Любой из них может вызвать у вас горе.

Ответ 4

В моем случае я сделал глупую опечатку в shebang.

Итак, если кто-то еще с толстыми пальцами спотыкается по этому вопросу:

Упс: #!/usr/local/bin ruby

Я хотел написать: #!/usr/bin/env ruby

Смутная ошибка ZSH дает мне неправильный путь:

ZSH: zsh: permission denied: ./foo.rb

Bash: bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied

Ответ 5

Вы должны запустить script как "суперпользователь", просто добавьте "sudo" перед командой и введите свой пароль при появлении запроса.

Итак, попробуйте:

sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

Если это не сработает, попробуйте адаптировать разрешения:

sudo chmod 755 /dvtcolorconvert.rb
sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme