当我输入top.sls时:
/var/www:
file.directory:
- user: {{ pillar['user'] }}
- group: www-data
- mode: 755
- makedirs: True
它创建" / var / www" dir具有已定义且可以的权限。 所以基本上chown是:user:www-data
但是当我尝试将该文件夹安装到我的Mac上时,问题就出现了。 所有者和团体是 - > 501:拨出
以下是我使用的代码:
/var/www:
{% if pillar['sshfs_www'] %}
file.directory:
- mode: 755
- follow_symlinks: False
- group: www-data
- makedirs: True
mount:
- user: {{ pillar['user'] }}
- mounted
- device: sshfs#{{ pillar['sshfs_www'] }}
- fstype: fuse
- opts: nonempty,allow_other,auto
{% else %}
file.directory:
- mode: 755
- group: www-data
- makedirs: True
{% endif %}
不仅那个用户和组没有像我设置的那样设置,我收到错误:无法将用户更改为myuser
如何使用我的用户和群组安装?
谢谢
答案 0 :(得分:1)
我希望这可以帮助其他用户在使用salt安装时解决他们的权限问题:
所以我在这里解决了这个问题。
首先,我手动设置用户和组的ID:
{{ pillar['user'] }}:
user.present:
- shell: /bin/bash
- home: /home/{{ pillar['user'] }}
- require_in:
- uid: 4000
- gid: 4000
- file: /home/{{ pillar['user'] }}/.ssh/id_rsa
- file: /home/{{ pillar['user'] }}/.ssh/authorized_keys
www-data:
group.present:
- gid: 4000
- system: True
- members:
- {{ pillar['user'] }}
之后在部分安装位置,我用这部分定义了uid和gid: uid = 4000,gid = 4000
/var/www:
{% if pillar['sshfs_www'] %}
mount:
- user: {{ pillar['user'] }}
- mounted
- device: sshfs#{{ pillar['sshfs_www'] }}
- fstype: fuse
- opts: nonempty,allow_other,auto,uid=4000,gid=4000
{% else %}
file.directory:
- mode: 755
- group: www-data
- makedirs: True
{% endif %}
答案 1 :(得分:0)
引用Sven来自serverfail answer:
你不能。这是SSHFS / Fuse的限制:默认情况下,所有内容都映射到用于连接SSH的用户的权限。
但是,您似乎可以使用idmap文件解决这个问题,请参阅手册页中的选项
-o idmap
,-o uidfile
,-o gidfile
和-o nomap
。< / p>