ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] suid/sgid programs and temporary files
@ 2005-08-16 19:31 Alexey Tourbin
  2005-08-16 19:56 ` Dmitry V. Levin
  0 siblings, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 19:31 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]

В /usr/lib/perl5/File/Temp.pm есть функция проверки временного каталога,
в котором будут созданы временные файлы.

   649  # internal routine to check to see if the directory is safe
   650  # First checks to see if the directory is not owned by the
   651  # current user or root. Then checks to see if anyone else
   652  # can write to the directory and if so, checks to see if
   653  # it has the sticky bit set
...
   668  sub _is_safe {
   669
   670    my $path = shift;
   671    my $err_ref = shift;
   672
   673    # Stat path
   674    my @info = stat($path);
   675    unless (scalar(@info)) {
   676      $$err_ref = "stat(path) returned no values";
   677      return 0;
   678    };
   679    return 1 if $^O eq 'VMS';  # owner delete control at file level
   680
   681    # Check to see whether owner is neither superuser (or a system uid) nor me
   682    # Use the real uid from the $< variable
   683    # UID is in [4]
   684    if ($info[4] > File::Temp->top_system_uid() && $info[4] != $<) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   685
   686      Carp::cluck(sprintf "uid=$info[4] topuid=%s \$<=$< path='$path'",
   687                  File::Temp->top_system_uid());
   688
   689      $$err_ref = "Directory owned neither by root nor the current user"
   690        if ref($err_ref);
   691      return 0;
   692    }
...

Условия подчеркнутой проверки можно перевести примерно как
	st.st_uid > 10 && st.st_uid != getuid()

Вопрос: хорошо ли, что здесь используется real uid?  Не лучше ли
проверять effective uid? 

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [devel] suid/sgid programs and temporary files
  2005-08-16 19:31 [devel] suid/sgid programs and temporary files Alexey Tourbin
@ 2005-08-16 19:56 ` Dmitry V. Levin
  2005-08-16 21:42   ` [devel] " Alexey Tourbin
  0 siblings, 1 reply; 18+ messages in thread
From: Dmitry V. Levin @ 2005-08-16 19:56 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 942 bytes --]

On Tue, Aug 16, 2005 at 11:31:36PM +0400, Alexey Tourbin wrote:
> В /usr/lib/perl5/File/Temp.pm есть функция проверки временного каталога,
> в котором будут созданы временные файлы.
> 
>    649  # internal routine to check to see if the directory is safe
>    650  # First checks to see if the directory is not owned by the
>    651  # current user or root. Then checks to see if anyone else
>    652  # can write to the directory and if so, checks to see if
>    653  # it has the sticky bit set
[...]
> Условия подчеркнутой проверки можно перевести примерно как
> 	st.st_uid > 10 && st.st_uid != getuid()
> 
> Вопрос: хорошо ли, что здесь используется real uid?  Не лучше ли
> проверять effective uid? 

Это зависит от семантики модуля.
Другими словами, для чего он предназначен.
При той информации, что содержится в комментарии, у меня складывается
ощущение, что проверять effective uid было бы логичнее.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 19:56 ` Dmitry V. Levin
@ 2005-08-16 21:42   ` Alexey Tourbin
  2005-08-16 22:06     ` Dmitry V. Levin
  0 siblings, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 21:42 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1429 bytes --]

On Tue, Aug 16, 2005 at 11:56:29PM +0400, Dmitry V. Levin wrote:
> > Условия подчеркнутой проверки можно перевести примерно как
> > 	st.st_uid > 10 && st.st_uid != getuid()
> > 
> > Вопрос: хорошо ли, что здесь используется real uid?  Не лучше ли
> > проверять effective uid? 
> 
> Это зависит от семантики модуля.
> Другими словами, для чего он предназначен.

Модуль предназначен для безопасного создания временных файлов.
Семантика, грубо говоря, такая же, как у mktemp(1).

