Remove addgroup/rmgroup -- they are completely replaced by pw(1).
Adduser/rmuser stay for now until we get a good user-friendly front-end for pw.
This commit is contained in:
parent
7a43952972
commit
c0156f51b7
@ -1,7 +1,7 @@
|
||||
# $Id$
|
||||
# $Id: Makefile,v 1.11 1997/02/22 16:01:14 peter Exp $
|
||||
|
||||
SCRIPTS= adduser.perl rmuser.perl addgroup.tcl rmgroup.sh
|
||||
MAN8= adduser.8 rmuser.8 addgroup.8 rmgroup.8
|
||||
SCRIPTS= adduser.perl rmuser.perl
|
||||
MAN8= adduser.8 rmuser.8
|
||||
|
||||
beforeinstall:
|
||||
.for script in ${SCRIPTS}
|
||||
|
@ -1,85 +0,0 @@
|
||||
.\" Copyright (c) 1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: addgroup.8,v 1.5 1997/02/22 16:01:15 peter Exp $
|
||||
|
||||
.Dd October 30, 1996
|
||||
.Dt ADDGROUP 8
|
||||
.Os FreeBSD 2.2
|
||||
.Sh NAME
|
||||
.Nm addgroup
|
||||
.Nd add a group or add users to a group
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl g Ar gid
|
||||
.Ar group
|
||||
.Op Ar user Ns , Ns Ar user,...
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
command adds a group to the
|
||||
.Xr group 5
|
||||
database.
|
||||
The optional
|
||||
.Ar user
|
||||
is added to the group membership list.
|
||||
The
|
||||
.Ar user
|
||||
argument may be a comma separated list of user names.
|
||||
If
|
||||
.Ar group
|
||||
already exists
|
||||
.Nm
|
||||
add
|
||||
.Ar user
|
||||
to the
|
||||
.Ar group .
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width Ds
|
||||
.It Sy -g gid
|
||||
Create new group with group id
|
||||
.Ar gid
|
||||
if possible or the next higher id that is available. Default gid is 1000.
|
||||
This option only applies to new groups.
|
||||
.El
|
||||
.Sh EXAMPLES
|
||||
.Pp
|
||||
$ addgroup -g 5000 cracau
|
||||
.Pp
|
||||
Add group `cracau' with group identification 5000 or higher.
|
||||
.Pp
|
||||
$ addgroup foo blech,bar
|
||||
.Pp
|
||||
Add user `blech' and user `bar' to group `foo'. Create group
|
||||
`foo' if it does not exist.
|
||||
.Sh SEE ALSO
|
||||
.Xr group 5 ,
|
||||
.Xr adduser 8 ,
|
||||
.Xr rmgroup 8 ,
|
||||
.Xr rmuser 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
command appeared in
|
||||
.Fx 2.2 .
|
@ -1,191 +0,0 @@
|
||||
#!/usr/bin/tclsh
|
||||
# Copyright (c) 1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
|
||||
# All rights reserved.
|
||||
#
|
||||
# addgroup - add a group or add users to a group
|
||||
#
|
||||
# addgroup [-g gid] group [user[,user,...]]
|
||||
#
|
||||
#
|
||||
# addgroup -g 2000 foobar
|
||||
#
|
||||
# Add group `foobar' to group database. Group id is 2000 if
|
||||
# possible or higher. Don't add group `foobar' if `foobar' is
|
||||
# already in group database.
|
||||
#
|
||||
#
|
||||
# addgroup foo blech,bar
|
||||
#
|
||||
# Add user `blech' and user `bar' to group `foo'. Create group
|
||||
# `foo' with default gid if not exists.
|
||||
#
|
||||
#
|
||||
# The option [-g gid] is only for new groups.
|
||||
#
|
||||
# see group(5)
|
||||
#
|
||||
# TODO:
|
||||
# file locking
|
||||
# signal handling
|
||||
# add only users who exist
|
||||
#
|
||||
# $Id$
|
||||
|
||||
# set global variables
|
||||
set etc_group "/etc/group"; #set etc_group "/usr/tmp/group"
|
||||
set gid_start 1000
|
||||
set gid_max 65500
|
||||
|
||||
proc putsErr {string} {
|
||||
if {[catch {open "/dev/stderr" w} stderr]} {
|
||||
puts $stderr
|
||||
} else {
|
||||
puts $stderr $string
|
||||
close $stderr
|
||||
}
|
||||
}
|
||||
|
||||
proc usage {} {
|
||||
putsErr {usage: addgroup group [user]}
|
||||
putsErr { addgroup [-g gid] group [user[,user,...]]}
|
||||
exit 1
|
||||
}
|
||||
|
||||
# check double user names: foo,bla,foo
|
||||
proc double_name {groupmembers} {
|
||||
set l [split $groupmembers ","]
|
||||
if {[llength $l] > 1} {
|
||||
for {set i 0} {$i < [llength $l]} {incr i} {
|
||||
if {[lsearch [lrange $l [expr $i + 1] end] \
|
||||
[lindex $l $i]] != -1} {
|
||||
putsErr "Double user name: [lindex $l $i]"
|
||||
return 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
# cleanup and die
|
||||
proc Err {string} {
|
||||
upvar etc_group_new new
|
||||
putsErr "$string"
|
||||
exec rm -f $new
|
||||
exit 1
|
||||
}
|
||||
|
||||
if {$argc < 1} { usage }
|
||||
|
||||
# check options
|
||||
switch -glob -- [lindex $argv 0] {
|
||||
-g* {
|
||||
if {$argc < 2} {
|
||||
putsErr "Missing group id"
|
||||
usage
|
||||
}
|
||||
set g [lindex $argv 1]
|
||||
if {$g < 100 || $g >= $gid_max} {
|
||||
putsErr "Group id out of range 100 < $g < $gid_max"
|
||||
usage
|
||||
}
|
||||
set gid_start $g
|
||||
incr argc -2
|
||||
set argv [lrange $argv 2 end]
|
||||
}
|
||||
-* { usage }
|
||||
}
|
||||
|
||||
if {$argc < 1} { usage }
|
||||
|
||||
# read group name
|
||||
set groupname [lindex $argv 0]
|
||||
if {[string match "*:*" $groupname] != 0} {
|
||||
putsErr "Colon are not allowed in group name: ``$groupname''"
|
||||
usage
|
||||
}
|
||||
|
||||
# read optional group members
|
||||
if {$argc == 2} {
|
||||
set groupmembers [lindex $argv 1]
|
||||
if {[string match "*:*" $groupmembers] != 0} {
|
||||
putsErr "Colon are not allowed in user names: ``$groupmembers''"
|
||||
usage
|
||||
}
|
||||
if {[double_name $groupmembers] != 0} {
|
||||
usage
|
||||
}
|
||||
} else {
|
||||
set groupmembers ""
|
||||
}
|
||||
|
||||
|
||||
# open /etc/group database
|
||||
if {[catch {open $etc_group r} db]} {
|
||||
Err $db
|
||||
}
|
||||
|
||||
# open temporary database
|
||||
set etc_group_new "$etc_group.new";
|
||||
if {[catch {open $etc_group_new w} db_new]} {
|
||||
Err $db_new
|
||||
}
|
||||
set done 0
|
||||
|
||||
while {[gets $db line] >= 0 } {
|
||||
if {$done > 0} {
|
||||
puts $db_new $line
|
||||
continue
|
||||
}
|
||||
|
||||
# ``group:passwd:gid:member''
|
||||
# 0 1 2 3
|
||||
set l [split $line ":"]
|
||||
set group([lindex $l 0]) [lindex $l 2]
|
||||
set gid([lindex $l 2]) [lindex $l 0]
|
||||
set member([lindex $l 0]) [lindex $l 3]
|
||||
|
||||
# found existing group
|
||||
if {[string compare [lindex $l 0] $groupname] == 0} {
|
||||
if {[string compare $groupmembers ""] == 0} {
|
||||
Err "Group exists: ``$groupname''"
|
||||
}
|
||||
|
||||
# add new group members
|
||||
set y [lindex $l 3]
|
||||
|
||||
# group with no group members?
|
||||
if {[string compare $y ""] == 0} {
|
||||
puts $db_new "$line$groupmembers"
|
||||
} else {
|
||||
if {[double_name "$y,$groupmembers"] != 0} {
|
||||
Err "\t$line,$groupmembers"
|
||||
} else {
|
||||
puts $db_new "$line,$groupmembers"
|
||||
}
|
||||
}
|
||||
set done 1
|
||||
} else {
|
||||
puts $db_new $line
|
||||
}
|
||||
}
|
||||
|
||||
# add a new group
|
||||
if {$done == 0} {
|
||||
for {set i $gid_start} {$i < $gid_max} {incr i} {
|
||||
if {[info exists gid($i)] == 0} {
|
||||
puts $db_new "$groupname:*:$i:$groupmembers"
|
||||
set done 1
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# no free group id
|
||||
if {$done == 0} {
|
||||
Err "Cannot find free group id: ``$groupname''"
|
||||
}
|
||||
}
|
||||
|
||||
close $db_new
|
||||
close $db
|
||||
exec cp -pf $etc_group "$etc_group.bak"
|
||||
exec mv -f $etc_group_new $etc_group
|
@ -1,54 +0,0 @@
|
||||
.\" Copyright (c) 1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: rmgroup.8,v 1.5 1997/02/22 16:01:19 peter Exp $
|
||||
|
||||
.Dd October 30, 1996
|
||||
.Dt RMGROUP 8
|
||||
.Os FreeBSD 2.2
|
||||
.Sh NAME
|
||||
.Nm rmgroup
|
||||
.Nd delete a Unix group
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Ar group
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
delete a Unix group from the
|
||||
.Xr group 5
|
||||
database.
|
||||
.Nm
|
||||
will not delete the system groups wheel, daemon, kmem, sys, tty,
|
||||
operator, bin, nogroup, nobody,
|
||||
or groups with gid 0.
|
||||
.Sh SEE ALSO
|
||||
.Xr group 5 ,
|
||||
.Xr addgroup 8 ,
|
||||
.Xr adduser 8 ,
|
||||
.Xr rmuser 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
command appeared in
|
||||
.Fx 2.2 .
|
@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Copyright (c) 1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
|
||||
# All rights reserved.
|
||||
#
|
||||
# rmgroup - delete a Unix group
|
||||
#
|
||||
# $Id$
|
||||
|
||||
PATH=/bin:/usr/bin; export PATH
|
||||
db=/etc/group
|
||||
|
||||
case "$1" in
|
||||
""|-*) echo "usage: rmgroup group"; exit 1;;
|
||||
wheel|daemon|kmem|sys|tty|operator|bin|nogroup|nobody)
|
||||
echo "Do not remove system group: $1"; exit 2;;
|
||||
*) group="$1";;
|
||||
esac
|
||||
|
||||
if egrep -q -- "^$group:" $db; then
|
||||
if egrep -q -- "^$group:\*:0:" $db; then
|
||||
echo "Do not remove group with gid 0: $group"
|
||||
exit 2
|
||||
fi
|
||||
egrep -v -- "^$group:" $db > $db.new &&
|
||||
cp -pf $db $db.bak &&
|
||||
mv -f $db.new $db
|
||||
else
|
||||
echo "Group \"$group\" does not exists in $db."; exit 1
|
||||
fi
|
Loading…
Reference in New Issue
Block a user