онанистоус писал(а):
Такой умный? Почему же никто другой не додумался? Или хочешь сказать, что когда PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/pupkin/bin
...написав route, каким-то чудесным образом запустится не /sbin/route, а /home/pupkin/bin/route и украдет привилегии? Случаем не игнорируем порядок?
А кто тебе сказал, что файл .cshrc в домашней директории пользователя присутствует? Может его удалили уже за ненадобностью, причем неважно кто?
Код: Выделить всё
Linux localhost.localdomain 2.6.18-std-smp-alt7 #1 SMP Sat Aug 4 00:07:54 MSD 2007 i686 GNU/Linux
По умолчанию, после того как пользователь создан в ALT Linux (не знаю как в других), dot файлы в пользоватльской директории отсутствуют.
Код: Выделить всё
[andy@localhost ~]$ pwd
/home/andy
[andy@localhost ~]$ ls -l
итого 161416
drwx------ 2 andy andy 4096 Окт 5 12:12 Desktop
drwx------ 2 andy andy 4096 Окт 4 20:15 Documents
-rw-r--r-- 1 andy andy 61095350 Окт 5 20:45 Ja.r01
-rw-r--r-- 1 andy andy 104000000 Окт 5 18:47 Ja.rar
-rwxr-xr-x 1 andy andy 30 Окт 5 13:21 man.sh
drwxr-xr-x 25 andy andy 4096 Окт 6 12:52 music
drwx------ 2 andy andy 4096 Окт 3 17:52 tmp
[andy@localhost ~]$
Поглядим PATH пользователя по умолчанию.
Код: Выделить всё
[andy@localhost ~]$ echo $PATH
/home/andy/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin:/usr/games:/usr/X11R6/bin
[andy@localhost ~]$
Теперь попробуем вызвать утилиту ping
Код: Выделить всё
[andy@localhost ~]$ ping
Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
[-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
[-M mtu discovery hint] [-S sndbuf]
[ -T timestamp option ] [ -Q tos ] [hop1 ...] destination
[andy@localhost ~]$
Создадим в каталоге /usr/local/bin:/, файл ping следующего содержания:
и сделаем его запускамым
вызовем утилиту пользователем
Код: Выделить всё
[andy@localhost ~]$ ping
hi!
[andy@localhost ~]$
Становиться ясно, что указав прямой путь, такой досадной накладки бы не случилось.Я конечно понимаю, что благодаря системе прав в nix-like системах, все вышеизложенное выглядит как попытка притянуть муде к бороде, однако ведь как то системы ломают? Прошу прощения, что на Линуксе, сейчас не могу во FreeBSD переключится. Однако как руки дойдут, попробую и там. И еще не надо орать, что мол Линукс г и вообще у них там все неправильно. Прошу понять одно, жизнь не только FreeBSD, а еще и Linux, Solaris, AIX и прочие блага цивилизации, отсюда - написание скриптов именно на /bin/sh, ибо есть такое понятие как POSIX. Уместно вспомнить коллегу Лиса, который офигел когда ему пришлось переписывать скрипты на /bin/sh.
Если несколько строк кода способны однозначно гарантировать результат, по крайней мере с вероятностью 99 процентов, то не вижу причин их не написать. Все вышесказанное, является к иллюстрацией к мыслеизложению, и ни в коем случае не преследует попытки провокации флейма. За этим в ЛОР и opennet. Спасибо за мысли и код.