Sponsored Content
Top Forums Shell Programming and Scripting FreeBSD new user login script Post 302570594 by Corona688 on Thursday 3rd of November 2011 06:22:06 PM
Old 11-03-2011
I'm hoping you mean 'hacker' in the good sense. I know, I know -- corruption of a perfectly good term, but that's something beyond our control.

If you don't have sudo installed, install it, you'll need it.

What shells do you have available?

The process I'd envision is
1) User logs into the 'new' account. Instead of running a shell, their account is configured(via usermod) to run a shell script as its login shell like this:

Code:
while [ -z "$NEWUSER" ]
do
        printf "New username: " >&2
        read NEWUSER || exit 1
        if ! echo "$NEWUSER" | grep "^[a-z_][a-z0-9_-]*$" > /dev/null
        then
                echo "Usernames must be a-z_-" >&2
                NEWUSER=""
                continue
        fi

        if grep "^${NEWUSER}:" /etc/passwd > /dev/null
        then
                echo "${NEWUSER} already exists" >&2
                NEWUSER=""
                continue
        fi
done

exec sudo /usr/local/sbin/newuser.sh "$NEWUSER"

And the contents of /usr/local/sbin/newuser.sh:

Code:
#!/bin/sh

useradd "$1"

passwd "$1" || userdel "$1"

and you'd need this line in sudoers:

Code:
new ALL=NOPASSWD:  /usr/local/sbin/newuser.sh

which should permit the new user to run /usr/local/sbin/newuser.sh as root but nothing else.

This code may not be perfect or complete.

Last edited by Corona688; 11-03-2011 at 07:29 PM..
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

user login script question

hi all, what file(s) needs to be changed and in what way in order to do the following: when user A logs onto freebsd 4.8 automaticaly he needs to start up a script a made that executes: sets ltp0 in polling mode, executes tn5250 keyboard mapping starts tn5250 with the correct parameters. ... (2 Replies)
Discussion started by: termiEEE
2 Replies

2. UNIX for Dummies Questions & Answers

freebsd auto login user at boot / i'm stuck

I run freebsd 4.8 and try to find the way or 'a' way to log in a certain user i created automaticaly at pc boot. I have searched the net, the manuals, but found nothing... could anyone please get me going by showing me an example or what file(s) i need to take a look at. i am not working... (6 Replies)
Discussion started by: termiEEE
6 Replies

3. Shell Programming and Scripting

User Login Monitor Script

I need some help writing a script that I can run as a cron job. I want this script to be able find all the users that have logged on to this machine since the last time the script was run (plan to run daily at 11:30pm, so everyone who logged on that day) and email me who logged on, and when. ... (2 Replies)
Discussion started by: Drewser
2 Replies

4. Shell Programming and Scripting

SSH login with user name and script.

I want to login to server using ssh or telnet and execute one command then exit to the shell Please let me know how to write script for this? (1 Reply)
Discussion started by: svenkatareddy
1 Replies

5. Shell Programming and Scripting

Running script from other user rather than login user

Hi, My requirement is that i am login from ROOT in a script but when any command is coming which is logging to sqlplus then i have to run it with normal user as only normal user have permission to connect to sqlplus . i tried making a script like this : #! /bin/ksh su -... (3 Replies)
Discussion started by: rawatds
3 Replies

6. Shell Programming and Scripting

Run script at first login user (only)

Hi all, I would need a script to run only at the first login of a newly created user. And at the first time only. I did some googlework but unfortunatly... I made up it possibly had something to do with the bashrc file. This script is some kind of info for the user ; with the possiblity to... (1 Reply)
Discussion started by: laurens
1 Replies

7. UNIX for Dummies Questions & Answers

User login monitoring script.

Hi guys, I'm need to write a script that runs an infinite loop to check users that login/out of a server. I'm just not sure about the syntax with while loops and whether or not you can include a nested if-statement? Cheers Spaulds (2 Replies)
Discussion started by: Spaulds
2 Replies

8. Emergency UNIX and Linux Support

Limiting a user to a script upon login, nothing else.

Hi there, I have a Debian 5.0 server that my company uses for deployment testing. This server needs to be accessed by NOC people that have no NIX knowledge whatsoever. I am creating a bash script for a menu-based command interface for the commands they need to run on their testing routines,... (21 Replies)
Discussion started by: ppucci
21 Replies

9. Shell Programming and Scripting

