Ошибка при попытке скомпилировать файл .tex с latexmk

263
arewm

Я использую macOS Sierra и у меня установлен XCode

$ defaults read /var/db/receipts/com.apple.pkg.Xcode.plist { InstallDate = "2016-09-13 19:36:06 +0000"; InstallPrefixPath = "/"; InstallProcessName = storedownloadd; PackageFileName = "Xcode.pkg"; PackageIdentifier = "com.apple.pkg.Xcode"; PackageVersion = "8.0.0.0.1.1472435881"; } 

Я пытаюсь скомпилировать файл .tex в PDF с использованием latexmk, но столкнулся с проблемой setgid.

$ latexmk -pdf ~/testFile.tex Latexmk: This is Latexmk, John Collins, 22 April 2016, version: 4.45. Insecure dependency in open while running setgid at /Library/TeX/texbin/latexmk line 2722. 

У меня установлен MacTex. Я даже попытался повторно загрузить latexmk, но проблема не была решена.

Мне пришлось переустанавливать все с нуля, когда я недавно обновил El Capitan, но раньше он работал нормально. Я в недоумении, в чем проблема может быть. Любая помощь будет оценена.

0

2 ответа на вопрос

0
grawity

setgidэто не команда - это состояние ; специальное разрешение файла вместе с «setuid» и «sticky».

«setuid», возможно, более известен: если исполняемый файл имеет установленный бит «setuid», он всегда будет автоматически иметь права пользователя, которому он принадлежит, а не пользователя, который его запускал. (Например, именно так suи sudoмогут выполнять действия только для пользователя root.)

'setgid' работает таким же образом, за исключением того, что он применяется к группе, которой принадлежит файл. В обоих случаях, однако, программа должна быть особенно осторожной, чтобы делать только то, для чего она предназначена, и избегать обмана со стороны пользователя.

Сообщение об ошибке, исходящее от perlинтерпретатора, поскольку latexmkна самом деле это скрипт на Perl, означает, что Perl заметил, что он работает с привилегиями setuid / setgid, и поэтому отказывается делать определенные вещи в качестве меры предосторожности против небрежно написанных скриптов.

Благодарю. Можно ли как-то определить, в каком файле установлен бит `setgid`? Я попытался запустить `sudo chmod gs / Library / TeX / texbin / latexmk`, но такая же ошибка происходит. arewm 7 лет назад 0
0
arewm

Как сказал @grawity, проблема заключалась в том, что для некоторых файлов, необходимых для latexmkскрипта, было установлено состояние setgid . Чтобы найти все файлы с установленным битом, я использовал команду

find / -perm -02000 -ls > search_out 

на OSX. Было много результатов, но я нашел тот, который был связан с Тексом.