Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / unix script / 25 сообщений из 29, страница 1 из 2
31.07.2012, 16:57
    #37899376
Karen__84
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Добрый день всем .Написал скрипт который вызываю так ./filename .Как можно сделать так что бы без ./ вызывать?
...
Рейтинг: 0 / 0
31.07.2012, 17:03
    #37899390
оиыждкпдл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
прописать каталог, в котором размещается скрипт, в переменную окружения PATH
...
Рейтинг: 0 / 0
31.07.2012, 17:08
    #37899399
Karen__84
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
оиыждкпдл,
я читал что можно добавить папку bin в домашню директорию и файл поставить в bin чтобы можно было без ,/
...
Рейтинг: 0 / 0
31.07.2012, 19:25
    #37899546
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
On 07/31/2012 05:57 PM, Karen__84 wrote:

> Добрый день всем .Написал скрипт который вызываю так ./filename .Как можно
> сделать так что бы без ./ вызывать?

export PATH=$PATH:.

но это ОЧЕНЬ НЕПРАВИЛЬНО.
Правильно так НЕ делать, правильно писать ./filename.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
31.07.2012, 22:41
    #37899648
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
MasterZivно это ОЧЕНЬ НЕПРАВИЛЬНО.
Правильно так НЕ делать, правильно писать ./filename.Кстати, я никогда не понимал (и сейчас не понимаю) почему это считается неправильным?
Во всех не-юниксовых ОС с которыми я работал текущий каталог всегда в путях по определению. И у меня никогда из-за этого проблем не было. Почему вдруг в юниксах это стало ОЧЕНЬ НЕПРАВИЛЬНО?
...
Рейтинг: 0 / 0
01.08.2012, 00:33
    #37899707
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Ну, в принципе, и банальной эрудиции хватило-бы для понимания "почему так в UNIX-e".
White OwlКстати, я никогда не понимал (и сейчас не понимаю) почему это считается неправильным?
Во всех не-юниксовых ОС с которыми я работал текущий каталог всегда в путях по определению. И у меня никогда из-за этого проблем не было. Почему вдруг в юниксах это стало ОЧЕНЬ НЕПРАВИЛЬНО?авторBecause on Unix, usually, the current directory is not in $PATH.
When you type a command the shell looks up a list of directories, as specified by the PATH variable. The current directory is not in that list.
The reason for not having the current directory on that list is security.
Let's say you're root and go into another user's directory and type sl instead of ls. If the current directory is in PATH, the shell will try to execute the sl program in that directory (since there is no other sl program). That sl program might be malicious.

EDIT

That sl part was just an example. The directories in PATH are searched sequentially and when a match is made that program is executed. So, depending on how PATH looks, typing a normal command may or may not be enough to run the program in the current directory.
...
Рейтинг: 0 / 0
01.08.2012, 18:26
    #37900899
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Relic HunterНу, в принципе, и банальной эрудиции хватило-бы для понимания "почему так в UNIX-e".Ну вот эрудиции хватает, а опыта не хватает.
Предложенный вариант проблем c sl vs ls логически понятен и я с ним согласен на уровне эрудиции.
Но вот на уровне опыта я с ним совершенно не согласен. Рут не будет заходить в чужой каталог просто так. Если рут полез в чужой каталог значит он знает что делает и проблемы типа "sl vs ls" практически исключены. Я считаю что эта опасность высосана из пальца и ни когда не случается в реальной жизни.
Еще раз повторяю, у меня очень много лет жизни в различных ОС в которых текущий каталог всегда проверяется перед PATH. Во всех моих профайлах на различных *никс я добавляю себе точку в PATH первым элементом. У меня никогда не возникало проблем из-за этого.
Да, кто-то из древних гуру Юникса однажды сказал что текущий каталог в путях опасен, но это же не значит что он был абсолютно прав? Ну вот лично у вас, друзья мои, были проблемы из-за добавления точки в PATH? Личный ваш опыт что говорит?
...
Рейтинг: 0 / 0
01.08.2012, 19:38
    #37900987
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Рут не будет заходить в чужой каталог просто так. Если рут полез в чужой каталог значит он знает что делает
В случае с точкой рут "зная, что делает" может запустить программу не зная, что она делает, думая что запустил ls из /bin,
на самом деле ls из каталога пользователя, который rm -rf /
Вот если он явно указал, что хочет запустить программу из каталога пользователя(а-ля ./ls ) - тогда он знает, что делает
...
Рейтинг: 0 / 0
01.08.2012, 19:48
    #37900993
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
White Owl,

