[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cannot run any executables under Debian2.0 - Help(newbie)



In <[🔎] 19981009234856.25802.qmail@www0n.netaddress.usa.net>, on 10/09/98
   at 07:48 PM, rathon <rathon01@usa.net> said:

>Hi,

>let me explain this as best as I can -

>Problem:
>----------
>I had installed Yggdrasil Linux long time ago and everything on that
>setup worked ok.

>Recently, I upgraded to Debian2.0 and none of my executables or Perl
>scripts are working anymore. I get

>bash: filename: command not found

>Background:
>-----------
>Within Debian, I did not create a /home dir. I wanted to use my existing
>Yggdrasil /home with all my files intact when I ran Debian.

>So, within Debian /etc/fstab, I added the following:
>/dev/hdc4   /home   ext2   defaults

>Now, I could see all my files.

>Since I was logged on with a different username, I did the
>following to change file permissions:

>chown -R rathon /home/guest (as root, username=rathon)

>Now, I could open up any file and edit as I needed in my /home/guest dir.

>As I mentioned earlier, Perl scripts that worked on Ygg do not work on
>Debian. I get a 'command not found'

>I did a env and got this:

>PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:

>I could do 'which Perl' and see the path being /usr/bin/perl. Same as my
>Ygg path for Perl. So I was sure Perl got detected right.

>So I wanted to do a test to see if this is Perl specific or not. I wrote
>a 3 line 'C' code and compiled it using gcc. This gave me a 'a.out'
>file(no error in compiling). When I run the file, I get:

>bash:a.out:command not found
Note that your PATH does not contain the current directory (.) This is
default for Debian, and is considered a security feature. I believe you
can run standard executables like "ls" and such?

To run the a.out file, use "./a.out" instead of only "a.out"
The same applies to anything else that isn't in your path.  Why is this a
security thing?  Because a nasty user on a multiuser system could create a
virus or something and name it "ls"
in his home directory.  Someone else might cd's into that
directory and run "ls" in order to get a directory list.
Not having the current dir in PATH is then useful.

>So, my present setup(Debian)WILL NOT allow any executables to run!
If you are the only user (normal on a home machine) add "." to your PATH.
Or you may put your private executables in "~/bin¨ and add  that to your
path.  Or get used to type "./executable"

>I checked my permission and that was ok. I even did a chmod 777 on my
>file and that did not work.

>Additional info:
>---------------
>I am giving some additional info in the hopes that someone can point me
>in the right direction. I have a feeling that I did not move my /home dir
>from Ygg to Debian properly.

>If I do a ls -l:
>-rw-r--r--   1  rathon  users  64   Oct12 10:44  test.c
>-rwxrwxr-x   1  rathon  rathon 4157 Oct12 10:44 a.out

>Notice that the gid changed when I compiled the file ? Is that normal to
>get uid and gid the same ??
It didn't change when compiling.  The compiler simply creates a new file
(a.out) and it get the default uid/gid for files you create. Try compiling
someone else's source file - you'll be the owner of the executable because
*you* ran the compiler.

Helge Hafting


Reply to: