new type __user

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
Steven Armstrong 2011-03-15 16:47:40 +01:00
parent 8b614b274c
commit a9d0bfee16
5 changed files with 143 additions and 0 deletions

3
conf/type/__user/TODO Normal file
View File

@ -0,0 +1,3 @@
- gencode: compair new value with existing one in $__object/explorer/passwd, only change if nessecary
- delete users

View File

@ -0,0 +1,27 @@
#!/bin/sh
#
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# Get an existing users passwd entry.
#
name=$__object_id
getent passwd "$name" || true

44
conf/type/__user/gencode Executable file
View File

@ -0,0 +1,44 @@
#!/bin/sh
#
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# Manage users.
#
name="$__object_id"
command=
if grep -q "^$name" "$__object/explorer/passwd"; then
# user exists
command="usermod"
else
# user does not exist
command="useradd"
fi
set -- "$@"
cd "$__object/parameter"
for property in $(ls .); do
# TODO: compair new value with existing one in $__object/explorer/passwd, only change if nessecary
set -- "$@" "--$property" "$(cat "$property")"
done
echo $command $@ $name

62
conf/type/__user/man.text Normal file
View File

@ -0,0 +1,62 @@
cdist-type__user(7)
===================
Steven Armstrong <steven-cdist--@--armstrong.cc>
NAME
----
cdist-type__user - Manage users
DESCRIPTION
-----------
This cdist type allows you to create or modify users on the target.
REQUIRED PARAMETERS
-------------------
None.
OPTIONAL PARAMETERS
-------------------
comment::
see usermod(8)
home::
see above
gid::
see above
groups::
see above
password::
see above
shell::
see above
uid::
see above
EXAMPLES
--------
--------------------------------------------------------------------------------
# Create user account for foobar with operating system default settings
__user foobar
# Same but with a different shell
__user foobar --shell /bin/zsh
# Set explicit uid and home
__user foobar --uid 1001 --shell /bin/zsh --home /home/foobar
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
COPYING
-------
Copyright \(C) 2011 Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View File

@ -0,0 +1,7 @@
comment
home
gid
groups
password
shell
uid