mksh exec bug.

Adam Osuchowski adwol at zonk.pl
Sun Jan 15 20:41:25 CET 2012


Pawel Golaszewski wrote:
> alternatives - może i tak, ale NIE dla /bin/sh
> System _musi_ być robiony pod konkretnego shell-a i nic tego nie zmieni. 
> Inaczej skończymy z tym, że nie możesz zainstalować usług razem, bo część 
> będzie wymagało jednego /bin/sh, a druga część innego. Chore.

I co w takim razie zrobisz z przypadkiem od którego zaczął się ten wątek?
Jak wg Ciebie ,,system musi być robiony'', żeby to zadziałało skoro
aktualny /bin/sh nie wspiera danej funkcjonalności? Powtórzę: jak widać,
są różnice w zachowaniu POSIXowych shelli i którykolwiek z nich zostałby
wybrany jako /bin/sh, prędzej czy później pojawiłby się problem.

IMHO rozwiązania są dwa:

1. Patchujemy lub przekompilowujemy z innymi opcjami mksh żeby robił to
inaczej niż domyślnie -- rozwiązanie ogólnie działające, ale diabeł może
siedzieć w szczegółach więc podchodzę do niego raczej z rezerwą.
2. Weryfikujemy takie przypadki i jeżeli skrypt wymaga funkcjonalności
np. basha to odpalamy go z ,,#!/bin/bash'' a nie ,,#!/bin/sh''. Kto
powiedział, że każdy skrypt shellowy w systemie musi być pod /bin/sh?
W tym przypadku różne usługi mogą wymagać różnych shelli, które można
postawić obok siebie. Natomiast skrypty wykorzystujące wspólne
funkcjonalności (lub te wprost i ściśle zdefiniowane w standardzie) mogą
być uruchamiane z /bin/sh, co tym bardziej nie przeszkadza we wsadzeniu
/bin/sh do alternatives.


More information about the pld-devel-pl mailing list