Разрешения новых файлов действительно зависят от umask
процесса создания, но также ограничены разрешениями, которые процесс использует для системного вызова open()
при создании файла. (то есть файлы, явно созданные с ограниченными разрешениями (, считают, что действительно личные вещи, такие как ~/.ssh/id_rsa
), никогда не получат более широкие разрешения.)
Другим способом изменения разрешений, которые будут получать новые файлы, является использование ACL POSIX, в частности ACL по умолчанию. Если у каталога есть ACL по умолчанию, он используется для новых файлов вместо umask
.
Это сделало бы все новые файлы в текущем каталоге доступными для их владельцев, группы владельца, пользователя с именем admin
и -ни для кого другого:
$ setfacl -d -m user::rwx -m user:admin:rwx -m other::-.
Добавьте -m group::-
, чтобы также удалить доступ из группы-владельца.
Разрешения, используемые при создании файла, по-прежнему применяются, но вряд ли это будет проблемой для утилиты, созданной для загрузки файлов.
Мне пришлось исправить последнюю строку скрипта шкафчика, чтобы она была:
i3lock --nofork -e -i /tmp/lock.png &
Это решило проблему.