Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Права пользователей


Автор: DimaSiK 6.2.2007, 15:07
У меня появилась такая проблема:
На сервере утановлен Samba, который обеспечивает доступ ко определенной директории на сервере, допустим /var/www/html/name_site, доступ типа share, тоесть могу записывать и стирать что хочу. Эта директория так же является директорией в которой располагается сайт. Скрипты которые выполняются на сайте создают и удаляют определенные диретокрии и файлы. Так вот проблема в том, что если скрипт может создать директории и файлы, то при доступе через Samba к ним, удалить их не могу. Файлы и директории скриптом создаются с правами 0777. Однако в системе имеют 0755. Если допустим я могу создать директорию используя Samba, то скрипты не могут в нее ничего записать и ругаются на доступ. Просто не понимаю какие права имеет пользователь при доступе типа share. Да в Samba диретокрия /var/www/html/name_site имеет следующие параметры writable = yes, public = yes. Vk;tn чего-то не хватает???

Автор: DimaSiK 6.2.2007, 16:46
Отвечаю на свой вопрос. Для того, чтобы директории и файлы которые создаются php скриптом однозначно имели права, которые указываются в параметрах функции mkdir(), нужно перед вызовом этой функции вызвать функцию umask(0), которая сбрасывает маску. Поумолчанию маска может иметь значение 022, поэтому когда создается директория с правами 0777 - mkdir("test",0777), на самом деле устанавливаются права - 0777-022=0755, что в моем случае мешало удалать созданные объекты через Sambu.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)