On Mon, Feb 04, 2002, Martha H Greenberg wrote about "Re: strange tcsh problems": > Let me guess, you are running Mandrake, right? This has to do with > Mandrake's screwy security policies. Tcsh keeps a hash of all the > programs in the path and uses that to detrimine what to execute. > However, it can't add programs in directories it can't read, and in > Mandrake, users have only execute permission on directories like /bin > and /usr, they don't have read. The "fix" is to give users read access > to the directories they need to execute files in.
This is the first reasonable explanation raised here (except the possibility of him having an alias or function, of ls into 'echo "Command not found"' ;)). However, if it's true (and it is!), it seems like a tcsh bug. True, with such permissions tcsh will not be able to prebuild a hash of all commands in /bin, but when running something not in the hash tcsh should at least have the decency to check the actual path again. The same thing is needed when a new command is installed. The hash was supposed to make path searches quicker, not to change the way they work... Yet another reason to avoid tcsh like the plague... I just checked, and this bug doesn't seem to exist in zsh. In zsh you also don't need to "rehash" when a new command is installed (you do need to rehash if a command changed location in the path, of course). In zsh you can also turn off the automatic hashing of all the PATH (with the HASH_LIST_ALL, HASH_DIRS options). Bash never automatically hashs entire directories anyway, so it can't have this bug either. But anyway, it's really stupid to have unreadable /bin. Just chmod a+rx /bin. -- Nadav Har'El | Monday, Feb 4 2002, 22 Shevat 5762 [EMAIL PROTECTED] |----------------------------------------- Phone: +972-53-245868, ICQ 13349191 |Willpower: The ability to eat only one http://nadav.harel.org.il |salted peanut. ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]
