04-10-2008
@prichard & Yac: Sorry, but i do not think it is that simple. To be useful such a script will have to deal with several error conditions. What you get out of "smitty user" is simply a wrapper for the "mkuser" command.
For instance assume the following situation: The script is called to create a user "foo" with UID 42. The following errors now could occur and should be reported back with different error levels from the script:
- a user "foo" exists already with uid=42 (=the user exists)
- a user "foo" exists with uid=43 (username already taken)
- a user "bar" exists with uid=42 (userid already taken)
- a user "foo" with uid=43 and a user "bar" with uid=42 exist already
How about other errors, like (unsorted): the script not being called by root, unable to create the home directory, the username is not a legal one, the uid is not legal, ..... (and i don't even mention the errors connected with the group memberships)
True, the last step would be to call "mkuser" and be done, but the necessary checks before look like an interesting programming task.
I hope this helps.
bakunin
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hello all:
I am new to UNIX and I am given the responsibility of administering a UNIX machine recently. The system is a IBM AIX 3.1. As a part of my duties I recently created some user accounts
using "smit". It looked as if everything went well. But, after creating the account, I logged into... (3 Replies)
Discussion started by: pdepa
3 Replies
2. AIX
Hi all,
I am a newbe to aix 5.2. I want to specify the characters used by users while creating user in aix like specifying the length of the password
should i use some sript for that if it is then please let me know how to do this
if yes give me the link for the scripts.
Thanks in advance
... (2 Replies)
Discussion started by: Satya Mishra
2 Replies
3. UNIX for Dummies Questions & Answers
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa (0 Replies)
Discussion started by: anuafs84
0 Replies
4. Shell Programming and Scripting
hi, I am trying to create a script in AIX (5.3 I think), then run it. here's what I have:
/home/me $ vi first.aliases
...
alias cdblah='cd /blah'
alias cdho='cd /ho'
alias ssr='sudo su - random'
~
...end of first.aliases
/home/me $ ./first.aliases
/home/me $ ssr
ksh: ssr: not found.... (2 Replies)
Discussion started by: heetertc
2 Replies
5. Shell Programming and Scripting
Hi ,
I want to write a shell script that can create oracle database user and grants permission to this user.
Thanks & Regards,
Deepak (4 Replies)
Discussion started by: Deepakjha
4 Replies
6. Shell Programming and Scripting
Hi,
I have been asked to create a ksh script that will search against an LDAP directory from various HP-UX, SUSE, and AIX 5.3 and 6.1 machines. The objective is to verify the boxes are successfully authenticating users from the LDAP store. This is something I've never done, and I could use... (0 Replies)
Discussion started by: tekster2
0 Replies
7. AIX
Hi All,
Currently our application is running on the server having AIX 5.3 OS.
What we intend to do is to run a shell script owned by another user and needs to be run as that particular user.
I was trying to create a shell script using the su command before running the actual script (which... (4 Replies)
Discussion started by: acoomer
4 Replies
8. Shell Programming and Scripting
I wonder whether someone can help me with what I'm trying to achieve
Basically, the objective is one script to create new user on more than 70 linux hosts if required.
Everything works apart from the highlighted part. It gave me an output
passwd: Unknown user name ''. when try to set... (35 Replies)
Discussion started by: fugeulu
35 Replies
9. Shell Programming and Scripting
Hi I'm trying to create a basic script that pauses for user input to verify a file name before generating the output.
I have numerous SSL certificate files which I am trying to determine the expiry date so what I'm trying to do is write a script so that is pauses to request the name of the .pem... (9 Replies)
Discussion started by: Buddyluv
9 Replies
10. UNIX for Advanced & Expert Users
Hi Experts,
Need your support
Redhat 6.5
I want to create a user with all(read, write, execute) privileges except that user should not be able to create any new user from his login
to perform any task. (10 Replies)
Discussion started by: as7951
10 Replies
SETUID(1) General Commands Manual SETUID(1)
NAME
setuid - run a command with a different uid.
SYNOPSIS
setuid username|uid command [ args ]
DESCRIPTION
Setuid changes user id, then executes the specified command. Unlike some versions of su(1), this program doesn't ever ask for a password
when executed with effective uid=root. This program doesn't change the environment; it only changes the uid and then uses execvp() to find
the command in the path, and execute it. (If the command is a script, execvp() passes the command name to /bin/sh for processing.)
For example,
setuid some_user $SHELL
can be used to start a shell running as another user.
Setuid is useful inside scripts that are being run by a setuid-root user -- such as a script invoked with super, so that the script can
execute some commands using the uid of the original user, instead of root. This allows unsafe commands (such as editors and pagers) to be
used in a non-root mode inside a super script. For example, an operator with permission to modify a certain protected_file could use a
super command that simply does:
cp protected_file temp_file
setuid $ORIG_USER ${EDITOR:-/bin/vi} temp_file
cp temp_file protected_file
(Note: don't use this example directly. If the temp_file can somehow be replaced by another user, as might be the case if it's kept in a
temporary directory, there will be a race condition in the time between editing the temporary file and copying it back to the protected
file.)
AUTHOR
Will Deich
local SETUID(1)