Always use su with minus. And where do programs come from?
When you're using the
su command to do systems admin work as route, you should always add the
- options (minus sign on its own) to start a new root environment too. This means that the PATH that executable files are found from is replaced (amongst other things) - so you can find things like
ifconfig automatically, and you'll not get caught by any 'Trojans' set up for you within the account from which you have su'd.
Here's an example of the problem - I've set up a nasty script called "ls" in the current user's home directory, and altered his path to look at current directory first:
[trainee@easterton ~]$ su
Password:
[root@easterton trainee]# ls
Your disc has been scrubbed clean!
[root@easterton trainee]#
oops! Run with
su - there's more to do as you have to change back to the source directory - BUT you don't get caught by the nasty
ls script (which was just an echo for my demo!)
[trainee@easterton ~]$ pwd
/home/trainee
[trainee@easterton ~]$ su -
Password:
[root@easterton ~]# cd ~trainee
[root@easterton trainee]# ls
build Desktop transwilts2009.odt transwilts2009.pdf
dbn ls transwilts_2009.pdf website
[root@easterton trainee]#

This diagram shows where executable files are commonly loaded from on a Linux / Unix system. Directories called
bin are for regular user accessible programs, with those which are intended for the system administrator being in
sbin. There's nothing to stop a regular user who knows about a system command from running it, but most of these programs will reject requests for anything more that information enquiries if they're run by none-root users.
Why 3 directories of each name? Those at the top level are programs which are needed early in the system boot up procedure. Those in
/usr are the majority of operating systems commands (not needed at early boot stage) and those in
/usr/local - if any - will be the locally added / installed extra software that your local admin has added to the base system.
(written 2009-05-27)
Associated topics are indexed under
A161 - Web Application Deployment - Users and Groups [2639] su or su - ... what is the difference? - (2010-02-17)
[2491] Root is root for a reason! - (2009-11-03)
[2301] Mistaken identity? - (2009-07-22)
[2117] Choosing a railway station fairly in PHP - (2009-04-04)
[2103] Ask the Tutor - Open Source forum - (2009-03-25)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[1902] sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23)
[1773] The Longest Possible Day - (2008-08-26)
[1650] Looking for files with certain characteristics (Linux / Unix) - (2008-05-22)
[1619] User and Group settings for Apache httpd web server - (2008-04-22)
[1592] Setting up a new user - Linux or Unix - (2008-03-26)
[683] Supporting users on Linux and Unix - (2006-04-13)
[431] File permissions of Linux and Unix systems - (2005-08-31)
[409] Functions and commands with dangerous names - (2005-08-11)
A101 - Web Application Deployment - Linux -An Introduction For Users [3256] Displaying a directory or file system tree - Linux - (2011-04-22)
[3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
[2831] Recording (a macro) in vi - (2010-06-27)
[2636] Linux - useful tips including history and file name completion - (2010-02-15)
[2494] Making Linux Politically correct - (2009-11-06)
[2479] Accidentally typed ci rather than vi? - (2009-10-27)
[2300] What does x on a linux directory mean? - (2009-07-21)
[2299] How much space does my directory take - Linux - (2009-07-20)
[2201] Running straight from the jar, but not from a tar - (2009-05-26)
[1897] Keeping on an even keel - (2008-11-21)
[1893] Some Linux and Unix tips - (2008-11-18)
[1803] FTP passive mode - a sometimes cure for upload hangs - (2008-09-20)
[1764] Yank and Push - copy and move in vi - (2008-08-21)
[1651] ls command - favourite options - (2008-05-23)
[1527] Selecting file names in a shell - one word or another - (2008-02-02)
[1438] Copy and paste / cut and paste and other vi techniques - (2007-11-20)
[1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
[1366] awk - a powerful data extraction and manipulation tool - (2007-09-25)
[1288] Linux run states, shell special commands, and directory structures - (2007-08-03)
[1287] Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02)
[1259] Where am I and how did I get here? - (2007-07-05)
[1068] ls -l report, Linux / Unix - types and permssions - (2007-02-06)
[1013] Copy multiple files - confusing error message from cp - (2006-12-30)
[1012] Moving files between Windows / DOS and Linux / Unix - (2006-12-30)
[984] Cardinal numbers and magic numbers - (2006-12-14)
[749] Cottage industry or production line data handling methods - (2006-06-07)
[711] THE home directory or MY home directory - (2006-05-06)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[703] Copying files and preserving ownership - (2006-04-28)
[679] More or less on the edge of the page - (2006-04-11)
[659] Web Application Components - (2006-03-28)
[593] Finding where the disc space has gone - (2006-02-06)
[430] Linux commands - some basics - (2005-08-31)
[249] An easy way out - (2005-03-17)
[152] Aladdin, or careful what you wish. - (2004-12-15)
[74] pushd and popd - (2004-10-05)
[73] vi - full circle - (2004-10-04)
Some other Articles
North Antrim Coast - a jewel thats well worth a visitSpot the odd one outAn evening walk in CarrickfergusImages in a database? How big is a database? (MySQL)Always use su with minus. And where do programs come from?Bright ColoursEngland, Scotland, Northern IrelandImproving the structure of your early PHP programsOn the road, at a Service area thats a cut above the others