Как установить права доступа к файлу с помощью сенсорной команды

16

Кажется, что всякий раз, когда я создаю файл с touchразрешениями, установленными на: -rw-r - r-- .

Есть ли какой-нибудь способ, которым я могу настроить разрешения с помощью touchили это нужно сделать после другой команды?

chackerian
источник

Ответы:

27

Вы можете изменить свой, umaskчтобы разрешить (для большинства реализаций) больше привилегий чтения / записи, но не исполняемых, так как обычно запрашиваемые разрешения 0666.

Если ваш umaskесть 022, вы увидитеtouch сделать 0644файл.

Интересно, что POSIX описывает это поведение в терминах creat:

  1. Если файл не существует:

    Функция creat () вызывается со следующими аргументами:

    • Файловый операнд используется в качестве аргумента пути.

    • Значение побитового включены ИЛИ из S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH, и S_IWOTHиспользуются в качестве аргумента режима.

и только путем перехода по ссылкам creat, а затем open, к упоминанию упоминания umaskи обратному отслеживанию для opencreat) проверки того, что umaskдолжно повлиять touch.

Чтобы umaskповлиять только на touchкоманду, используйте подоболочку:

(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask

(обратите внимание, что в любом случае, если файл существовал заранее, touchон не изменит свои разрешения, просто обновите его временные метки).

Томас Дики
источник
2

Вы можете манипулировать umask. Обычно это 022означает, что когда пользователь создает файл, он получает разрешение 0644, которым вы можете манипулировать в umaskсоответствии со своими потребностями.

TarunSinghal
источник