首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建新用户并删除当前用户的“ubuntu”,并使用ansible-剧本

创建新用户并删除当前用户的“ubuntu”,并使用ansible-剧本
EN

Unix & Linux用户
提问于 2022-02-16 09:57:29
回答 1查看 637关注 0票数 0

我想用Ansible自动化一些raspberry pi或oracle云的配置。

这些是任务序列:

  1. 使用当前/默认/不安全用户“ubuntu”运行脚本
代码语言:javascript
复制
ansible-playbook security.yml -u ubuntu
  1. 剧本将创造新的用户
代码语言:javascript
复制
    - name: create a new safe user
      user:
        name: "{{ safe_user }}"
        state: present
        groups: "sudo"
        password: "{{ password }}"
        comment: "Safe user"
        shell: /bin/bash
        update_password: on_create
  1. 剧本将确保在第二步创建的安全用户中存在authorized_keys文件。
  2. playbook将删除不安全的用户'ubuntu'
  3. 剧本将继续设置fail2ban,ufw,改变ssh端口.但现在有了'safe_user‘

它在步骤4-5上失败,因为它试图继续Ubuntu用户的所有下一个任务,而Ubuntu用户则从系统中删除。

是否可以在步骤5中指定与重新连接?

目前,我将所有任务分成两个文件,但我希望只有一个文件。

代码语言:javascript
复制
$ ansible-playbook security-1.yml -u ubuntu # will create safe_user
$ ansible-playbook security-2.yml -u safe_user # will delete ubuntu user

您可能会问我为什么要删除用户ubuntu?

  1. 这是因为当坏人没有选择与ubuntu或pi用户登录时,我会感到更安全。
  2. 我想更深入地理解不可接受的限制。
EN

回答 1

Unix & Linux用户

发布于 2022-02-16 13:26:43

我认为这是不可能的(不只是在ansible,但基本上),因为没有任何机制不承认或重新拥有一个正在运行的进程,或以某种方式模拟它。

如果可以在第二个用户中重命名,为什么需要创建一个新用户并删除另一个用户?我不知道在ansible中会是什么样子,但是shell命令应该是这样的:

代码语言:javascript
复制
usermod -l safe_user ubuntu

如果无论如何要删除用户,可以将此操作移动到最后一步,因此删除后将不存在任何任务。或者在su -c '...' safe_user下执行额外脚本(剧本)中的剩余任务(不知道是否支持这种“嵌套”)。

另一个变体是禁用或锁定用户(usermod -L ubuntu)或其登录(usermod ubuntu -s /sbin/nologin),而不是完全删除。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/690889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档