Я отримую 700, коли я роблю тестовий файл, але umask є 0002? Чому це не 664?


1

Де зберігаються значення за замовчуванням 666 і 777 для файлів і каталогів відповідно?

umask 0002
touch dummy 
ls -l 

Скажіть мені, що дозволи манекена 700 на відміну від очікуваного 644. Будь-які ідеї?


Це не здається, що umask робить що-небудь. Навіть після встановлення umask до 100, а потім створення тимчасового файлу, я все ще отримую 700 як мої дозволи.

5
Яка це файлова система? Якщо це файлова система FAT / vFAT, яка не розуміє повний набір дозволів, то фактичні результати, які ви отримаєте, будуть залежати більше від параметрів монтування, ніж від umask.

1
FWIW, mktemp, реальний Команда "зробити тимчасовий файл" надасть права власника.
Daniel Beck

Відповіді:


5

[max @ localhost ~] $ umask

Це відображатиметься за замовчуванням umask

0002

В /etc/bashrc файли за замовчуванням зберігаються

 16 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 17     umask 002
 18 else
 19     umask 022
 20 fi

За замовчуванням umask для звичайного користувача 002

За замовчуванням umask для користувача root 022

Для каталогів базовими правами доступу є 0777, а для файлів 0666

Це означає, що якщо ви встановите значення umask на 002, ви віднімаєте umask з базових дозволів

Для каталогів

777-002 = 775

Для файлів

666-002 = 664

[max @ localhost ~] $ mkdir file1

[max @ localhost ~] $ ls -ld file1

drwxrwxr-x 2 max max 4096 25 вересня 15:37 file1 ------ & gt; 775

[max @ localhost ~] $ touch file2

[max @ localhost ~] $ ls -l file2

-rw-rw-r-- 1 max max 0 Sep 25 15:40 file2 ------- & gt; 664

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.