简体   繁体   中英

Bash script to add and remove users

I am a beginner in bash scripting and I have created a bash script to add users and remove users on Linux. But since I am facing some issues with the script not really major issues but would be helpful if anyone could point me how to improve the script and the worst practice I am doing the script would be helpful

however the problem I have noticed is that the script takes -a to add a user -d to remove user and -h to get help the -a flag as 2 optional arguments -p for password and -s for shell so the command would be

./useradd.sh -a user -p password -s shell

this works as expected and the user is added to the system but the problem I am facing is that if I do not enter -a flag and specify the -s and -p flag the script is just exited I want to show a clear idea to the user why it exited and there is so many such errors I am assuming but I have not tested it out so much any help would be appreciated, so here is my script

https://github.com/abhijith7025/bash_scripts/blob/master/useradd.sh

... I have created a bash script to add users and remove users on Linux.

You might want to reconsider this, given that Linux has separate commands for these two operations. There's a lot more to creating a user than there is is getting rid of one, so you may be asking for trouble trying to conjoin the two.

Anyway:

Your case statement has no "other" branch (" * ) "). This may be why you're getting no errors when "misusing" your script.

case $opt in 
  a )  
    ;; 
  d )  
    ;; 
  h )  
    ;; 
  * )
     usage 
     exit 1 
     ;; 
esac 

Other things to look out for:

user add is, perhaps, a poor name for a script that can delete users.

You allow a shell to be specified as an argument, but you don't check to see if that exists .

It's conventional for Linux commands to operate on a "thing" or list of "things" and for that operation to be qualified by options that [usually] precede the thing(s). Thus, your script might be better invoked like this:

./manage_user  -a  -p password  -s shell_exe  user1 
                |   |            |            |
                |   |            |            User name 
                |   |            Shell for User
                |   Password for User
                Add a User

./manage_user  -d  user2 
                |  |
                |  User name 
                Delete a User

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM