Файловые допуски
Итак, теперь вы должны мыслить категориями «группы пользователей» и «имена пользователей». Каждый принадлежит к группе. В командной строке вы можете после подсказки (знака доллара) набрать «id» и посмотреть, к какой группе вы принадлежите. Группы используются для организации допуска пользователей к определенным вещам. Если бы их не было, то лишь один человек контролировал/имел допуск к определенным файлам. Запомните также, что Unix, определяя доступ, смотрит на UID пользователя, а не на его имя.
В файловых допусках нет ничего сложного. У каждого файла есть владелец (owner). Обычно файлом владеет тот, кто его создал — скопировав файл или даже просто отредактировав его. Запомните, что владелец файла должен быть тем, кто управляет поскольку он единствен
Ный, кто может изменить файловые допуски. Кроме того, есть еще и владелец группы — обычно это группа, в которой вы находились, когда файл был создан. Для смены группы, к которой принадлежит файл, нужно выполнить команду chgrp.
Файлы могут иметь допуски на выполнение, чтение или запись. Если у вас есть допуск на выполнение, то вы знаете, что вам достаточно набрать имя программы в командной строке, и она выполнится. Если у вас есть допуск на чтение, то вы, очевидно, можете файл читать и делать все, что связано с чтением — например, копировать или печатать его. Но если у вас нет доступа на чтение файла, то вы не сможете сделать ничего, что требует его прочтения. То же самое справедливо и для допуска на запись. Далее, все допуски делятся натри группы. Первая — допуски владельца. Он может установить себе допуски на чтение и выполнение файла, но не на запись в него. Это не позволит ему удалить такой файл. Вторая — групповые допуски. Возьмем для примера такой раздел: $ Is - l' runme
R-xrwxr-- sirhack root 10990 March 21 runme
Здесь «root» есть имя группы, в которой находится фай л. «sirhack» — владелец файла. И если у группы «root есть допуски на чтение, запись и выполнение файла, то именно это они и могут с ним делать. Скажем, на этот файл наткнулся Scythian, а он принадлежит к группе пользователей «root». Тогда он может файл читать, записывать в него и выполнять. А потом файл обнаружил datawiz, но он из группы «пользователи». В таком случае групповые допуски на него не распространяются, поэтому он не может тронуть этот файл, верно? Вроде того. Есть третья категория допусков — для «другой» группы. Это означает, что допуски в «другой» группе распространяются на всех, кроме ее владельца, и на пользователей из той же группы, к какой принадлежит файл. Взгляните на листинг раздела вверху, и вы увидите строчку допусков r-x-rwxr—. Первые три символа означают допуски для владельца (г-х). r-х переводится как «читать и выполнять разрешается, но записывать в файл нельзя». Второй набор из трех символов r-xRWXr - (тот, что заглавными буквами) есть групповые допуски, и они означают «читать, записывать и выполнять разрешается». Третий набор, r-xrwxR--, есть допуски для всех прочих. Он означает «читать можно, но больше ничего».
Листинг раздела будет выглядеть примерно так: $ Is -1
' drwxr-xr-x sirhack root 342 March 11 src Раздел помечен буквой «d» в начале строки допусков. Итак, владелец раздела (sirhack) может читать из раздела, записывать в раздел, и выполнять программы из раздела. Корневая группа и все прочие могут лишь читать из раздела и выполнять программы, находящиеся вне его. Поэтому если сделать раздел только выполняемым, то это будет выглядеть так: $ chmod go-r $ Is
Drwx--x--x sirhack root 342 March 11 src
Если теперь в раздел зайдет кто-то кроме «sirhack», то он сможет лишь выполнять находящиеся там программы. Если он запустит команду «Is» чтобы войти в раздел src, то, оказавшись внутри, увидит сообщение «cannot read directory» (не могу прочесть раздел). Если в разделе есть доступный для чтения файл, но сам раздел имеет запрет на чтение, то иногда все-таки бывает возможно этот файл прочесть.
Если у вас нет допуска на выполнение в каком-то разделе, то в большинстве случаев вы не сможете запустить ни одной программы из этого раздела.