This is a small tip when dealing with interactive shell scripting on how to hide sensitive information displaying on the terminal. Scenario: Suppose you want to connect some site using username and password in a shell script, you can use read command to take input from a user. By default whatever you type read command will print in plain text on the screen. This is a security issue, and we have to hide that sensitive information not to write on the screen. Example: My code in my script is read -p "Please provide bitbucket username(Ex. surendra.anne): " userName read -p "Please provide bitbucket password: " passWord Output when executing the entire script: [email protected]:~$ bash push_fpga.sh Please provide bitbucket username(Ex. surendra.anne): surendra.anne Please provide bitbucket password: XYZabc123 --2017-03-21 12:50:30-- https://bitbucket.org/linuxnix/sw_daffy/downloads/mypackage.tar.gz Resolving bitbucket.org (bitbucket.org)... 126.96.36.199, 188.8.131.52, 184.108.40.206, ... Connecting to bitbucket.org (bitbucket.org)|220.127.116.11|:443... connected. HTTP request sent, awaiting response... 401 Unauthorized Authentication selected: Basic realm="Bitbucket.org HTTP" Reusing existing connection to bitbucket.org:443. HTTP request sent, awaiting response... 302 Found Location: https://bbuseruploads.s3.amazonaws.com/adsfawdfas/downloads/qerqdfasdf/mypackage.tar.gz?Signature=nGupkqNe8Da9ZfGJMfrBN5ljAq8%3D&Expires=1490062832&AWSAccessKeyId=qerzxcqew&versionId=Hwf0V2olr_g.7OGBuhnLJxy8aYEG4bBy&response-content-disposition=attachment%3B%20filename%3D%22mypackage.tar.gz%22 [following] --2017-03-21 12:50:32-- https://bbuseruploads.s3.amazonaws.com/adsfawdfas/downloads/qerqdfasdf/mypackage.tar.gz?Signature=nGupkqNe8Da9ZfGJMfrBN5ljAq8%3D&Expires=1490062832&AWSAccessKeyId=qerzxcqew&versionId=Hwf0V2olr_g.7OGBuhnLJxy8aYEG4bBy&response-content-disposition=attachment%3B%20filename%3D%22mypackage.tar.gz%22 Resolving bbuseruploads.s3.amazonaws.com (bbuseruploads.s3.amazonaws.com)... 18.104.22.168 Connecting to bbuseruploads.s3.amazonaws.com (bbuseruploads.s3.amazonaws.com)|22.214.171.124|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1494336 (1.4M) [application/x-tar] Saving to: '/tmp/mypackage.tar.gz’ mypackage.tar.gz 100%[=======================================================>] 1.42M 231KB/s in 7.3s 2017-03-21 12:50:41 (201 KB/s) - '/tmp/mypackage.tar.gz’ saved [1494336/1494336] If you observe the password(XYZabc123) for my account is plain text. This can be avoided using the silent option with the...Read More
Author: Surendra Anne
Hello to all from Linux Juggernaut team. We are excited to introduce our multiple WhatsApp groups related to IT infrastructure today. Please join in one or more groups which are appropriate for you. The system administration field had moved towards devops field a couple of years back. Devops field is the one which is changing quickly with the advent of Cloud technologies and large open source deployments across IT. One person can not cope up with so much new stuff happening in Devops field. The intention of these groups are for information consumption such as Sharing knowledge and issues you face. Learning...Read More
This is one of our post in the “Python function of the day” series which explains about python inbuilt functions. Today we will learn about cmp(). cmp() : The method cmp() compares two datatypes. The data types supported are strings, lists, tuples, sets, dicts, etc. If elements are of the same type, perform the compare and return the result. If elements are different types, check to see if they are numbers. If numbers, perform numeric coercion and compare. If we exhaust in comparing elements, the result is a tie, meaning that 0 is returned. cmp() function will do below comparison in one go. object1 < object2, if object1 is less then the result is -1 object1 > object2, if object2 is less, then the result is 1 object1 = object2, , if object1 and object2 are same then the result is 0 Python cmp() Syntax cmp(object1, object2) Note for python3: Python3 do not have cmp() function anymore. Use below code to implement cmp in your code. ((str1 > str2) - (str1 < str2)) Let us see some examples on cmp function Example1: Compare two strings >> str1='abc' >>> str2='xyz' >>> cmp(str1,str2) -1 Example2: Compare two lists >> list1=[23,45,86] >>> list2=[98,23,23] >>> cmp(list1,list2) -1 >>> cmp(list2,list1) 1 Example3: compare two tuples >> T = ('Bill', 'Carlos', 'Warren', 'Amancio', 'Larry', 'Charles') >>> t = ('Red', 'Purple', 'Green', 'Yellow', 'Black', 'Blue') >>> cmp(T,...Read More
Get more stuff like this
in your inbox
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.
we respect your privacy and take protecting it seriously
Linux Shell scripting: Hide User input on terminalMar 21, 2017 | Basics
My name is Surendra Kumar Anne. I hail from Vijayawada which is cultural capital of south Indian state of Andhra Pradesh. I am a Linux evangelist who believes in Hard work, A down to earth person, Likes to share knowledge with others, Loves dogs, Likes photography. At present I work at Bank of America as Sr. Analyst Systems and Administration. You can contact me at surendra (@) linuxnix dot com.