使用Ansible创建用户时Shell和.bashrc有所不同

时间:2019-03-04 13:25:46

标签: shell ansible ubuntu-16.04

我使用Ansible创建了一个名为superuser的新用户。我注意到该用户的shell.bashrc与在系统上手动创建的用户不同。

第一个提示是与根相比,使用Ansible创建的superuser的CLI输出:

superuser prompt: $
root prompt: root@root:/etc#

/etc/passwd中,superuser的外壳是/bin/sh而不是/bin/bash

最后,我必须使用以下Ansible命令创建具有适当外壳的超级用户:

- name: Create super user
user:
  name: "{{ super_username }}"
  state: present
  groups: www-data
  shell: /bin/bash
  append: yes
  password: "{{ super_password | password_hash('sha512', super_salt)  }}"

.bashrcroot之间的superuser文件仍然不同。

我使用的是Ubuntu 16.04.5和Python 3.5.2。我正在Win10,Ubuntu WLS和Ansible 2.7.5上运行脚本。

在文档中,用户模块似乎指示默认的shell应该匹配:

  

在其他操作系统上,默认外壳程序由   正在使用的基础工具。有关详细信息,请参见注释。

其他说明:

  

在所有其他平台上,此模块使用useradd创建,将usermod用作   修改,并使用userdel删除帐户。

考虑到文档,rootsuperuser是否在.bashrcshell方面匹配?

编辑#1

我在本地创建了一个测试用户,将其.bashrcshell与根用户的.bashrcshell进行了比较。他们都匹配。

1 个答案:

答案 0 :(得分:0)

回答您的问题

  

考虑到文档,root和超级用户是否应该在.bashrc和shell方面匹配?

不。他们不应该。参见Notes。在许多系统中,不必(1)不必安装Bash,而(2)如果已安装Bash,则不是root用户使用它的最佳实践。