Sponsored Content
Top Forums Shell Programming and Scripting Executing Commands From Non-Standard Path (Changing user's PATH secretely???) Post 302348973 by ramesh_samane on Sunday 30th of August 2009 04:11:02 PM
Old 08-30-2009
Executing Commands From Non-Standard Path (Changing user's PATH secretely???)

Hi:

I have a requirement as below:

I have some standard Unix commands modified and kept them in a directory say /usr/clsh/bin. For example I have a script named "ls" kept here which is modified version of "ls" (say it always gives long listing i.e. ls -l).

When any user logs on and types commands, I want this dir (/usr/clsh/bin) to be looked upon first to check if modified version of the command is available. If yes execute that else execute normal command.

I have implemented it by writing a script say "clsh.bash" which changes PATH to PATH=/usr/clsh/bin:${PATH}. This script I am executing from /etc/profile so that it applies to all the users. So when user logs on his PATH will be changed. And in this case if he issues "ls" it will execute my modified version of "ls" that I kept in /usr/clsh/bin. If user issues any other command then it will normally be executed as there is no equivalent script available in /usr/clsh/bin.

This works fine.

But user can always revert back to original PATH by changing PATH variable. I don't want to happen this and also when user types in "echo $PATH" he will know that the PATH is been modified, I don't want to happen that either.

So basically I would like to know if there is any workaround for this or there is any alternate method to achieve this.

Your help is most appreciated so please guide me with your expert comments.

Thanks is advance and hope to get your answers quickly.

Regards,
Ramesh

---------- Post updated at 01:41 AM ---------- Previous update was at 12:25 AM ----------

39 views and no replies yet Smilie

Please let me know if more information is needed or I am not making myself clear. Thanks.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Full path of executing script in ksh?

Hello all, Here's the scenario: I've got a script, let's call it script1. This script invokes another script, which we'll call set_env, via the dot "." command, like so: File: #!/bin/ksh # region_id=DEV . set_env ${region_id} and so on. Script set_env sets up an... (2 Replies)
Discussion started by: BriceBu
2 Replies

2. Shell Programming and Scripting

How to change prompt color when changing path

Hi all, Can you tell me how to change the prompt color (only the path part) when I chnange directory with "cd"? I use the sequence below in ".bashrc" (Solaris 8) to change my prompt colors and I'd like to modify it to change the path color when I cange directory. PSC() { echo -ne "\"; }... (0 Replies)
Discussion started by: majormark
0 Replies

3. Shell Programming and Scripting

Appending a path in user's PATH variable

Hello Folks, I want to append a path in user's PATH variable which should be available in current session. Background Numerous persons will run a utility. Aim is to add the absolute path of the utility the first time it runs so that next runs have the PATH in env & users can directly run... (6 Replies)
Discussion started by: vibhor_agarwali
6 Replies

4. Shell Programming and Scripting

Changing the path

Hi , Iam changing the path in weblogic from /opt/user/shared/mydomain to /opt/users/shared/multidomain i have to change the below configuration files by using scripting am using for loop and sed to change the below files. for i in ${b}startWebLogic.sh... (1 Reply)
Discussion started by: sam1226
1 Replies

5. Shell Programming and Scripting

Changing the Login Path

Hi frnds! i m installing a software named 'Gamit' by using bash. bt i recieved the follwoing error: .. removing any existing Makefiles or archive files from libraries directories /root/Documents/ISP/Gamit_10.4/com/rmfresh: Permission denied. .. removing any existing Makefiles or... (1 Reply)
Discussion started by: Engr. Shoaib
1 Replies

6. UNIX for Dummies Questions & Answers

Changing Path Variable

Blank Blank Blank (11 Replies)
Discussion started by: pvibien
11 Replies

7. UNIX for Dummies Questions & Answers

Changing path in many files

I have many html files in a directory tree and want to change the a path declaration within the files. Files will look as below I want to remove "geopdf/" so I get as example href=../../../geo1937/geo02n01/geo0201r00010016.pdf rather than keeping the entry as ... (1 Reply)
Discussion started by: kristinu
1 Replies

8. UNIX for Dummies Questions & Answers

Way to get Code/path , which is executing under a process?

Dear All, Please help me in finding solution for below problem. I need a command or script to get code or path(from which location code is being executed), which is executing under a process ID. I dont have google access here,Please help me in finding solution. Thank you. (3 Replies)
Discussion started by: subbarao12
3 Replies

9. UNIX for Advanced & Expert Users

Command to see the logical volume path, device mapper path and its corresponding dm device path

Currently I am using this laborious command lvdisplay | awk '/LV Path/ {p=$3} /LV Name/ {n=$3} /VG Name/ {v=$3} /Block device/ {d=$3; sub(".*:", "/dev/dm-", d); printf "%s\t%s\t%s\n", p, "/dev/mapper/"v"-"n, d}' Would like to know if there is any shorter method to get this mapping of... (2 Replies)
Discussion started by: royalibrahim
2 Replies

10. UNIX for Beginners Questions & Answers

Convert Relative path to Absolute path, without changing directory to the file location.

Hello, I am creating a file with all the source folders included in my git branch, when i grep for the used source, i found source included as relative path instead of absolute path, how can convert relative path to absolute path without changing directory to that folder and using readlink -f ? ... (4 Replies)
Discussion started by: Sekhar419
4 Replies
WHICH(1)						      General Commands Manual							  WHICH(1)

NAME
which - shows the full path of (shell) commands. SYNOPSIS
which [options] [--] programname [...] DESCRIPTION
Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been exe- cuted when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1). This man page is generated from the file which.texinfo. OPTIONS
--all, -a Print all matching executables in PATH, not just the first. --read-alias, -i Read aliases from stdin, reporting matching ones on stdout. This is useful in combination with using an alias for which itself. For example alias which='alias | which -i'. --skip-alias Ignore option `--read-alias', if any. This is useful to explicity search for normal binaries, while using the `--read-alias' option in an alias or function for which. --read-functions Read shell function definitions from stdin, reporting matching ones on stdout. This is useful in combination with using a shell func- tion for which itself. For example: which() { declare -f | which --read-functions $@ } export -f which --skip-functions Ignore option `--read-functions', if any. This is useful to explicity search for normal binaries, while using the `--read-functions' option in an alias or function for which. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde and executables which reside in the HOME directory. --show-dot If a directory in PATH starts with a dot and a matching executable was found for that path, then print "./programname" rather than the full path. --show-tilde Output a tilde when a directory matches the HOME directory. This option is ignored when which is invoked as root. --tty-only Stop processing options on the right if not on tty. --version,-v,-V Print version information on standard output then exit successfully. --help Print usage information on standard output then exit successfully. RETURN VALUE
Which returns the number of failed arguments, or -1 when no `programname' was given. EXAMPLE
The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for which like the following: [ba]sh: which () { (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@ } export -f which [t]csh: alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' This will print the readable ~/ and ./ when starting which from your prompt, while still printing the full path when used from a script: > which q2 ~/bin/q2 > echo `which q2` /home/carlo/bin/q2 BUGS
The HOME directory is determined by looking for the HOME environment variable, which aborts when this variable doesn't exist. Which will consider two equivalent directories to be different when one of them contains a path with a symbolic link. AUTHOR
Carlo Wood <carlo@gnu.org> SEE ALSO
bash(1) WHICH(1)
All times are GMT -4. The time now is 02:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy