saltstack之用户管理

在集中化管理中,用户管理是重要的。

下面是我自己总结salt对用户管理的文档。

一、添加单个用户:

生成密码

openssl passwd -1
-salt ‘linwangyi‘

user.users文件

[[email protected] salt]# cat user/useradd.sls

linwangyi:

user.present:

-fullname: linwangyi D

- shell:/bin/bash

-password: ‘$1$linwangy$PMII.NL0igptfGBV0PtxI1‘

- home:/home/linwangyi

- uid: 501

- gid: 501

- groups:

-linwangyi

- require:

- group:linwangyi

group.present:

- gid: 501

top.sls文件:

[[email protected]]# cat top.sls

base:

‘*‘:

- soft_install.nginx

- soft_install.mysql

- soft_install.php

- soft_install.tomcat

- user.useradd

- user.users

- user.userpasswd

- user.userdel

- user.addsudo

- user.addgroup

- user.delgroup

运行结果:

因为有多个.sls文件,如果想单独运行某个的话

salt ‘*‘state.sls xxx

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.useradd

192.168.2.99:

----------

ID: linwangyi

Function: group.present

Result: True

Comment: Added group linwangyi

Changes:

----------

省略

uid:

501

workphone:

Summary

------------

Succeeded: 2

Failed:    0

------------

Total:     2

其它参数:

请参考官方其它参数:http://www.saltstack.cn/projects/cssug-kb/wiki/Managing_user_with_salt

user.present: 确保指定的账户名存在,并指定其对应的属性. 这些属性包括如下内容:

name: 指定需要管理的账户名.

uid: 指定uid, 如果不设置将配自动分配下一个有效的uid.

gid: 指定默认的组id(group id)

gid_from_name: 如果设置为_True_,默认的组id将自动设置为和本用户同名的组id

groups: 分配给该用户的组列表(a list of groups). 如果组在minion上不存在,则本state会报错. 如果设置会空,将会删除本用户所属的除了默认组之外的其他组

optional_groups: 分配给用户的组列表。 如果组在minion上不存在,则state会忽略它.

home: 关于用户的家目录(home directory).

password: 设置用户hash之后的密码.

enforce_password: 当设置为_False_时,如果设置的_password_与用户原密码不同,将保持原密码不做更改.如果没有设置_password_选项,该选项将自动忽略掉.

shell: 指定用户的login shell。 默认将设置为系统默认shell。

unique: UID唯一,默认为True.

system: 从_FIRST_SYSTEM_UID_和_LAST_SYSTEM_UID_间选择一个随机的UID.

二、批量添加用户:

如果不需要将用户添加到同一组中,可以删除组相关的信息,如果没有该组,可以先添加组:

users.sls文件:

[[email protected] salt]# cat user/users.sls

{% set users = [‘jerry‘,‘tom‘,‘sunday‘] %}

{% for user in users %}

{{ user }}:

user.present:

- shell: /bin/bash

- home: /home/{{ user }}

- password: ‘$1$linwangy$PMII.NL0igptfGBV0PtxI1‘

- gid: 501

- groups:

- linwangyi

- require:

- group: linwangyi

{% endfor %}

运行结果:

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.users

192.168.2.99:

----------

ID: jerry

Function: user.present

Result: True

Comment: New user jerry created

Changes:

----------

fullname:

省略

Summary

------------

Succeeded: 3

Failed:    0

------------

Total:     3

三、批量修改用户:

生成密码

[[email protected] salt]# openssl passwd -1

Password:

Verifying - Password:

$1$h6niwjpG$2nAnRib36QUr2wnfYXC4u0

userpasswd.sls文件:

[[email protected] salt]# cat user/userpasswd.sls

{% set users = [‘jerry‘,‘tom‘,‘sunday‘] %}

{% for user in users %}

{{ user }}:

user.present:

- shell: /bin/bash

- password: ‘$1$h6niwjpG$2nAnRib36QUr2wnfYXC4u0‘

{% endfor %}

运行结果:

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.userpasswd

192.168.2.99:

----------

ID: jerry

Function: user.present

Result: True

Comment: Updated user jerry

Changes:

----------

passwd:

$1$h6niwjpG$2nAnRib36QUr2wnfYXC4u0

----------

省略

------------

Succeeded: 3

Failed:    0

------------

Total:     3

(注明:还可以修改用户其它参数。)

四、批量删除用户:

userdel.sls文件:

[[email protected] salt]# cat user/userdel.sls

{% set users = [‘jerry‘,‘tom‘,‘sunday‘] %}

{% for user in users %}

{{ user }}:

user.present:

- purge: True  #设置清除用户的文件(家目录)

- force: True  #如果用户当前已登录,则absent state会失败. 设置force选项为True时,就算用户当前处于登录状态也会删除本用户.

{% endfor %}

运行结果:

查看用户登录:(有一个将删除的用户登录)

[[email protected] salt]# salt ‘192.168.2.99‘ status.w

192.168.2.99:

省略

----------

- idle:

18:57

- jcpu:

2:20

- login:

192.168.2.29

- pcpu:

0.03s

- tty:

pts/0

- user:

sunday

- what:

0.03s -bash

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.userdel

192.168.2.99:

----------

省略

----------

ID: sunday

Function: user.absent

Result: True

Comment: Removed user sunday

Changes:

----------

sunday:

removed

Summary

------------

Succeeded: 3

Failed:    0

------------

Total:     3

[[email protected] salt]# salt ‘192.168.2.99‘ status.w

192.168.2.99:

----------

- idle:

15:51

- jcpu:

1:13

- login:

-

- pcpu:

0.11s

- tty:

tty1

- user:

root

- what:

0.11s -bash

查看时Sunday用户已经退出,不过登录用户登录在系统中,还可以对系统操作。

五、添加sudo用户:

addsudo.sls文件:

[[email protected] salt]# cat user/addsudo.sls

/etc/sudoers:

file.append:

- text:

- "OPER_SUPER      ALL = KILL,SU,ROOT"

- "User_Alias OPER_SUPER=linwangyi"

- "Cmnd_Alias ROOT=/bin/su"

- "OPER_SUPER ALL =NOPASSWD:ROOT"

运行结果:

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.addsudo

192.168.2.99:

----------

ID: /etc/sudoers

Function: file.append

Result: True

Comment: Appended 4 lines

Changes:

----------

diff:

---

+++

@@ -116,3 +116,7 @@

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

#includedir /etc/sudoers.d

+OPER_SUPER      ALL = KILL,SU,ROOT

+User_Alias OPER_SUPER=linwangyi

+Cmnd_Alias ROOT=/bin/su

+OPER_SUPER ALL =NOPASSWD:ROOT

Summary

------------

Succeeded: 1

Failed:    0

------------

Total:     1

六、添加用户组:

addgroup.sls文件:

[[email protected] salt]# cat user/addgroup.sls

devgroup:

group.present:

- gid: 601

yunwei:

group.present:

- gid: 602

运行结果:

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.addgroup

192.168.2.99:

----------

ID: devgroup

Function: group.present

省略

----------

ID: yunwei

Function: group.present

省略

Summary

------------

Succeeded: 2

Failed:    0

------------

Total:     2

[[email protected] salt]# salt ‘192.168.2.99‘  cmd.run ‘grep -E "(devgroup|yunwei)" /etc/group‘

192.168.2.99:

devgroup:x:601:

yunwei:x:602:

七、删除用户组:

delgroup.sls文件:

[[email protected] salt]# cat user/delgroup.sls

{% set groups = [‘devgroup‘,‘yunwei‘] %}

{% for group in groups %}

{{ group }}:

group.absent

{% endfor %}

运行结果:

[[email protected] salt]# salt ‘192.168.2.99‘  state.sls user.delgroup

192.168.2.99:

----------

ID: devgroup

Function: group.absent

Result: True

Comment: Removed group devgroup

Changes:

----------

devgroup:

----------

ID: yunwei

Function: group.absent

Result: True

Comment: Removed group yunwei

Changes:

----------

yunwei:

Summary

------------

Succeeded: 2

Failed:    0

------------

Total:     2

[[email protected] salt]# salt ‘192.168.2.99‘  cmd.run ‘grep -E "(devgroup|yunwei)" /etc/group‘

192.168.2.99:

时间: 2024-10-25 21:05:48

saltstack之用户管理的相关文章

Saltstack 用户管理

最近测试组来了一大波,最为公司测试那必须要有qa环境,测试组老大跟我关系很好,他们组不少人对Linux也很了解,平时弄个东西啥的也能自己搞定,软磨硬泡加上最近真的很忙给他们配置了jenkins和开了qa环境用户权限,说下saltstack的用户管理吧. 简单一个小例子,记录下.对于用户管理模块的各个函数以及参数可以看看官网or源码. 需求是这样的4个不同的用户,统一的密码,家目录啥的随便,这对于salt来说,简直TM 太简单了 我们用到了pillar [email protected] /srv

SaltStack之用户账户管理

SALT.STATE.USER Manangement of user accounts 在Salt.state中,user 模块是用来创建用户和管理用户设定的,用户可以被设置成 present 状态或者 absent 状态.(抄自官网http://docs.saltstack.cn/ref/states/all/salt.states.user.html#module-salt.states.user) 注释: present:添加用户 absent   : 删除用户 1. 用户管理 Exam

linux用户管理命令之NBA版

用户管理命令之NBA版 本文纯属扯淡,如有不严谨之处,还请海涵. 1 groupadd 作用:创建一个属组 格式:groupadd [选项] 属组名 选项:     -:选项为空 创建新属组,    -g:指定组GID,默认是GID+1 实例 1.1 添加属组team,指定组ID为1111     groupadd -g 1111 team 2 groupmod 作用:修改属组信息 格式:groupmod [选项] 属组名 选项:     -g:GID 修改属组GID -n:修改属组名 实例 2

Linux之用户管理与权限控制(上)

早期Linux系统设计为了能够实现多用户.多进程高效的利用服务器资源,在此种情况下,为了能够保证用户与用户之间的文件不被随意的访问及修改.删除等操作,用户.组的管理能在某种程序上实现管理用户或批量管理用户.由于Linux的设计哲学思想『一切皆文件』,用户对设备的访问就是对文件的访问. 一.用户与组 Linux下有三类用户 1.超级用户: root 具有操作系统的一切权限 UID 值为0 2.普通用户: 普通用户具有操作系统有限的权限, UID值 500+ 3.伪用户: 是为了方便系统管理, 满足

zabbix用户管理

zabbix用户管理,主要包括用户增删改查.用户报警媒介管理.用户权限管理. 安装完zabbix后,已经自带了两个用户Admin和Guests 超级管理员默认账号:Admin,密码:zabbix,这是一个超级管理员. Guests用户,使用guest账号,密码为空,只能看到zabbix后台,没有具体内容. 上一节,添加了一个主机群组Oracle Servers,监控了一台主机Server_A,下面新增一个用户,作为该主机群组的管理员. 要添加一个用户,有三类属性要填写. 要填写属性 描述 用户信

linux的用户管理

一.用户登录验证的过程 1.先找寻/etc/passwd里面是否有输入的账号?如果没有则跳出,如果有的话则将该账号对应的UID与GID(在/etc/group)读出来,另外,该账号的家目录与shell设定也一并读出. 2.再来则是核对密码表,这时linux会进入/etc/shadow里面找出有对应的账号与UID,然后核对下输入的密码与文件中的密码是否一致. 二.涉及到的文件 用户 /etc/passwd 账号名称:密码:UID:GID:用户信息说明:家目录:SHELL /etc/shadow 账

Linux之用户管理

Linux系统是个多用户系统,它能做到不同的用户能同时访问不同的文件,但是又不可能让每一个用户都随意可随意访问修改别的用户的数据,因此一定要有文件权限控制机制.Linux系统的权限控制机制和Windows的权限控制机制有着很大的差别.Linux的文件或目录被一个用户拥有时,这个用户称为文件的拥有者(或文件属主),同时文件还被指定的用户组所拥有(文件属组).一个用户可以是不同组的成员,这可以由管理员控制.文件的权限由权限标志来决定,权限标志决定了文件的拥有者.文件的所属组.其他用户对文件访问的权限

linux用户管理命令

linux的用户管理命令主要有useradd,userdel,usermod useradd useradd用于添加一个用户.adduser与useradd的功能相同,使用ls -l `which adduser`可以发现,adduser是useradd的一个符号链接.     useradd的基本用法为:useradd [options] LOGIN. 例如:添加一个Tom的用户,即为useradd Tom. useradd的选项常用的有-u.-g.-G.-c.-d.-s.-M.-mk.-r.

Windows Server 2008 R2入门之用户管理

今天为大家带来的是Windows Server 2008 R2入门之用户管理,以便大家更快的熟悉2008r2工作组中用户.组的创建.删除.日常管理等,接下来我们直接进入正文. 一.用户账户概述: "用户"是计算机的使用者在计算机系统中的身份映射,不同的用户身份拥有不同的权限,每个用户包含一个名称和一个密码: 在Windows中,每个用户帐户有一个唯一的安全标识符(Security Identifier,SID),用户的权限是通过用户的SID记录的.SID的格式如下所示:S-1-5-21