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 as below, or enter http://melksh.am/nnnn for individual articles
A161 - Web Application Deployment - Users and Groups [409] Functions and commands with dangerous names - (2005-08-11)
[431] File permissions of Linux and Unix systems - (2005-08-31)
[683] Supporting users on Linux and Unix - (2006-04-13)
[1592] Setting up a new user - Linux or Unix - (2008-03-26)
[1619] User and Group settings for Apache httpd web server - (2008-04-22)
[1650] Looking for files with certain characteristics (Linux / Unix) - (2008-05-22)
[1773] The Longest Possible Day - (2008-08-26)
[1902] sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2103] Ask the Tutor - Open Source forum - (2009-03-25)
[2117] Choosing a railway station fairly in PHP - (2009-04-04)
[2301] Mistaken identity? - (2009-07-22)
[2491] Root is root for a reason! - (2009-11-03)
[2639] su or su - ... what is the difference? - (2010-02-17)
[4045] Linux Web Server - User Roles, User Accounts, and shared administration - (2013-03-16)
A101 - Web Application Deployment - Linux -An Introduction For Users [73] vi - full circle - (2004-10-04)
[74] pushd and popd - (2004-10-05)
[152] Aladdin, or careful what you wish. - (2004-12-15)
[249] An easy way out - (2005-03-17)
[430] Linux commands - some basics - (2005-08-31)
[593] Finding where the disc space has gone - (2006-02-06)
[659] Web Application Components - (2006-03-28)
[679] More or less on the edge of the page - (2006-04-11)
[703] Copying files and preserving ownership - (2006-04-28)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[711] THE home directory or MY home directory - (2006-05-06)
[749] Cottage industry or production line data handling methods - (2006-06-07)
[984] Cardinal numbers and magic numbers - (2006-12-14)
[1012] Moving files between Windows / DOS and Linux / Unix - (2006-12-30)
[1013] Copy multiple files - confusing error message from cp - (2006-12-30)
[1068] ls -l report, Linux / Unix - types and permssions - (2007-02-06)
[1259] Where am I and how did I get here? - (2007-07-05)
[1287] Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02)
[1288] Linux run states, shell special commands, and directory structures - (2007-08-03)
[1366] awk - a powerful data extraction and manipulation tool - (2007-09-25)
[1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
[1438] Copy and paste / cut and paste and other vi techniques - (2007-11-20)
[1527] Selecting file names in a shell - one word or another - (2008-02-02)
[1651] ls command - favourite options - (2008-05-23)
[1764] Yank and Push - copy and move in vi - (2008-08-21)
[1803] FTP passive mode - a sometimes cure for upload hangs - (2008-09-20)
[1893] Some Linux and Unix tips - (2008-11-18)
[1897] Keeping on an even keel - (2008-11-21)
[2201] Running straight from the jar, but not from a tar - (2009-05-26)
[2299] How much space does my directory take - Linux - (2009-07-20)
[2300] What does x on a linux directory mean? - (2009-07-21)
[2479] Accidentally typed ci rather than vi? - (2009-10-27)
[2494] Making Linux Politically correct - (2009-11-06)
[2636] Linux - useful tips including history and file name completion - (2010-02-15)
[2831] Recording (a macro) in vi - (2010-06-27)
[3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
[3256] Displaying a directory or file system tree - Linux - (2011-04-22)
[3791] The Kernel, Shells and Daemons. Greek Gods in computing - (2012-07-01)
[3819] Packing a tar, jar or war file - best practise - (2012-07-26)
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