Вобщем-то, установка программ в /bin, /usr/bin, etc требует привелигированных полномочий. А установка в домашний каталог - нет. И запуск программ из каталогов пользователей под учеткой рута - не есть гуд, будут запускаться трояны. Так понятней?
...
Рейтинг: 0 / 0
01.08.2012, 20:52
    #37901027
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Я прекрасно понимаю ваш пример. Я просто не верю что кто-то в здравом уме и твердой памяти в действительности может попасть в такую ситуацию.

Ну вот вы сами будучи рутами как часто заходите в пользовательские каталоги?
Лично я из под рута хожу только в один единственный каталог: /etc. Для всех остальных задач мне хватает моего стандартного юзерского аккаунта и sudo.
...
Рейтинг: 0 / 0
01.08.2012, 21:06
    #37901040
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
White Owl,

Ну в поделках типа убунту учетка рута заблокированна. И наверно не зря? Так, что наличие или отсутствие "./" не играет особой роли, если вы про это.
...
Рейтинг: 0 / 0
01.08.2012, 21:35
    #37901054
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Relic HunterWhite Owl,

Ну в поделках типа убунту учетка рута заблокированна. И наверно не зря? Так, что наличие или отсутствие "./" не играет особой роли, если вы про это.Нет, я про то что ожидая подставы от юзера в виде замены ls на rm -rf / вы на самом деле ожидаете что какой-нибудь юзер выкопает в своей квартире волчью яму (прямо сквозь паркет) и поэтому постоянно носите с собой доски, гвозди и инструменты для строительства моста и не важно идете вы в гости к идиоту или у себя дома на кухню.
Не, я конечно могу себе представить что некий Вася, которого несправедливо уволили, оставит после себя подобную мину, но в реальной жизни этот Вася сам себе такую подлянку зачем делать будет?
И я еще раз спрашиваю: Поднимите руки те кто пострадал от наличия точки в PATH? Ну хоть один такой человек есть?
...
Рейтинг: 0 / 0
02.08.2012, 16:57
    #37902327
Ихтиандр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Как говорится, все правила написаны кровью.
Вероятно когда-то кто-то на такие грабли наступил и теперь это стало стандартом не прописывать текущий каталог в пути рута.
...
Рейтинг: 0 / 0
02.08.2012, 17:10
    #37902342
bga83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
White Owl,
я никогда не прописывал текущий каталог в PATH и ни разу от этого не страдал
...
Рейтинг: 0 / 0
03.08.2012, 17:50
    #37903872
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
> White Owl,
> я никогда не прописывал текущий каталог в PATH и ни разу от этого не страдал

Так главное -- два лишних удара пальцем, безымянный и мизинец, потом -- свои
выполняемые файлы никогда не путаются с общесистемными, автодополнение работает
хорошо. Не, я даже думать не хочу, почему нельзя . в PATH.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.08.2012, 19:15
    #37903973
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
MasterZivНе, я даже думать не хочу, почему нельзя . в PATH.Мне кажется, что вот это и есть правильный ответ.
Религия это серьезно.
...
Рейтинг: 0 / 0
03.08.2012, 19:39
    #37903992
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
> Мне кажется, что вот это и есть правильный ответ.
> Религия это серьезно.

Ой ладно, уговорил, поищу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.08.2012, 17:33
    #37904450
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
White OwlRelic HunterWhite Owl,

Ну в поделках типа убунту учетка рута заблокированна. И наверно не зря? Так, что наличие или отсутствие "./" не играет особой роли, если вы про это.Нет, я про то что ожидая подставы от юзера в виде замены ls на rm -rf / вы на самом деле ожидаете что какой-нибудь юзер выкопает в своей квартире волчью яму (прямо сквозь паркет) и поэтому постоянно носите с собой доски, гвозди и инструменты для строительства моста и не важно идете вы в гости к идиоту или у себя дома на кухню.
Не, я конечно могу себе представить что некий Вася, которого несправедливо уволили, оставит после себя подобную мину, но в реальной жизни этот Вася сам себе такую подлянку зачем делать будет?
И я еще раз спрашиваю: Поднимите руки те кто пострадал от наличия точки в PATH? Ну хоть один такой человек есть?
ну это как пример, а так вот реальный случай http://www.sql.ru/forum/actualthread.aspx?tid=218456
Начинающие изучать компиляторы очень часто называют свои программы test
А если вы от рута запустите какой-нибудь скрипт в котором явно используеися утилитка test
сами подумайте что произойдет
У меня был реальный случай, когда у пользователя вместо "Hello world !" ничего не выводилось именно потому , что назвал он
свою программку test
Если уж очень хочется "." в PATH - то ставить в конец списка, а не в начало
Но лучше не надо.
...
Рейтинг: 0 / 0
04.08.2012, 18:30
    #37904477
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
landyНачинающие изучать компиляторы очень часто называют свои программы test
А если вы от рута запустите какой-нибудь скрипт в котором явно используеися утилитка test
сами подумайте что произойдет
У меня был реальный случай, когда у пользователя вместо "Hello world !" ничего не выводилось именно потому , что назвал он
свою программку test Ну наконец-то, это уже более реалистичный пример.
...
Рейтинг: 0 / 0
06.08.2012, 18:05
    #37906172
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Вот и подтвержление

