umask: създаване на нови файлове с определени права
октомври 6th, 2009
Замисляли ли сте се, че всеки път като създаваме файлове в Линукс те се създават с определени права ? Нека да пробвам:
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:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Права за достъп до файлове
октомври 6th, 2009
chmod (change mode) е доста често използвана команда за администрация. Обикновено я ползваме, за да направим даден скрипт, написан на bash, python, perl изпълним.
За да на правил файл изпълним:
chmod +x myscript.sh
По подразбиране това ще промени атрибута за всички. Файловите атрибути са 3 вида:
u ( user – собственик на файла)
g ( групата, в която е потребителя)
o ( всичко останали потребители)
a ( всички гореспоменати)
Това означава, че горната команда е подобна на тази:
chmod a+x myscript.sh
По този начин ще позволим само на собственика на файла да го изпълнява:
chmod u+x myscript.sh
Може да премахвате атрибути от файл. Да кажем, че имате права за изпълняване от всички, но искате да не е изпълним от всички други (които не са потребителя или не са от неговата група):
chmod o-x myscript.sh
Освен атрибута за изпълнение, имаме атрибути за писане и четене. За тях важи горенаписаното.
Например искам да махна атрибутите за четене и писане на всички други потребители:
chmod o-rw myscript.sh
chmod може да се изпълнява и по друг начин. Може да използваме цифри за да укажем атрибутите, вместо символи.
Цифрите, които оказват атрибутите са показани по-долу:
execute = 1 (изпълнение)
write = 2 (писане)
read = 4 (четене)
В този ред на мисли ако са включени атрибутите за четене и писане имаме 2+4 = 6, а ако са включени за изпълнение и четене имаме 1+4 = 5.
За да може собственика на файла да има rwx атрибути, но групите, на които принадлежи, и всички останали да имат само rx, може да направим това:
chmod 755 myscript.sh
Така, 7= 4+2+1 (rwx) и 5 = 4+1 (rx).

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »