On 04Feb2017 09:19, Wildman <best_...@yahoo.com> wrote:
[...]  Personally I don't understand
the danger in having the dot in the path.  The './'
only means the current directory.  DOS and Windows
has searched the current directory since their
beginning.  Is that also dangerous?

Citing DOS and Windows as prior art doesn't support your "it seems safe" argument :-)

When you run a program its behaviour should be predictable. If your execution path or python module path includes "." (or some relative-path equivalent) in it, the behaviour of the program becomes dependent on where you're standing when you invoke it.

Who has not written a shell script called "ls" and left it in their home directory, ready for one's friends to visit and run it by accident? Mine kicked off a shell script that said "removing files now..." and started reciting fictitious "rm" commands. In _their_ home directory. (Since they were invoking it, that information is instantly available from $HOME.)

This is why having "." in your path (of whatever flavour), _particularly_ at the front (but really in general), is hazardous. At the least your commands become subject to misbehaviour through picking up the local (wrong) code; at the worst your programs become subverted if somehow malevolent code is sitting around somewhere.

Supposing you visit a dev directory with a testing (and _broken_) common module or command. Misadventure ensues.

Supposing you're a sysadmin. Nasty!

Supposing you've shunted some malware into a directory for examination? CDing _into_ that directoy to do the examination is then _actively dangerous_.

The list goes one.

This is why having "the current directory", of whatever flavour, in your path is a bad idea in general.

Cheers,
Cameron Simpson <c...@zip.com.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to