Когда при помощи `mktemp -t prog.XXXXXX` создается временный файл, я не
знаю, проверяет ли mktemp *каталог*, в котором будет создан временный
файл.  Если каталог принадлежит не руту (st_uid > 10) и не нам, то
"кто-то" (потенциальный злоумышленник) может попросту подменить
временный файл (старый удалить, а вместо него сделать новый).
Возможность подмены сохраняется, если каталог доступен по записи
кому-нибудь ещё (и не защищен sticky bit'ом).

> При той информации, что содержится в комментарии, у меня складывается
> ощущение, что проверять effective uid было бы логичнее.

Это особенно актуально для suid'ных скриптов.  Если Василий запускает
suid скрипт, который создаёт временный файл в ~/tmp (каталог считается
безопасным, потому что getuid() == Василий), то временный файл можно
будет подменить.  С другой стороны, если бы выполнялась проверка
geteuid() == Василий, то каталог ~/tmp уже не считался бы безопасным.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [devel] Re: suid/sgid programs and temporary files
  2005-08-16 21:42   ` [devel] " Alexey Tourbin
@ 2005-08-16 22:06     ` Dmitry V. Levin
  2005-08-16 22:34       ` Alexey Tourbin
  2005-08-16 22:44       ` [devel] " Alexey Tourbin
  0 siblings, 2 replies; 18+ messages in thread
From: Dmitry V. Levin @ 2005-08-16 22:06 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2012 bytes --]

