Why do people fear writing passwords in the command line?
The history file is located in ~/.history
, so it's available only to the user who executed the commands (and root).
Why do people fear writing passwords in the command line?
The history file is located in ~/.history
, so it's available only to the user who executed the commands (and root).
Command lines are not just available in history. They are also available, for example, in the output of ps -ocmd
or through the /proc
filesystem. (/proc/<pid>/cmdline
) which is where ps
reads them.
Also, users' home directories are often world- or group- readable; you can make the history file only user-readable, but that might not survive deletion and recreation.
Passwords on the command line are just a bad idea all the way around. In addition to the methods discussed in the other answers:
ps
)User commands can show up in these locations as well:
In addition user's commands can also show up when users login between systems, so in general it's a bad practice and should be avoided at all times.
The problem is the visibility of the parameters (to other users in most cases, even for root) while the command is running. See the output of
ps -eo pid,user,args
export mypass=secret
and you usea_command --password=$mypass
, you'll seesecret
inps
table. – Luc M Jun 08 '13 at 21:12