Это на тестовой машине, а не на производстве. Я включил в пользовательский .bashrc следующее:
umask 000
Я перешел в систему. Когда я перехожу к созданию файла в моем домашнем каталоге, скажем, с помощью vi test.txt, файл получает разрешение rw-rw-rw.
Я также пробовал установить umask вручную:
umask a=rwx
Что я делаю не так, если мне нужен эквивалент CHMOD 0777 или 0755 для файлов и каталогов? Опять же, это тестовая ситуация, поэтому безопасность на данный момент не вызывает беспокойства.
Изменить: если подумать, это невозможно? Поскольку umask для файлов вычитается на 666, наименьшая umask равна 000, следовательно, CHMOD 666 является наибольшим значением, которое может получить файл? Нет возможности указать файлы CHMOD 755 или 777 с помощью umask?
umask
не устанавливать разрешения по умолчанию, он используется для изменения режима по умолчанию для определенных системных вызовов, например, open(2)
и mkdir(2)
.
В твоем случае, vim
создает файл в режиме 0666
, который будет дополнительно изменен umask. По умолчанию 0022 создаст файл с режимом 0644. umask не может добавлять биты, он может только маска их (отсюда и название).
Например, выполнение
$ touch testfile
$ ls -l testfile
-rw-r--r-- 1 bob bob 0 2011-06-27 16:36 testfile
но он сделал следующий системный вызов (обратите внимание на 0666 в поле mode_t)
open("testfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
Я не могу найти ссылку, но уверен, что вы не можете установить x
как разрешение по умолчанию для файла.