On Wed, Aug 17, 2005 at 01:42:56AM +0400, Alexey Tourbin wrote:
> On Tue, Aug 16, 2005 at 11:56:29PM +0400, Dmitry V. Levin wrote:
> > > Условия подчеркнутой проверки можно перевести примерно как
> > > 	st.st_uid > 10 && st.st_uid != getuid()
> > > 
> > > Вопрос: хорошо ли, что здесь используется real uid?  Не лучше ли
> > > проверять effective uid? 
> > 
> > Это зависит от семантики модуля.
> > Другими словами, для чего он предназначен.
> 
> Модуль предназначен для безопасного создания временных файлов.
> Семантика, грубо говоря, такая же, как у mktemp(1).
> 
> Когда при помощи `mktemp -t prog.XXXXXX` создается временный файл, я не
> знаю, проверяет ли mktemp *каталог*, в котором будет создан временный
> файл.  Если каталог принадлежит не руту (st_uid > 10) и не нам, то
> "кто-то" (потенциальный злоумышленник) может попросту подменить
> временный файл (старый удалить, а вместо него сделать новый).
> Возможность подмены сохраняется, если каталог доступен по записи
> кому-нибудь ещё (и не защищен sticky bit'ом).

mktemp не проверяет $TMPDIR на безопасность.
Между прочим, передача временного файла по имени небезопасна сама по себе,
эта тема обсуждалась год-два-три назад в списках рассылки типа bugtraq.
Выход - использовать mkstemp(3), который возвращает открытый дескриптор;
в этом случае файл может находится где угодно, и проблема может возникнуть
только с его удалением.

> > При той информации, что содержится в комментарии, у меня складывается
> > ощущение, что проверять effective uid было бы логичнее.
> 
> Это особенно актуально для suid'ных скриптов.  Если Василий запускает
> suid скрипт, который создаёт временный файл в ~/tmp (каталог считается
> безопасным, потому что getuid() == Василий), то временный файл можно
> будет подменить.  С другой стороны, если бы выполнялась проверка
> geteuid() == Василий, то каталог ~/tmp уже не считался бы безопасным.

Это усиливает точку зрения, согласно которой нужно использовать geteuid.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:06     ` Dmitry V. Levin
@ 2005-08-16 22:34       ` Alexey Tourbin
  2005-08-16 22:50         ` Dmitry V. Levin
  2005-08-17  7:14         ` [devel] [wiki] " Michael Shigorin
  2005-08-16 22:44       ` [devel] " Alexey Tourbin
  1 sibling, 2 replies; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 22:34 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 425 bytes --]

On Wed, Aug 17, 2005 at 02:06:33AM +0400, Dmitry V. Levin wrote:
> Между прочим, передача временного файла по имени небезопасна сама по себе,
> эта тема обсуждалась год-два-три назад в списках рассылки типа bugtraq.

Можно в двух словах, почему небезопасно передовать временный файл по
имени?  Ведь если потенциальный злоумышленник не может ни читать/писать,
ни удалить временный файл, то в чем страдает безопасность?

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:06     ` Dmitry V. Levin
  2005-08-16 22:34       ` Alexey Tourbin
@ 2005-08-16 22:44       ` Alexey Tourbin
  2005-08-16 22:55         ` Dmitry V. Levin
  1 sibling, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 22:44 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 319 bytes --]

On Wed, Aug 17, 2005 at 02:06:33AM +0400, Dmitry V. Levin wrote:
> Выход - использовать mkstemp(3), который возвращает открытый дескриптор;
> в этом случае файл может находится где угодно, и проблема может возникнуть
> только с его удалением.

Есть ещё tmpfile(3) из stdio.  Надеюсь, он использует mkstemp(3). :)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:34       ` Alexey Tourbin
@ 2005-08-16 22:50         ` Dmitry V. Levin
  2005-08-16 23:33           ` Alexey Tourbin
  2005-08-17  7:14         ` [devel] [wiki] " Michael Shigorin
  1 sibling, 1 reply; 18+ messages in thread
From: Dmitry V. Levin @ 2005-08-16 22:50 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1076 bytes --]

On Wed, Aug 17, 2005 at 02:34:21AM +0400, Alexey Tourbin wrote:
> On Wed, Aug 17, 2005 at 02:06:33AM +0400, Dmitry V. Levin wrote:
> > Между прочим, передача временного файла по имени небезопасна сама по себе,
> > эта тема обсуждалась год-два-три назад в списках рассылки типа bugtraq.
> 
> Можно в двух словах, почему небезопасно передовать временный файл по
> имени?  Ведь если потенциальный злоумышленник не может ни читать/писать,
> ни удалить временный файл, то в чем страдает безопасность?

Это разновидность TOCTOU: с момента проверки до момента использования
ситуация может измениться.  Например, временный файл, созданный в /tmp,
может быть удалён, если он не используется, каким-нибудь stmpclean'ом.
Даже права на каталог могут измениться с момента последней проверки.
Если представить себе, что привилегированная программа получила SIGSTOP и
отправилась отдыхать на недельку-другую, то окно становится вполне
пригодным для атаки.

Разумеется, $TMPDIR, созданный pam_mktemp'ом, гораздо безопасней, но в
общем случае всё очень зыбко.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:44       ` [devel] " Alexey Tourbin
@ 2005-08-16 22:55         ` Dmitry V. Levin
  2005-08-16 23:20           ` Alexey Tourbin
  2005-08-17  3:02           ` Andrey Rahmatullin
  0 siblings, 2 replies; 18+ messages in thread
From: Dmitry V. Levin @ 2005-08-16 22:55 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 580 bytes --]

On Wed, Aug 17, 2005 at 02:44:28AM +0400, Alexey Tourbin wrote:
> On Wed, Aug 17, 2005 at 02:06:33AM +0400, Dmitry V. Levin wrote:
> > Выход - использовать mkstemp(3), который возвращает открытый дескриптор;
> > в этом случае файл может находится где угодно, и проблема может возникнуть
> > только с его удалением.
> 
> Есть ещё tmpfile(3) из stdio.  Надеюсь, он использует mkstemp(3). :)

Да, tmpfile(3) удаляет созданный файл сразу, и возвращает дескриптор на
файл, имени которому уже нет.  Если кто-то не переименовал его между
open(2) и unlink(2). :)


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:55         ` Dmitry V. Levin
@ 2005-08-16 23:20           ` Alexey Tourbin
  2005-08-16 23:30             ` Alexey Tourbin
  2005-08-17  3:02           ` Andrey Rahmatullin
  1 sibling, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 23:20 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 477 bytes --]

On Wed, Aug 17, 2005 at 02:55:07AM +0400, Dmitry V. Levin wrote:
> > Есть ещё tmpfile(3) из stdio.  Надеюсь, он использует mkstemp(3). :)
> Да, tmpfile(3) удаляет созданный файл сразу, и возвращает дескриптор на
> файл, имени которому уже нет.  Если кто-то не переименовал его между
> open(2) и unlink(2). :)

Нужно возвращать дескриптор *только* если сработал unlink.  Тогда
не будет смысла переименовывать, потому что до данных таким образом
всё равно не добраться.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 23:20           ` Alexey Tourbin
@ 2005-08-16 23:30             ` Alexey Tourbin
  2005-08-17  0:37               ` Alexey Tourbin
  0 siblings, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 23:30 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 640 bytes --]

