На главную страницу

Раздел скриптов

 
 

 

 

 Добавить в избранное

  Сделать стартовой

Как правильно использовать CHMOD (разрешение на файлы).

Наверняка многим из вас приходили в голову мысли типа «Как бы сделать так, чтобы мамочка никогда не узнала про существование папки "c:\My Documents\Downloads\Porno from WWW\"?», «Как бы напрочь лишить младшего братца возможности стереть "Program Files", если тому не станет не хватать места под новую игру?» и всё в таком духе.

Действительно, компьютеры под управлением MS-DOS, Windows 95 и 98, находящиеся в общем пользовании, напоминают проходной двор. Каждый может тереть всё что хочет, создавать какие угодно файлы - всё что угодно. И вы не в силах этому помешать. Секретные файлы можно зашифровать - но и шифрованный файл кто-нибудь запросто может удалить.

С Windows NT и Unix дела обстоят по-другому. При входе в систему вы обязаны указать ваше имя и пароль - иначе система вас не пустит. С вашим именем всегда связан некоторый набор прав и запретов, за соблюдением которых система следит. Так, например, пользователю «Brother» можно запретить удаление папки "Program Files", а дорогой мамочке - просмотр той самой папки с порнушкой.

Как это всё реализовывается? Давайте расскажу на примере Windows NT, а затем только перейду к Unix, на которой, собственно, работает Webservis.ru - так будет понятнее.

В NT каждый пользователь в системе принадлежит к какой-нибудь группе. Например я имею на своём компьютере логин «Administrator» и принадлежу к группе «Admins». Все остальные члены моей семьи, пользующиеся компьютером, принадлежат к группе «Users». Они не имеют прав изменять настройки системы, удалять и устанавливать принтеры и делать другие глупости.

Создавая папку или файл (а также устанавливая принтер в систему), пользователь становится его владельцем. Некоторые права приобретает и та группа, к которой он принадлежит. Пользователь может назначитьлюбые разрешения на доступ к своему файлу или папке: запретить пользователю «Little Brother» удалять файл, а пользователю «Mamma» - просматривать его содержимое.

В Unix всё проще и грубее. Создавая файл, пользователь автоматически получает самые широкие права на делание с этим файлом чего угодно, его группа - несколько меньшие права, а все остальные - совсем ничтожные. В Unix есть только три основных права - читать файл или просматривать каталог ("Read"), изменять файл или папку, записывая в неё что-нибудь, или вообще её удалять ("Write").

Последнее право - право на запуск файла ("Execute"). Эта вещь довольно абсурдна для любого пользователя Windows 9x и MacOS. Если в Windows 9x файл имеет разрешение *.exe, его можно запустить, не встретив при этом никаких проблем. А если переименовать tupoyfajl.txt в superprogram.exe ничего не выйдет. В MacOS система проверяет файл на его четырёхбуквенную сигнатуру (расширения у файлов в MacOS не играют никакой роли - да они и не используются) - и если файл не исполнимый, то вы с этим ничего не сделаете.

В Unix же система может позволить себе попробовать запустить файл только тогда, когда это разрешено делать конкретному пользователю. По умолчанию всё практически всем запрещено - в отличие от NT, где всё наоборот. Конечно, и в NT вы можете запретить младшему братцу запускать Quake.exe если тот плохо себя ведёт - но по умолчанию доступ открыт.

Создавая простенький текст в Unix, вы получаете следующий стандартный набор разрешениий для файла ("R" обозначает "Read", "W" - "Write", а "X" - "Execute")

А что делать, если вы создали скрипт на Perl или скрипт с командами Unix - shell script (аналогичный *.bat для Windows)? Надо дать системе возможность его запускать. Также надо дать такое право членам вашей группы - но при этом лишить их возможности что-то в этом скрипте поменять. Делается это таким набором разрешений.

Вы уже начинаете терять терпение и спрашивать, на кой ляд вам все эти тонкости сдались и каким боком это касается вашего сайта. Ладно уж, мы уже подошли к самой сути.

r - 7;

w-2;

x-1;

Реклама



Hosted by uCoz