Deutsch English Français Italiano |
<20250125211146.219@kylheku.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Kaz Kylheku <643-408-1753@kylheku.com> Newsgroups: comp.unix.shell Subject: Re: Default PATH setting - reduce to something more sensible? Date: Sun, 26 Jan 2025 05:26:38 -0000 (UTC) Organization: A noiseless patient Spider Lines: 67 Message-ID: <20250125211146.219@kylheku.com> References: <vm5dei$2c7to$1@dont-email.me> <vmthmu$3bb88$1@news.xmission.com> <vmtrqk$92b$1@reader2.panix.com> <vmu94j$1q2lp$1@dont-email.me> <vn05ji$r20$1@reader2.panix.com> <vn0bpf$29qe6$1@dont-email.me> <871pwr6fe9.fsf@nosuchdomain.example.com> <vn2ier$2phv1$1@dont-email.me> <87ed0qba54.fsf@nosuchdomain.example.com> Injection-Date: Sun, 26 Jan 2025 06:26:39 +0100 (CET) Injection-Info: dont-email.me; posting-host="0b769d247bac7540b375d3c3eb5311fe"; logging-data="3637750"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/NBrWpBEttzrIxyH8CkyemTUOz3K/6BS8=" User-Agent: slrn/pre1.0.4-9 (Linux) Cancel-Lock: sha1:z/y4mz5fZA3aNlx5urkD8US2ldw= Bytes: 3964 On 2025-01-26, Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: > Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes: >> On 24.01.2025 23:00, Keith Thompson wrote: >>> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes: >>>> On 24.01.2025 14:46, Dan Cross wrote: >>> [...] >>> >>> /usr/bin/which is limited in what it can do. It follows POSIX-specified >>> behavior for $PATH; it doesn't recognize any shell-specific rules. [...] >> >> Sure. >> >>> [...] >>>> The settings PATH=~/bin and PATH="~/bin" respectively shall >>>> result in the same behavior across shells when searching for >>>> programs; in the first case looking into "/home/someuser/bin/" >>>> and in the second case looking into "./~/bin/" (i.e. a path >>>> component with a local directory named "~"). >>> >>> What do you mean by "shall result? >> >> I mean that a shell should behave consistently. (I think Bash does >> not in the given case.) > > Consistently with what? Bash consistently expands literal '~'s in > $PATH, and consistently disables that expansion in POSIX mode. > > All shells have shell-specific features. What's odd about this case is > that bash has a POSIX-violating feature that affects command name > resolution. It's a feature that (if used) leaks tildes into child processes via the environment variable. Path resultion in child processes, if it reaches a PATH element with a tilde, will somehow process that tilde. I just tried this experiment. I made a directory named ~ and put ~: as the leading element of PATH. I put a program called "foo" that directory. Surely enough, I can run "foo" from the parent directory above. The exec functions treat ~ as an ordinary path component. (I cannot do that out of Bash, which processes the tilde, but the 'p' family of the exec functions will find it!) This is a problem similar to "." being in PATH. If someone has, say, "~/bin" in their PATH, ahead of /bin and /usr/bin, I can put a malicious program in some directory called "~/bin" somewhere in the filesystem, give that program the name of a common external utility, and trick the user into changing into that location where they will run this common command, resolving to my malicious program. If we regard this as a security hole, that atually raises the priority and bolsters the argument that it ought to be removed even if it breaks some users, perhaps through a process of noisy deprecation. Furhermore, the case can be made that the exec stuff in the Linux kernel or C libraries should be patched with a check against components with a leading tilde. -- TXR Programming Language: http://nongnu.org/txr Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal Mastodon: @Kazinator@mstdn.ca