On Wed, Aug 17, 2005 at 03:20:30AM +0400, Alexey Tourbin wrote:
> > Да, tmpfile(3) удаляет созданный файл сразу, и возвращает дескриптор на
> > файл, имени которому уже нет.  Если кто-то не переименовал его между
> > open(2) и unlink(2). :)
> 
> Нужно возвращать дескриптор *только* если сработал unlink.  Тогда
> не будет смысла переименовывать, потому что до данных таким образом
> всё равно не добраться.

С другой стороны, после переименования временного файла потенциальный
злоумышленник может создать ещё один файл с таким же именем, чтобы
unlink таки сработал.  Но вероятность успешной атаки уменьшается
примерно вдвое.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:50         ` Dmitry V. Levin
@ 2005-08-16 23:33           ` Alexey Tourbin
  2005-08-16 23:38             ` Dmitry V. Levin
  0 siblings, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 23:33 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1117 bytes --]

On Wed, Aug 17, 2005 at 02:50:56AM +0400, Dmitry V. Levin wrote:
> > Можно в двух словах, почему небезопасно передовать временный файл по
> > имени?  Ведь если потенциальный злоумышленник не может ни читать/писать,
> > ни удалить временный файл, то в чем страдает безопасность?
> 
> Это разновидность TOCTOU: с момента проверки до момента использования
> ситуация может измениться.  Например, временный файл, созданный в /tmp,
> может быть удалён, если он не используется, каким-нибудь stmpclean'ом.
> Даже права на каталог могут измениться с момента последней проверки.
> Если представить себе, что привилегированная программа получила SIGSTOP и
> отправилась отдыхать на недельку-другую, то окно становится вполне
> пригодным для атаки.

То есть "навредить" нам может либо root, либо мы сами себе.
Потенциальному злоумышленнику остается только ждать наступления более
благоприятной ситуации, которая, по идее, наступить не должна.

То есть проверка каталога по этой схеме перед созданием временного файла
практически гарантирует, что все остальные операции с временным файлом
пройдут безопасно.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [devel] Re: suid/sgid programs and temporary files
  2005-08-16 23:33           ` Alexey Tourbin
@ 2005-08-16 23:38             ` Dmitry V. Levin
  2005-08-16 23:52               ` Alexey Tourbin
  0 siblings, 1 reply; 18+ messages in thread
From: Dmitry V. Levin @ 2005-08-16 23:38 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1454 bytes --]

