Назад | Перейти на главную страницу

umask в Ubuntu Server 10

Это на тестовой машине, а не на производстве. Я включил в пользовательский .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 как разрешение по умолчанию для файла.