Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alan Long                            2:5030/1082.72 09 May 2002  12:05:40
 To : Denis Golovtsov
 Subject : Как правильно удалить файл
 -------------------------------------------------------------------------------- 
 
 * Originally from Denis Golovtsov (2:5020/400) to All.
 
  DG> From: "Denis Golovtsov" <golden@amilen.spb.ru>
 
  DG> Как правильно реализовать следующую задачу:
  DG> есть файл на сервере, который нужно давать удалять пользователям по
  DG> средствам
  DG> Perl-скрипта через браузер.
  DG> Для того чтобы использовать для удаления unlink требуется
  DG> установить для папки права 777, то есть фактически ее открыть для
  DG> всех. Как сделать так, чтобы и права такие большие на папку не
  DG> назначать и файл можно было бы удалить?
  DG> Пробовал сделать так, но что-то не работает:
  DG> вызывать из Perl-скрипта Shell-скрипт, у которого стоит stick bit -
  DG> set user ID on execution,
  DG> хозяином этого скрипта является пользователь, у котрого есть права
  DG> на удаление того файла,
  DG> который нужно удалять.
 
 Hесколько не по теме конференции, но всетаки попытаюсь ответить оставаясь в
 топике ;-)
 
 Возможно тебя спасет не удаление файла а удаление данных из него ? Это
 достаточно просто реализуется на перле:
 open( FH, "+< $file" ) && do {
    flock( FH, EXCUSIVE );  # не помню на память константу отвечающую за
                            # монопольный доступ к файлу, см perldoc flock
    truncate( FH, 0 );
    close( FH );
 };
 В таком случае тебе понадобится только режим доступа 0666 на этот файл. Либо
 0660 в таком случае нужно сменить ему группу на ту под которой у тебя крутится
 web-server.
 
 Второе решение проблемы - ты с CGI скрипте прописываешь в какую-то DB/file флаг,
 что нужно удалить такой-то файл. Дальше по cron-у от root-а запускаешь скрипт,
 который этот флаг в file/DB анализирует и производит определенные действия.
 
 Третий путь - настроить suexec в том web сервере, под которым все это
 крутится... Hо это уже офтопик.
 
  DG> Заранее, спасибо!
 
 Заранее пожалуйста, но это скорее всего в другую эху/конференцию.
 
  DG> Денис. mailto: golden@amilen.ru
 
 -- 
 With best,
      Ъ-·    Ъ
      Е-ЧLaі\і <alan@x-rays.eu.org>
 
 --- timEd/386 1.10+
  * Origin: X - Rays Station (2:5030/1082.72)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Как правильно удалить файл   Denis Golovtsov   08 May 2002 20:31:42 
 Как правильно удалить файл   Alan Long   09 May 2002 12:05:40 
Архивное /ru.perl/4581cda273e3.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional