This is an important question to me. I have been using UNIX in some flavour
and on various systems since about 1984 and am more than able to throw my
oversized ego over the wall in the hopes of education and instruction.
I have recently run into a situation where I am unclear on what to do. I
can draw from years of experience but the UNIX way of doing things is to
look to a "standard" somewhere and then apply the rules. I do this because
I have trust that people far more intelligent and with greater wisdom than
I were responsible for those "standards". I do recall that I was recently
advised to "violently ignore" a Linux standard doc. Probably because it had
no regard for the UNIX standard. Thus I try to stay in the world of UNIX
when I am working with UNIX.
Now then, the point is this :
Do we need vipw to safely edit the /etc/passwd file ?
I have been told this is the case and the man page for vipw claims that
it performs some special actions :
$ uname -a
SunOS mars 5.11 snv_35 sun4u sparc SUNW,Ultra-2
$ man vipw
Reformatting page. Please Wait... done
SunOS/BSD Compatibility Package Commands vipw(1B)
NAME
vipw - edit the password file
SYNOPSIS
/usr/ucb/vipw
DESCRIPTION
vipw edits the password file while setting the appropriate
locks, and does any necessary processing after the password
file is unlocked. If the password file is already being
edited, then you will be told to try again later. The vi(1)
editor will be used unless the environment variable VISUAL
or EDITOR indicates an alternate editor.
vipw performs a number of consistency checks on the password
entry for root, and will not allow a password file with a
"mangled" root entry to be installed. It also checks the
/etc/shells file to verify the login shell for root.
The very end of the manpage also says this :
SEE ALSO
passwd(1), vi(1), passwd(4), attributes(5)
SunOS 5.10 Last change: 14 Sep 1992 1
That would be 1992 right ? The year that I totally stopped using the Apollo
systems and pretty much gave up years with DEC VMS and moved over to early
Solaris. As in 14 years ago.
Well, perhaps this manpage has not be touched in 14 years because "if its
not broke then don't fix it". I then look for this thing :
$ which vipw
no vipw in /usr/xpg4/bin /sbin /bin /usr/sbin /usr/bin /usr/dt/bin
/usr/openwin/bin /usr/ccs/bin
Note that my PATH has /usr/xpg4/bin first. My shell is :
$ echo $SHELL
/usr/xpg4/bin/sh
Yes, I am somewhat old fashioned and I still think that vi is pretty cool
and that emacs is a lifestyle choice. :-)
This system is a Solaris Neveda build 35 system complete with a 800G ZFS
pool and I can not find this vipw in my PATH. I look around and find it
here :
$ ls /usr/ucb/vipw
/usr/ucb/vipw
$ grep /usr/ucb/vipw /var/sadm/install/contents
/usr/ucb/vipw f none 0555 root bin 13172 23545 1141458063 SUNWscpu
$ pkginfo -l SUNWscpu
PKGINST: SUNWscpu
NAME: Source Compatibility, (Usr)
CATEGORY: system
ARCH: sparc
VERSION: 11.11,REV=2006.03.03.13.51
BASEDIR: /
VENDOR: Sun Microsystems, Inc.
DESC: utilities for user interface and source build compatibility
with SunOS 4.x
PSTAMP: juarez20060303140516
INSTDATE: Mar 26 2006 22:31
HOTLINE: Please contact your local service provider
STATUS: completely installed
FILES: 144 installed pathnames
8 shared pathnames
1 linked files
11 directories
64 executables
2763 blocks used (approx)
That does say "source build compatibility with SunOS 4.x" there right?
The source to this old guy is in usr/src/ucbcmd/vipw/vipw.c and it boldly
says :
/*
* Portions of this source code were derived from Berkeley 4.3 BSD
* under license from the Regents of the University of California.
*/
See the whole thing at :
http://polaris.blastwave.org/browser/on/trunk/usr/src/ucbcmd/vipw/vipw.c
Now I have seen a lot of tools come and go. There was admintool once upon a
time and it is nowhere to be found in the sources. This vipw thing seems to
be the UNIX standard way to edit the /etc/passwd file but it may have been
invented before the /etc/shadow file was a glimmer of a thought. Certainly
in the days of yellow pages and NIS and well before LDAP.
So I can not see a reason why a person needs vipw to edit the /etc/passwd
file and good old vi ( mine is /usr/xpg4/bin/vi ) will do the job nicely and
safely. The correct way may be simply to use usermod(1M) and not ever edit
/etc/passwd directly.
I recently adopted a "style" of doing things that may be "Linux like" and
thus a bad thing in the strict UNIX world. I began to put my root user in a
home directory of /root along with all of the dot files that get created for
the root user. Like the .sunw directory which seems to appear out of
nowhere. Certainly .profile and ( *gasp* ) .bash_history ! I really do not
want to see these things all over my / area. I was recently told this is a
very "bad thing" and that it harms the way vipw works. I never heard of
vipw, certainly not since Madonna was still making hit records, on vinyl.
Or am I mistaken here ? Old fashioned and confused ?
Thus I sit with coffee in hand and hope for some illumination please. If
not for my sake then to perhaps put some old ways of doing things to rest.
--
Dennis Clarke
_______________________________________________
opensolaris-discuss mailing list
[email protected]