我使用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) }}"
.bashrc
和root
之间的superuser
文件仍然不同。
我使用的是Ubuntu 16.04.5和Python 3.5.2。我正在Win10,Ubuntu WLS和Ansible 2.7.5上运行脚本。
在文档中,用户模块似乎指示默认的shell应该匹配:
在其他操作系统上,默认外壳程序由 正在使用的基础工具。有关详细信息,请参见注释。
其他说明:
在所有其他平台上,此模块使用useradd创建,将usermod用作 修改,并使用userdel删除帐户。
考虑到文档,root
和superuser
是否在.bashrc
和shell
方面匹配?
编辑#1
我在本地创建了一个测试用户,将其.bashrc
和shell
与根用户的.bashrc
和shell
进行了比较。他们都匹配。
答案 0 :(得分:0)
回答您的问题
考虑到文档,root和超级用户是否应该在.bashrc和shell方面匹配?
不。他们不应该。参见Notes。在许多系统中,不必(1)不必安装Bash,而(2)如果已安装Bash,则不是root用户使用它的最佳实践。