How to Login as another user through Shell script from current user[Not Root]

Hi Every body, I would need a shell script program to login as different user and perform some copy commands in the script. example: Supppose ora_toms is the active user ora_toms should be able to run a script where user: ftptomsp pass: XXX should login through and run the commands ... (9 Replies)
Discussion started by: ujjwal27
9 Replies

10. Shell Programming and Scripting

Login into another user from user inside script

now i have logged in username : ramesh in unix Now i have to created script file to login into another user and have run a command inside that user and after executing the command i have to exit from that user. Inside script, i have to login into su - ram along with password : haihow and have to... (4 Replies)
Discussion started by: rammm
4 Replies
userdel(8)						      System Manager's Manual							userdel(8)

NAME
userdel - Deletes a user login account from the system. SYNOPSIS
SVE: /usr/sbin/userdel [-r] login POSIX: /usr/sbin/userdel [-D] [-r] [-R] [-t type] [-P] [-x extended_option] login OPTIONS
This option is used under enhanced security to delete the user account from /etc/passwd file and the enhanced security protected passwd DB. Removes a user's home directory from the system. This directory must exist and must be owned by the user whose login account is being deleted. When enhanced security is enabled, retires the account without deleting entries from the databases or removing home directories. Removes a local plus (+) or local minus (-) NIS user from the user database. The value of the type parameter can be + or -. Removes PC accounts only, without deleting the user's existing UNIX account. The following extended_option attributes are available: Indicates whether the account is distributed. The value of the distributed=n attribute can be 0 or 1. If set to 0, the account is deleted from the local database. If set to 1, the account is deleted from the NIS master database on the running system. When this attribute is set, the local attribute is set to the opposite value. Indicates whether or not the account is local. The value of the local=n attribute can be 0 or 1. If set to 1, the account is deleted from the local database. If set to 0, the account information is deleted from the NIS master database. When this attribute is set, the distributed attribute is set to the opposite value. The value of the pc_synchronize=n attribute can be 0 or 1. If set to 1, both PC and UNIX accounts will be affected by delete operations. If set to 0, only UNIX accounts will be affected by delete operations and the PC account will be unaffected. Specifies an existing login account on the system. DESCRIPTION
The userdel command is part of a set of command-line interfaces (CLI) that are used to create and administer user accounts on the system. When The Advanced Server for UNIX (ASDU) is installed and running, the userdel command can also be used to administer PC accounts. Accounts can also be administered with the /usr/bin/X11/dxaccounts graphical user interface (GUI), although the extended options are only available from the CLI utilities such as useradd and usermod. Different options are available depending on how the local system is configured: In the default UNIX environment, user account management is compliant with the IEEE POSIX Draft P13873.3 standard. If enhanced (C2) security is configured, additional options and extended options can be used. The CLI is backwards-compatible, so all existing local scripts will function. However, you should consider testing your account management scripts before using them. The userdel command deletes a user's login account from the system and makes the login-related changes in the appropriate system files determined by the current level of security. Additionally, the files and directories contained under the user's home directory can be removed from the system. With the -x option, the system administrator can specify whether the user login account to be deleted is local or whether it resides in the NIS master database. If the -x option is not specified, the user login account is deleted from the appropriate database as specified by the system defaults. The default behavior on the system for the userdel command is distributed=0 and local=1. With these values, the system deletes the group from the local database by default. Setting the distributed= and local= attributes to the same value (for example, distributed=0 and local=0) produces an error. RESTRICTIONS
Note the following restriction that applies to this release: You must have superuser privilege to execute this command EXIT STATUS
The userdel command exits with one of the following values: Success. Failure. Warning. EXAMPLES
The following example removes the local plus (+) user, newuser1: % userdel -t + newuser1 The following example removes the NIS user, newuser4, from the NIS master database: % userdel -x distributed=1 newuser4 The following example deletes the user, xyz, and removes the user's home directory: % userdel -r xyz The following example deletes the UNIX account for studentB, removing the home directory and its corresponding PC account. % userdel -r -x pc_synchronize=1 studentB FILES
The userdel command operates on files for the specific level of system security. SEE ALSO
Commands: groupadd(8), groupdel(8), groupmod(8), useradd(8), usermod(8), passwd(1), Manuals: System Administration, Security, Advanced Server for UNIX Installation and Administration userdel(8)
All times are GMT -4. The time now is 04:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy