umask: създаване на нови файлове с определени права
Замисляли ли сте се, че всеки път като създаваме файлове в Линукс те се създават с определени права ? Нека да пробвам:
Lets see this:
touch testing ls -l testing
-rw-r--r-- 1 test test 0 2008-03-08 01:14 testing
Файла не би трбвало да се създаде с права за изпълнение, както виждаме изхода от ls. Нека да дадем права за изпълненеи на файла.
chmod +x testing ls -l testing
-rwxr-xr-x 1 test test 0 2008-03-08 01:16 testing
Както виждате в момента режима е 755(повече информация за правата върху файловете тук).
За да конторлираме как се създават новите файлове, може да използваме umask. Може да се каже, че umask е обратното на атрибитите на файла. Нека да кажем, че искате файловете да се създават винаги с 774 (-rwxrwxr–) атрибути, вашата umask ще е 003. Как разбрахме? 777 – 774 = 003.
За да проверим сегашната umask, който е в сила, просто напишете:
umask 0022
Първата стойност отпред 0 указва, че това това е осмична(в осмична бройна система) стойност, затова нашите атрибути по подразбиране за създаване на файлове са 755, но понеже атрибута за изпълнение не се слага по подразбиране стават 644, когато създаваме нови файлове.
Нека да сменим на 0003, което означава, чес искаме атрибутите да са 774 (rwxrwxr–).
umask 0003 touch testing2 ls -l testing2
-rw-rw-r-- 1 test test 0 2008-03-08 01:27 testing2
Атрибутите са 664, и като добавим правата за изпълнение получаваме:
chmod +x testing2 ls -l testing2
-rwxrwxr-- 1 test test 0 2008-03-08 01:27 testing2
Сега имаме 774, въпреки чеchmod +x , не добава права за изпълнение на всички други потребители. Това се дължи на umask, който ползваме. Разбирасе винаги може да го направите изпълним така с chmod o+x.
За какво да го използваме ?
Нампример нека да предположим, че имате потребител, чиито файлове трябва да могат да се четат от групата, на която той принадлежи, но файловете му да не могат да се променят или да се изпълняват. Освен това не позволяваме на всички други да му четат файловете. Това може да го постигнем с umask като въведем umask 0037 в неговия ~/.bashrc

Possibly Related Posts:
- Оптимизиране на Firefox с tmpfs
- Системни статистики с vmstat
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