On Wed, Aug 17, 2005 at 03:33:43AM +0400, Alexey Tourbin wrote:
> On Wed, Aug 17, 2005 at 02:50:56AM +0400, Dmitry V. Levin wrote:
> > > Можно в двух словах, почему небезопасно передовать временный файл по
> > > имени?  Ведь если потенциальный злоумышленник не может ни читать/писать,
> > > ни удалить временный файл, то в чем страдает безопасность?
> > 
> > Это разновидность TOCTOU: с момента проверки до момента использования
> > ситуация может измениться.  Например, временный файл, созданный в /tmp,
> > может быть удалён, если он не используется, каким-нибудь stmpclean'ом.
> > Даже права на каталог могут измениться с момента последней проверки.
> > Если представить себе, что привилегированная программа получила SIGSTOP и
> > отправилась отдыхать на недельку-другую, то окно становится вполне
> > пригодным для атаки.
> 
> То есть "навредить" нам может либо root, либо мы сами себе.
> Потенциальному злоумышленнику остается только ждать наступления более
> благоприятной ситуации, которая, по идее, наступить не должна.
> 
> То есть проверка каталога по этой схеме перед созданием временного файла
> практически гарантирует, что все остальные операции с временным файлом
> пройдут безопасно.

В случае с привилегированными программами такая гарантия появляется только
в случае проверки на euid, иначе запускающий такую программу может
попробовать через неё добыть себе права через манипуляции с каталогом.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 23:38             ` Dmitry V. Levin
@ 2005-08-16 23:52               ` Alexey Tourbin
  0 siblings, 0 replies; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-16 23:52 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 547 bytes --]

On Wed, Aug 17, 2005 at 03:38:02AM +0400, Dmitry V. Levin wrote:
> > То есть проверка каталога по этой схеме перед созданием временного файла
> > практически гарантирует, что все остальные операции с временным файлом
> > пройдут безопасно.
> 
> В случае с привилегированными программами такая гарантия появляется только
> в случае проверки на euid, иначе запускающий такую программу может
> попробовать через неё добыть себе права через манипуляции с каталогом.

Да.  Я как раз на это обратил внимание в File::Temp.
Уже послал им патч.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-16 23:30             ` Alexey Tourbin
@ 2005-08-17  0:37               ` Alexey Tourbin
  2005-08-17  0:46                 ` Alexey Tourbin
  0 siblings, 1 reply; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-17  0:37 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 875 bytes --]

On Wed, Aug 17, 2005 at 03:30:12AM +0400, Alexey Tourbin wrote:
> On Wed, Aug 17, 2005 at 03:20:30AM +0400, Alexey Tourbin wrote:
> > > Да, tmpfile(3) удаляет созданный файл сразу, и возвращает дескриптор на
> > > файл, имени которому уже нет.  Если кто-то не переименовал его между
> > > open(2) и unlink(2). :)
> > 
> > Нужно возвращать дескриптор *только* если сработал unlink.  Тогда
> > не будет смысла переименовывать, потому что до данных таким образом
> > всё равно не добраться.
> 
> С другой стороны, после переименования временного файла потенциальный
> злоумышленник может создать ещё один файл с таким же именем, чтобы
> unlink таки сработал.  Но вероятность успешной атаки уменьшается
> примерно вдвое.

С другой стороны, если потенциальный злоумышленник будет делать link(2)
на временный файл, то проверка результата unlink(2) ничего не даст.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-17  0:37               ` Alexey Tourbin
@ 2005-08-17  0:46                 ` Alexey Tourbin
  0 siblings, 0 replies; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-17  0:46 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

On Wed, Aug 17, 2005 at 04:37:31AM +0400, Alexey Tourbin wrote:
> > С другой стороны, после переименования временного файла потенциальный
> > злоумышленник может создать ещё один файл с таким же именем, чтобы
> > unlink таки сработал.  Но вероятность успешной атаки уменьшается
> > примерно вдвое.
> 
> С другой стороны, если потенциальный злоумышленник будет делать link(2)
> на временный файл, то проверка результата unlink(2) ничего не даст.

Но link(2) делать бессмысленно, потому что таким образом всё равно
нельзя получить доступ к содержимому файла.  Единственная результативная
атака -- подмена временного файла, доступ к содержимому становится
возможным в результате изменения прав доступа.  Поэтому проверять
результат unlink(2) всё же стоит.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [devel] Re: suid/sgid programs and temporary files
  2005-08-16 22:55         ` Dmitry V. Levin
  2005-08-16 23:20           ` Alexey Tourbin
@ 2005-08-17  3:02           ` Andrey Rahmatullin
  2005-08-17  6:37             ` Alexey Tourbin
  1 sibling, 1 reply; 18+ messages in thread
From: Andrey Rahmatullin @ 2005-08-17  3:02 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 340 bytes --]

On Wed, Aug 17, 2005 at 02:55:07AM +0400, Dmitry V. Levin wrote:
> Да, tmpfile(3) удаляет созданный файл сразу,
Почему об этом нет в мане?

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):

> Я намерен вынимать autofs из orphaned; предложения/возражения ?
Предложение: собрать новую версию.
		-- ldv in devel@

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] Re: suid/sgid programs and temporary files
  2005-08-17  3:02           ` Andrey Rahmatullin
