3

Я продолжаю создавать сценарии Perl для практики в каталоге linux, используя vi <filename> и мне нужно выполнить chmod 751 <filename> прежде чем я смогу запустить его так, как мне хочется. Я уверен, что есть простой способ по умолчанию мои разрешения или настроить их при создании, но я не знаком с этим - ayuda me por favour.

2 ответа2

2

Простым решением было бы создать псевдоним bash для vi который сначала создаст файл, а затем изменит его разрешения, прежде чем открывать его. Используйте что-то легко запоминающееся, например, vix (x для исполняемого бита):

например (не проверено):

function vix {
        touch $1
        chmod 751 $1
        vi $1
}

Обратите внимание, что псевдоним vi сам по себе является плохой идеей, так как многие другие программы обращаются к нему напрямую, что может вызвать проблемы в вашей системе.

1

751 не имеет особого смысла для сценариев - он позволяет "другим" выполнять файл, но не читать его. (Для сценариев, которые не соблюдаются в setuid , это невозможно.)

Чтобы установить разрешения по умолчанию для вновь создаваемых файлов, вы можете использовать umask (для каждого процесса) или ACL по умолчанию (для каждого каталога). Но они оба могут удалять только биты прав доступа; ни один из них не добавит "исполняемый" бит автоматически, если только программа специально не запрашивает его. (Например, fopen() всегда запрашивает 0666, вменяемое значение по умолчанию для файлов.)

Вы должны будете следовать предложению mjb написать скрипт, который создает файл и немедленно обновляет его разрешения. В качестве альтернативы, запустите свои тренировочные сценарии, такие как perl foo.pl , для которых не требуется исполняемый бит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .