Bash script to change user


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash script to change user
# 1  
Old 04-08-2020
Bash script to change user

So, I need to write bash file that will
1) get name of the user you want to switch to
2) check if there is such user
3) check length of entered name of user
4) and change user
My script looks like this
Code:
read $user_name
if ( ! [[ $(cat /etc/passwd | grep $user_name) ]] ) then echo "error. There is no such user" exit 1 fi
if (( $(expr length $user_name) >= 30 ))
then echo "error" exit 1 fi
sudo su $user_name 
exit 0

But if I enter existing user it shows error message
Where is my mistake?

Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 04-08-2020 at 01:20 PM.. Reason: code tags, please!
# 2  
Old 04-08-2020
you didn't provide the specific like OS, preferred shell etc...
just guessing - YMMV:
Code:
#!/bin/ksh

read $user_name
if [ $(grep $user_name /etc/password) ]; then
    :
else
   echo "error. There is no such user" 
   exit 1
fi
if [ ${#user_name} -ge 30 ]; then
    echo "error" 
    exit 1
fi
sudo su $user_name 
exit 0

# 3  
Old 04-08-2020
Quote:
Originally Posted by vgersh99
you didn't provide the specific like OS, preferred shell etc...
just guessing - YMMV:
Code:
.
.
.

 read $user_name
if [ $(grep $user_name /etc/password) ]; then
.
.
.

Shouldn't that be
Code:
read user_name                            # no "$", no expansion
if grep $user_name /etc/passwd; then ...  # no "[" (test) command, no "command substitution" - use grep's exit code immediately

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change directory within a bash shell script

Hi, I have been trying to execute the below command by changing directory and then copying contents of one directory to another by doing some file name manipulations in between. However this isnt working since as soon as the statement completes it goes back to the original folder. Can someone... (5 Replies)
Discussion started by: HikingLife
5 Replies

2. Shell Programming and Scripting

Is it possible to change paths inside a bash script?

i have some script with some paths inside it. The idea is to some files which is on desktop copy and move to another location. Problem is that inside script is similar to this: cp test1.zip /root/help/ because I allways have another zip files, does it possible to have some input which ask me... (18 Replies)
Discussion started by: tomislav91
18 Replies

3. Shell Programming and Scripting

Change user in script

i have a script that needs to be run as a specific user. lets call this specific user "skysmart". sure, i can check the username of the person running the script and if it isn't "skysmart", simply abort with a descriptive error message. but then, that would require the user to have to "sudo su... (6 Replies)
Discussion started by: SkySmart
6 Replies

4. UNIX for Dummies Questions & Answers

Change user passwords using shell script

Hi, I want to change the password of unix users on a number of servers.My plan was to ssh to all the servers in a shell script and use the passwd command. I tried to do so but everytime i run it i get this error. ssh -x -n -l user1 host passwd Changing password for "user1" 3004-709 Error... (3 Replies)
Discussion started by: poojabhat
3 Replies

5. UNIX for Dummies Questions & Answers

BASH: Change alias to script to add a task

Hi. I use an alias, "homeperm" as shorthand for curl -o. Since most of what I download via cUrl is graphic image files -- jpeg files -- I'd like to be able to change this alias to a script, or use it to invoke a function, which will not only download the file but date-stamp it using Exiv2 in... (4 Replies)
Discussion started by: SilversleevesX
4 Replies

6. Shell Programming and Scripting

Shell Script to change a user password using script

Hi Experts, I had tried to executes this script to change the user password through script: No lines in buffer #!/bin/ksh cat /etc/passwd | grep -v userid >> /tmp/pass.tmp1 cat /etc/passwd | grep userid >> /tmp/pass.tmp2 PASS1=`cat /tmp/pass.tmp2 | cut -d ":" -f2` PASS2=`q2w3e4r5` sed... (3 Replies)
Discussion started by: indrajit_renu
3 Replies

7. Shell Programming and Scripting

Unable to change environment variables in bash script

Hello! For the moment some settings in my .bashrc contain the password of my company's firewall, which is not a good idea. I would like to use the string "PASSWORD" set in .bashrc and a script that changes all appearances of "PASSWORD" in the environment variables by the actual password (which... (4 Replies)
Discussion started by: markolopa
4 Replies

8. Shell Programming and Scripting

How do i change to super user then revert back to ordinary user ,using shell script?

Hi all, I am trying to eject the cdrom from a livecd after certain stage... Now assuming that it is possible to eject,please consider my issue!!! The OS boots into a regular user by default...so i am unable to use the eject command to push out the drive... However if i try pfexec eject it... (3 Replies)
Discussion started by: wrapster
3 Replies

9. UNIX for Dummies Questions & Answers

change user through shell script

hi, my problem is that i am calling a script from my perl program. the script checks wether a particular process is running or not if the process is not running then it should start the process. the problem here is that the front end logs into backend with a user which does not have the... (0 Replies)
Discussion started by: raviraushanjha
0 Replies
Login or Register to Ask a Question