zoukankan      html  css  js  c++  java
  • 烂泥:puppet添加带密码的用户

    本文由秀依林枫提供友情赞助,首发于烂泥行天下

    前一篇文章,我们介绍了有关puppet3.7的安装与配置,这篇文章我们再来介绍下如何利用puppet添加带密码的用户。

    要通过puppet添加带密码的用户,我们需要分以下几个步骤:

    1、查看user资源帮助

    2、user选项说明

    3、添加系统用户

    4、生成用户密码

    5、添加带密码的用户

    一、查看user资源帮助

    要通过puppet为系统添加用户,我们需要首先查看puppet如何添加用户,这个我们可以查看puppet的user资源帮助信息。如下:

    puppet describe user

    clip_image001

    puppet describe user命令可以查询user资源各个选项的帮助信息。

    除此之外,我们还要通过puppet resource user命令,查看user资源在puppet中的使用方法,以及puppet中给出的user的资源使用模版。如下:

    puppet resource user

    clip_image002

    二、user选项说明

    user资源的选项比较多,我们在此主要介绍几个常用的选项。

    ensure指定用户所处的状态,其值可以为:present、absent、role。其中present表示添加用户,absent表示删除用户。

    uid指定用户的UID。

    gid设置用户的组ID,可以是数字也可以是组名。

    groups设置用户的组名,只能是组名,不能是gid。

    name指定用户名。

    comment用户的描述。

    expiry用户使用期限。

    home设置用户的家目录,user资源默认不创建用户家目录。

    password指定用户的密码。

    shell指定用户登录的shell。

    system指定用户是否为系统用户,一般是小于500的UID用户。

    三、添加系统用户

    通过第一章节,我们知道了如何使用user资源,那么我们现在就添加一个用户。

    3.1 给centos添加用户

    在《烂泥:puppet3.7安装与配置》这篇文章中,我们提到puppet目前搭建在centos系统之上,所以我们先来给centos系统添加一个用户。

    在puppet master端编辑puppet的站点文件site.pp,如下:

    vi /etc/puppet/manifests/site.pp

    node default{

    user { 'ilanni':

    ensure => 'present',

    }}

    这条命令的作用是,创建用户ilanni。其中ensure后边的字段为present表示创建ilanni这个用户,如果ensure后边的字段为absent表示删除ilanni这个用户。

    clip_image003

    puppet master端配置完毕后,现在我们切换puppet agent端,执行同步命令。如下:

    cat /etc/system-release

    puppet agent --test --server s.ilanni.com

    clip_image004

    通过上图,我们可以很容易的看到agent端已经从master端同步到相关的命令。

    现在我们来查看,系统中是否已经创建ilanni这个用户。如下:

    cat /etc/passwd |grep ilanni

    cat /etc/group |grep ilanni

    ll /home/

    clip_image005

    通过上图,我们可以看出系统中已经创建ilanni这个用户。

    注意:通过上图,我们可以很明显的看出来。目前ilanni用户是没有家目录的。尽管passwd文件显示有其家目录,所以ilanni用户是不能登录到系统中的。

    以上操作都是centos系统,因为puppet具有跨平台的性能,所以我们下面就在ubuntu上执行puppet同步。

    3.2 给ubuntu添加用户

    要给ubuntu添加用户,我们需要先给ubuntu安装puppet客户端。

    有关在ubuntu上安装puppet客户端,我们可以查看puppet官网提供的帮助信息。如下:

    https://docs.puppetlabs.com/guides/install_puppet/install_debian_ubuntu.html

    wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb

    sudo dpkg -i puppetlabs-release-precise.deb

    sudo apt-get update

    apt-get -y install puppet

    clip_image006

    clip_image007

    clip_image008

    clip_image009

    clip_image010

    puppet客户端安装完毕后,我们来配置puppet和授权证书。有关puppet客户端的配置以及证书授权,可以参考《烂泥:puppet3.7安装与配置》这篇文章。

    具体操作,看如下截图:

    cat /etc/hosts

    puppet agent --server s.ilanni.com

    puppet cert --list

    puppet cert sign c1.ilanni.com

    clip_image011

    clip_image012

    clip_image013

    puppet配置完毕后,我们现在在ubuntu上执行同步命令。如下:

    puppet agent --test --server s.ilanni.com

    clip_image014

    查看是否创建ilanni用户,如下:

    clip_image015

    通过上图,我们可以很明显的看出puppet已经在ubuntu系统创建用户。

    3.3 给windows添加用户

    puppet也是支持windows系统,但是目前puppet只支持puppet客户端。

    有关puppet的windows系统相关帮助信息,我们也可以在puppet官网查看帮助,如下:

    https://docs.puppetlabs.com/guides/install_puppet/install_windows.html

    clip_image016

    clip_image017

    有关puppet客户端在windows系统的下载及安装,我们在此就不一一进行截图。

    puppet客户端安装完毕后,puppet的操作及配置与centos系统是一样的。如下:

    clip_image018

    clip_image019

    通过上图,我们可以很容易的看出windows系统中也创建ilanni这个用户。这充分体现了puppet 的跨平台性。

    注意:puppet for windows目前只支持file、user、group、scheduled_task(Windows专属资源类型)、package、service、exec、host,这个几个资源类型。

    四、生成用户密码

    Linux系统的密码都不是明文的,而是经过加密的。

    要生成Linux系统密码,我们有两种方法:一种是先新建一个用户然后对对该用户设置密码,最后取其对应的shadow文件第一个冒号与第二个冒号之间的内容。第二种是通过grub-md5-crypt进行生成。

    下面我们一一介绍下,本次我们测试的密码为ilanni123

    通过查看shadow文件的方法:

    useradd test

    passwd test

    cat /etc/shadow |grep test

    clip_image020

    上图中红色细线标记出来的部分,就是我们所需要的加密后的密码。

    通过grub-md5-crypt生成密码的方法:

    yum -y install grub

    grub-md5-crypt

    clip_image021

    clip_image022

    上图中红色细线标记出来的部分,就是我们所需要的加密后的密码。

    对比下以上两种方法,你会发现尽管密码是一样的,但是经过加密后的却不一样。

    对于以上两种方法,我比较倾向于第一种方法,查看shadow文件。因为这种方法不需要在安装其他软件。

    注意:windows系统添加用户密码时,使用的是明文,不需要加密。

    五、添加带密码的用户

    密码创建完毕后,我们现在来正式创建带密码的用户。

    其实很简单的,我们只需要把相关的选项写上去就行了。内容如下:

    cat site.pp

    user { 'ilanni':

    ensure => 'present',

    home => '/home/ilanni',

    shell => '/bin/bash',

    password => '$6$5YNwr11X$cfNwsJNrGBVg/yEE.sL1E.Ch5KoZrVrhmz4bOP8QnhWRBS/hCYNxP52EGdS38aSJhB8GBN60PSbcaNbcjofUt0',

    }

    file {'/home/ilanni':

    owner => ilanni,

    group => ilanni,

    mode => 700,

    ensure => directory;

    }

    注意:该命令中出现了file资源,主要目的是对/home/ilanni目录进行授权以及修改其所属用户及用户组。

    这样操作,是因为ilanni用户的家目录就是/home/ilanni,如果不对其进行授权以及修改其所属用户及用户组的话,ilanni是无法登录到系统的。

    clip_image023

    现在切换到puppet agent端,执行同步命令。如下:

    puppet agent --test --server s.ilanni.com

    clip_image024

    通过上图,我们可以很明显的看出agent端已经同步到相关命令。

    现在我们使用刚刚创建的用户登录系统,如下:

    whoami

    clip_image025

    通过上图,我们可以很明显的看到ilanni用户已经可以正常登录到系统中了。

    以上是在centos系统上进行操作的,下面我们在ubuntu系统上操作下。如下:

    clip_image026

    clip_image027

    通过上图,我们可以很明显的看到新创建的用户已经可以登录到系统中了。

    以上是在centos和ubuntu系统中进行操作的,可以看到创建的用户已经可以正常登录到系统了。

    windows系统与centos、ubuntu添加带密码的用户不同,那就是windows系统添加的用户密码是明文的。即puppet master端user资源的password选项使用明文。

    如下:

    cat /etc/puppet/manifests/site.pp

    node default{

    user { 'ilanni':

    ensure => 'present',

    password => 'ilanni123',

    } }

    clip_image028

    现在切换到windows端执行同步操作,如下:

    clip_image029

    clip_image030

    clip_image031

    通过上图我们可以看到,windows系统中puppet已经创建了ilanni用户,并且也可以正常登录系统了。

    到此有关通过puppet创建带密码的用户就结束了。

  • 相关阅读:
    安卓中像素px和dp的转换
    Android 使用Vector XML文件创建矢量图片资源,editText监听
    动态设置RecyclerView的高度
    EditText一些用法
    各种加密算法比较
    多线程--Task,等待用户输入AutoResetEvent
    AutoCAD二次开发——AutoCAD.NET API开发环境搭建
    Office(Excel、Word)二次开发——VSTO
    个人信息管理PIM——密码管理工具软件
    【矩阵计算】矩阵乘法其一:基础符号和算法
  • 原文地址:https://www.cnblogs.com/ilanni/p/4267215.html
Copyright © 2011-2022 走看看