http://www.sql.ru/forum/actualthread.aspx?tid=960341

В принципе юзер и не такое отчюдить может ...
...
Рейтинг: 0 / 0
06.08.2012, 23:46
    #37906508
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
landyВот и подтвержление

http://www.sql.ru/forum/actualthread.aspx?tid=960341

В принципе юзер и не такое отчюдить может ...Этот топик вообще-то к теме не относится. Если ты приглядишься получше, то TC с самого начала запускал ./test.

А вообще, даже название своих программ как test не должно особо влиять на проблему точки в пути.
Если в профиле сделано export PATH=$PATH:. как предложил MasterZiv, то в этом случае, созданный новичком test не будет писать "Hello World" перекрытый системным test'ом. Но в этом случае достаточно будет запустить ./test чтобы все заработало.
Если же в профиле сделано export PATH=.:$PATH , то уже системный test будет перекрыт личным и работать перестанут шелл-скрипты которые используют test вместо [. А это довольно редкая вещь...
В общем, хоть вариант с test vs ./test действительно чуть более реалистичный чем ls vs ./ls, но все равно я не вижу причин по которым точка в путях это "ОЧЕНЬ НЕПРАВИЛЬНО". В максимуме это доставит мелкое неудобство если юзер "перекроет" системную утилиту, причем это будет легко найдено.
...
Рейтинг: 0 / 0
07.08.2012, 08:49
    #37906692
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
Это хорошо, если он в test только Hello world изучает
А если удаление/создание файлов/каталогов или еще чего-нибудь экзотическое?
А Вы от root'а запустите этот test?!
То, что он запускает ./test - ну молодец, что сказать
Ссылка на топик - это иллюстрация того, как пользователи могут называть свои программки
...
Рейтинг: 0 / 0
07.08.2012, 11:31
    #37906968
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
White OwllandyНачинающие изучать компиляторы очень часто называют свои программы test
А если вы от рута запустите какой-нибудь скрипт в котором явно используеися утилитка test
сами подумайте что произойдет
У меня был реальный случай, когда у пользователя вместо "Hello world !" ничего не выводилось именно потому , что назвал он
свою программку test Ну наконец-то, это уже более реалистичный пример.
В Юниксах небыло разделяемых библиотек по дизайну. Например чтобы программе провалидировать юзера запускалась программка получения хэша и затем этот хэш с именем юзера находился в passwd файле. Теперь представьте какая бы была секюрити если все запускалась с текущего каталога?
...
Рейтинг: 0 / 0
07.08.2012, 18:18
    #37907784
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
OoCcВ Юниксах небыло разделяемых библиотек по дизайну. Например чтобы программе провалидировать юзера запускалась программка получения хэша и затем этот хэш с именем юзера находился в passwd файле. Теперь представьте какая бы была секюрити если все запускалась с текущего каталога?Это очень страшная сказка.
Ударение на слово "сказка".
...
Рейтинг: 0 / 0
07.08.2012, 23:17
    #37907983
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
unix script
White OwlOoCcВ Юниксах небыло разделяемых библиотек по дизайну. Например чтобы программе провалидировать юзера запускалась программка получения хэша и затем этот хэш с именем юзера находился в passwd файле. Теперь представьте какая бы была секюрити если все запускалась с текущего каталога?Это очень страшная сказка.
Ударение на слово "сказка".
Из passwd файла хэши паролей убрали не более как лет 10 - 15 назад. Вам тогда читали на ночь сказки?
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / unix script / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]