@ 2005-08-17  6:37             ` Alexey Tourbin
  0 siblings, 0 replies; 18+ messages in thread
From: Alexey Tourbin @ 2005-08-17  6:37 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 737 bytes --]

On Wed, Aug 17, 2005 at 09:02:44AM +0600, Andrey Rahmatullin wrote:
> On Wed, Aug 17, 2005 at 02:55:07AM +0400, Dmitry V. Levin wrote:
> > Да, tmpfile(3) удаляет созданный файл сразу,
> Почему об этом нет в мане?

В K&R тоже написано, что временный файл "автоматически удаляется при его
закрытии или обычном завершении программы своей работы" (стр.311).
Видимо, такая формулировка в K&R/ANSI C используется из-за соображений
портабельности, т.к. не на всех платформах можно удалить файл и
продолжать работать с дескриптором.  А ман, скорее всего, просто
пересказывает ANSI C.

В сущности, какая разница, когда удалить файл, если его имя не
возвращается?  Лучше удалить сразу (на тех платформах, которые это
поддерживают).

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [devel] [wiki] Re: suid/sgid programs and temporary files
  2005-08-16 22:34       ` Alexey Tourbin
  2005-08-16 22:50         ` Dmitry V. Levin
@ 2005-08-17  7:14         ` Michael Shigorin
  1 sibling, 0 replies; 18+ messages in thread
From: Michael Shigorin @ 2005-08-17  7:14 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wed, Aug 17, 2005 at 02:34:21AM +0400, Alexey Tourbin wrote:
> > Между прочим, передача временного файла по имени небезопасна
> > сама по себе, эта тема обсуждалась год-два-три назад в
> > списках рассылки типа bugtraq.
> Можно в двух словах, почему небезопасно передовать временный
> файл по имени?  Ведь если потенциальный злоумышленник не может
> ни читать/писать, ни удалить временный файл, то в чем страдает
> безопасность?

-> http://www.freesource.info/wiki/AltLinux/Razrabotchiku/SecureTmp

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2005-08-17  7:14 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-16 19:31 [devel] suid/sgid programs and temporary files Alexey Tourbin
2005-08-16 19:56 ` Dmitry V. Levin
2005-08-16 21:42   ` [devel] " Alexey Tourbin
2005-08-16 22:06     ` Dmitry V. Levin
2005-08-16 22:34       ` Alexey Tourbin
2005-08-16 22:50         ` Dmitry V. Levin
2005-08-16 23:33           ` Alexey Tourbin
2005-08-16 23:38             ` Dmitry V. Levin
2005-08-16 23:52               ` Alexey Tourbin
2005-08-17  7:14         ` [devel] [wiki] " Michael Shigorin
2005-08-16 22:44       ` [devel] " Alexey Tourbin
2005-08-16 22:55         ` Dmitry V. Levin
2005-08-16 23:20           ` Alexey Tourbin
2005-08-16 23:30             ` Alexey Tourbin
2005-08-17  0:37               ` Alexey Tourbin
2005-08-17  0:46                 ` Alexey Tourbin
2005-08-17  3:02           ` Andrey Rahmatullin
2005-08-17  6:37             ` Alexey Tourbin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git