如何设置已安装文件夹的默认用户?

时间:2015-10-20 19:38:21

标签: file-permissions salt-stack sshfs

当我输入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

如何使用我的用户和群组安装?

谢谢

2 个答案:

答案 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>