From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-type:content-disposition :content-transfer-encoding:in-reply-to; bh=OBeoTjyQ+oeTOOHHmTZTj/9pHL2jI/c+SrPcx5HdbGw=; b=Tdw1oTIZnGpQ54v84B+Jh2HYEPvkgEeKjRbxtvNi+c2iqdahfYncjDRxTqpkQLhgMT e5d6Sr8CLggm8pVmiNPLrxBUHQAdu3g7pIgtiWUUJNmvON0SQPc3E8ADtoI9QfZ43HQt IlePYTIUUzIfC09iXoLmh7ZEaolGVKWgbmnakQuX0awuEbp11AfpMUm9OQEyOGuf/gI1 Zry5UTKRYg4JnWFhNY8FmGSko7qowiRqgEIqZOKfVcYrulTRf5T596LMBBvSHm7rxtj4 hZ4vo+Cp/jDeuic1aZGYfGBQl1V9+ZSxUKsDPXEjvu+/RbhPcMGxYiZDOBRmX6CdTKM0 KWOg== Date: Fri, 31 Aug 2012 09:46:12 +0400 From: Dmitry Chistikov To: ALT Linux Community general discussions Message-ID: <20120831054612.GD7701@conflux.foliandre> Mail-Followup-To: ALT Linux Community general discussions References: <20120829144315.GI13963@conflux.foliandre> <3789813.elSHLEPuJ5@summoner.localdomain> <20120830151704.GB7449@conflux.foliandre> <4765383.KMFu31lscM@summoner.localdomain> <20120830165502.GA2592@t60p.mithraen.ru> <20120830173045.GE7449@conflux.foliandre> <20120830185020.GA15436@t60p.mithraen.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20120830185020.GA15436@t60p.mithraen.ru> Subject: Re: [Comm] =?koi8-r?b?8M/TzMUgz8LOz9fMxc7J0SDQ0s/QwczJIMnLz87LySDO?= =?koi8-r?b?wSDSwcLP3sXNINPUz8zF?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Aug 2012 05:46:20 -0000 Archived-At: List-Archive: List-Post: Денис Смирнов, Aug. 30, 2012, 22:50 +0400: > On Thu, Aug 30, 2012 at 09:30:45PM +0400, Dmitry Chistikov wrote: > > DC> Строго говоря, запретить такое нельзя: пользователь может скормить > DC> интерпретатору все, что захочет =) > > Это самое 'что захочет' by default считается shell-скриптом (IMHO это одна > из особенностей unix, которую лучше бы не поддерживать из совместимости, а > удавить нафиг). Но как, Холмс? Предложить оболочкам относиться к stdin с терминала *совсем* не так, как к stdin из файла или канала (pipe)? Или Вы про вот эту особенность: If the header of a file isn't recognized (the attempted execve(2) failed with the error ENOEXEC), these functions will execute the shell (/bin/sh) with the path of the file as its first argument. (If this attempt fails, no further searching is done.) (из exec(3); "these functions" = execlp(), execvp(), execvpe(), но не execl() и не execle(); насколько я понимаю из exec(3), и не системный вызов execve(), хотя разъяснения на самой странице execve(2), на мой взгляд, туманны; см. также письмо at@ рядом; NB: системный вызов, правда, только один - execve(), остальные exec'и - функции стандартной библиотеки) Короче говоря, если файл не является "настоящим" бинарником (a.out dynamically linked binary executable, dynamically linked ELF executable) и не является сценарием оболочки (interpreter script в терминах execve(2); грубо говоря, в первой строке должен быть корректная #!-строка), то системный вызов для него оболочку запускать и не будет. Заниматься этой самодеятельностью будут разве что функции стандартной библиотеки - или же пользовательские программы (возможно, и сами оболочки). -- Дмитрий Чистиков