./<имя_скрипта> (... а, собссно, зачем такой вызов?)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
VAVka
Сообщения: 96

./<имя_скрипта>

Сообщение VAVka »

Прочитал где-то, мол, указание текущего каталога при запуске скрипта
"... необходимо по причинам соблюдения безопасности..."

Это как так? Почему нельзя написать просто:
$ <имя_скрипта>
С чем связан такой подход?
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: ./<имя_скрипта>

Сообщение alv »

(VAVka @ Четверг, 26 Мая 2005, 10:47) писал(а):Прочитал где-то, мол, указание текущего каталога при запуске скрипта
"... необходимо по причинам соблюдения безопасности..."

Это как так? Почему нельзя написать просто:
$ <имя_скрипта>
С чем связан такой подход?


потому что текущий каталог (.) как правило не включен в число значений переменной PATH и шелл там по умолчанию не ищет. При желании это можно добавить в PATH, но действительно резоны так не делать (особенно для рута) есть.
Спасибо сказали:
Аватара пользователя
Golden
Сообщения: 163
ОС: Ubuntu Linux 7.10

Re: ./<имя_скрипта>

Сообщение Golden »

(VAVka @ Четверг, 26 Мая 2005, 10:47) писал(а):Прочитал где-то, мол, указание текущего каталога при запуске скрипта
"... необходимо по причинам соблюдения безопасности..."

Это как так? Почему нельзя написать просто:
$ <имя_скрипта>
С чем связан такой подход?


Подход связан с тем, что программа запускается только при указании полного или относительного пути либо же, без оного, в случае определения пути к ней в команде PATH
Соответственно, чтобы можно было запустить программу без пути в домашнем каталоге - оный каталог должен быть добавлен к PATH. Делать этого не рекомендуется, потому как таким образом возможно подменить общесистемные утилиты своими скриптами (например, положив в этот каталог скрипт с именем cp, внутри которого будет rm -rf)
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: ./<имя_скрипта>

Сообщение alv »

(Golden @ Четверг, 26 Мая 2005, 10:52) писал(а):Делать этого не рекомендуется, потому как таким образом возможно подменить общесистемные утилиты своими скриптами (например, положив в этот каталог скрипт с именем cp, внутри которого будет rm -rf)

Хороший пример. Поэтому, если уж страшно хочется добавить текущий каталог в PATH - то обязательно последним.
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: ./<имя_скрипта>

Сообщение VAVka »

(Golden @ Четверг, 26 Мая 2005, 10:52) писал(а):Делать этого не рекомендуется, потому как таким образом возможно подменить общесистемные утилиты своими скриптами (например, положив в этот каталог скрипт с именем cp, внутри которого будет rm -rf)

Иными словами, если у нас есть /bin/cp и есть /home/user/cp (в котором rm -rf), то в случае, когда в РАТН первым стоит (.) выполнится именно /home/user/cp (когда вошли от имени user, конечно)? При такой же ситуации, но входя под user2 нам ничего не грозит. НО! Если, обладая рутом сделать симлинк /bin/cp->/home/user/cp?!!!
Мда, нетрудно догадаться, что такая подстава может наделать от имени рута :o ... Ответ понятен, спасибо!
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали: