sudo(superuser or another do)让普通用户可以以超级管理员或其他人的身份执行命令。

sudo基本流程如下:

1.管理员需要先授权(修改/etc/sudoers文件)

2.普通用户以sudo的形式执行命令

3.可以通过sudo -l 查看授权情况

修改/etc/sudoers的方法如下:

1.visudo(带语法检查,默认没有颜色提示)

2.vim /etc/sudoers(不带语法检查,默认有颜色提示)

授权格式:

用户或组 主机列表=(提权身份) [NOPASSWD]:命令列表

NOPASSWD的意思是执行sudo不需要输入自己的密码

注意事项:命令需要写绝对路径,对组授权需要在组名称前面加%

## cat /etc/sudoers

root ALL=(ALL) ALL

tom ALL=(root) /usr/bin/systemctl               tom以root身份可以启动关闭重启服务

%wheel      ALL=(ALL) ALL

$ sudo systemctl restart sshd               提权以root身份执行

ansible批量给所有主机创建系统账户,授权

远程所有被管理主机批量创建系统账户,账户名称为alice,密码为123456。

# ansible all -m user -a "name=alice password={{'123456' | password_hash('sha512')}}"

配置alice账户可以提权执行所有命令

使用lineinfile模块修改远程被管理端主机的/etc/sudoers文件,line=后面的内容是需要添加到文件最后的具体内容。等于是在/etc/sudoers文件末尾添加一行:alice ALL=(ALL) NOPASSWD:ALL

#ansible all -m lineinfile -a "path=/etc/sudoers line='alice ALL=(ALL) NOPASSWD:ALL'“

验证:在node1上面测试

#su - alice

$sudo systemctl restart sshd

######################

修改ansible配置文件

######################

默认ansible是通过root远程被管理端主机

可以修改配置文件以普通用户远程被管理端主机执行自动化运维

vim ~/ansible/ansible.cfg

[defaults]

inventory = ~/ansible/hosts

remote_user = alice                      #以什么用户远程被管理主机(被管理端主机的用户名)

#host_key_checking = False        #是否校验密钥

[privilege_escalation]

become = true                               #alice没有特权,是否需要切换用户提升权限

become_method = sudo               #如何切换用户(比如用su就可以切换用户,这里是sudo)

become_user = root                     #切换成什么用户(把alice提权为root账户)

become_ask_pass = no                #执行sudo命令提权时是否需要输入密码

远程被管理端主机的alice用户,需要提前配置SSH密钥。

#for i in node1 node2;

do ssh-copy-id alice@$i

done

# ssh alice@node1                             #依次远程所有主机看看是否需要密码

########################

修改inventory主机清单配置文件(实验参考)

########################

vim ~/ansible/inventory

[test]

node1     ansible_ssh_port=220             #自定义远程SSH端口

[proxy]

node2 ansible_ssh_user=alice                    #自定义远程连接的账户名

[webserver]

node[3:4] ansible_ssh_pass=密码                 #自定义远程连接的密码

[database]

node5 ansible_ssh_private_key_file=密钥文件

[cluster:children]

webserver

database

sudo提权,ansible批量给所有主机创建系统账户,授权的更多相关文章

  1. ansible使用普通用户免密登陆+sudo提权

    前提:从ansible控制端使用test用户可以免密登陆所有被控制端,并且被控端test用户支持sudo提权 # ansible主机清单 cat /etc/ansible/hosts [online- ...

  2. Ubuntu无法sudo提权,报当前用户不在sudoers文件中错误

    Ubuntu安装后默认root不能登陆系统,密码也是随机生成,其他用户使用root权限,可以使用sudo提权,前提是该用户在/etc/sudoers配置列表中. 但是有时用户名从/etc/sudoer ...

  3. 2019-10-16,sudo提权漏洞(CVE-2019-14287)实现

    sudo是linux系统命令,让普通账号以root身份执行某些命令,比如,安装软件,查看某些配置文件,关机,重启等,如果普通用户需要使用sudo需要修改配置文件,/etc/sudoers,将sudo使 ...

  4. [提权]sudo提权复现(CVE-2019-14287)

    2019年10月14日, sudo 官方在发布了 CVE-2019-14287 的漏洞预警. 0x00 简介 sudo 是所有 unix操作系统(BSD, MacOS, GNU/Linux) 基本集成 ...

  5. sudo 提权漏洞(CVE-2019-14287)复现 (10.16 第二十二天)

    sudo是Linux系统命令,让普通账号以root身份去执行某些命令,比,安装软件.查看某些配置文件.关机.重启等操作,如果普通账号需要使用sudo需要修改配置文件/etc/sudoers,将sudo ...

  6. sudo 提权漏洞(CVE-2019-14287)复现

    (该文参考网络他人资料,仅为学习,不许用于非法用途) 一.环境 1.sudo版本小于1.8.28的Linux系统 2.sudo 是Linux系统命令,让普通账号以root身份去执行某些命令,比如:安装 ...

  7. Linux文件权限;ACL;Setuid、Setgid、Stick bit特殊权限;sudo提权

    相关学习资料 http://blog.sina.com.cn/s/blog_4e2e6d6a0100g47o.html http://blog.csdn.net/aegoose/article/det ...

  8. Linux使用sudo提权时,出现xx 不在 sudoers 文件中。此事将被报告。visudo 命令简单介绍。

    在使用 sudo 临时提权时,出现:不在 sudoers 文件中.此事将被报告. 可以使用 visudo命令 来配置/etc/sudoers文件,将目标用户赋予使用sudo命令的能力. visudo命 ...

  9. linux CVE-2019-14287 Sudo提权漏洞

    CVE-2019-14287 sudo介绍 sudo,也就是以超级管理员身份运行(superuser do)的意思.sudo 是 Linux 中最常使用的重要实用程序之一,它功能十分强大,几乎安装在每 ...

随机推荐

  1. C#LeetCode刷题之#141-环形链表(Linked List Cycle)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3901 访问. 给定一个链表,判断链表中是否有环. 进阶: 你能否 ...

  2. Android 开发学习进程0.14 Bindview recyclerview popwindow使用 window类属性使用

    BindView ButterKnife 优势 绑定组件方便,使用简单 处理点击事件方便,如adapter中的viewholder 同时父组件绑定后子组件无需绑定 注意 在setcontentview ...

  3. JavaScript基础-06-正则表达式

    正则表达式 1. 正则表达式用于定义一些字符串的规则:计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来. 2. 创建正则表达式对象: var reg=new R ...

  4. Kafka 为什么快

    Kafka 为什么能那么快 | Kafka高效读写数据的原因 无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker ...

  5. 在UOS 上部署 django + uwsgi + nginx 流程

    前言:这篇主要是流程,不喜勿喷,虽然我知道在部署过程中 参照博客写的越详细越好. 强大的百度会解决一切的 爬了诸多坑 ,心累,必须总结!! 最近 芯片封锁闹的很凶  支持国产!! UOS 统一操作系统 ...

  6. day2 变量

    变量是在程序中表现为不重复的名字,只需定义一个名字,给这个名字变量赋值即可  作用  在内存中开辟一块空间.起了一个别名,用了访问和存储空间中的数据 在编写 Python 程序过程中, 经常需要给标识 ...

  7. mysql表中已有数据,为表新增一个自增id。

    第一步,在navicat中,例如表test新建查询,输入以下两行代码即可搞定. alter table test add id int; alter table `test` change id id ...

  8. Vue源码分析之数据驱动

    响应式特点 数据响应式 修改数据时,视图自动更新,避免繁琐Dom操作,提高开发效率 双向绑定 数据改变,视图随之改变.视图改变,数据随之改变 数据驱动 开发时仅需要关注数据本身,不需要关心数据如何渲染 ...

  9. 自我介绍网页填写表格PHP,JavaScript,html,css代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Logistic回归分析之多分类Logistic回归

    Logistic回归分析(logit回归)一般可分为3类,分别是二元Logistic回归分析.多分类Logistic回归分析和有序Logistic回归分析.logistic回归分析类型如下所示. Lo ...