三.用户和组

用户资源user

该资源类型用于管理系统用户,所以缺少一些特性来管理普通用户。利用 符合POSIX API标准的puppet自带的私有工具来进行用户和组管理, puppet不会直接修改/etc/passwd文件。

参数

Allowdupe:是否允许存在同样的用户,可以设置false true

Auths:指定用户拥有的认证方式,多个认证方式可以用数组列出,依赖manages_solaris_rbac

Comment:对该用户的描述,通常是用户的全名

Ensur:最基本的参数,决定该用户存在与否,可以设置的值是present,absent,角色.

Gid:该用户的主用户组的gid.可以用数字或者组名字

Groups:指定该用户属于那些组的成员,主组不必要在这里列出,多个组用数组列出,例如['gorup1','group2']

Home:用户的home目录,这个目录需要预先存在.

Managehome:管理用户的时候是否管理用户的home目录,可以设置的值是true,false

Name:该资源的namevar, 用户名,建议长度小于8,用字母开头

Passwor:用户的密码,具体用什么加密方式由操作系统决定, 需要manages_passwords 特性. 如果密码里面带有$符合,用单引号引起来.

Provider:指定用provider,用什么命令来执行用户操作,可用的provider:

Shell:用户的shell,指定的 shell必须有可执行权限.

Uid:用户的uid,必须设置成数字,对于新用户,如果没有指定uid,系统将会自动分配uid,因为不同的操作系统分配算法不一样,因此不推荐不设置uid.

 

参数 

Allowdupe:是否允许两个相同的gid, 这个参数不能在freebsd上面使用, 可以设置的值是false , true

Ensure:创建或者删除组,设置absent就删除该组,设置 present就创建该组

Gid:该组的 gid,必须是数字,如果不指定,将自动分配 ,不同的系统自动分配的算法不一样,不推荐使用自动分配gid.

Members:该组的成员

Name:该用户组的名字,这是这个资源的namevar

Provider:指定用什么工具作为provider,通常你不需要手工指定,puppet会自己寻找 .

       用户和组测试用例

  1. group{"hmyt"
  2.  
  3.               gid=>1001
  4.  
  5.               ensure=>present, 
  6.  
  7.           
  8.  
  9.           } 
  10.  
  11.           
  12.  
  13.           user {"hmyt"
  14.  
  15.               uid=>1001
  16.  
  17.               gid=>1001
  18.  
  19.               home=>"/home/hmyt"
  20.  
  21.               shell=>"/bin/bash"
  22.  
  23.               password=>"123456"
  24.  
  25.           }   

       客户端测试结果

  1. [root@client1 ~]# puppetd   --server  master.puppet --test 
  2.  
  3. notice: Ignoring --listen on onetime run 
  4.  
  5. info: Caching catalog for client1.centos 
  6.  
  7. info: Applying configuration version '1329967264' 
  8.  
  9. notice: Finished catalog run in 0.02 seconds 

       检查客户端的用户和组

  1. [root@client1 ~]# more /etc/group|grep hmyt 
  2.  
  3. hmyt:x:1001
  4.  
  5. [root@client1 ~]# more /etc/passwd|grep hmyt 
  6.  
  7. hmyt:x:1001:1001::/home/hmyt:/bin/bash