V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Lucups
V2EX  ›  问与答

Linux 下如何写入文件不修改文件的 Owner 或者 Group ?

  •  
  •   Lucups · 2014-06-13 13:25:36 +08:00 · 3086 次点击
    这是一个创建于 3642 天前的主题,其中的信息可能已经有所发展或是发生改变。
    蛋疼的一米。。。

    部署了 Gitosis (PS:听说已经停止开发?我看到 SF上有人建议用 Gitolite),设置了 git 用户组。
    问题来了,每次 push 后,文件的拥有者就变成了 tony:tony 而不是 git:git 或者 tony:git
    导致其他用户无法 push .

    另: 我把/etc/profile 的umask 设置为 0002,但用 Git Bash (msysgit) push 的文件权限还是 755 的。但如果用 putty 之类的SSH登录,却是 775(umask 输出 0002),这有点奇怪。

    该如何解决?
    THX!
    第 1 条附言  ·  2014-06-13 17:09:14 +08:00
    现在问题应该改成: 如何设置用户在特定目录下创建文件的默认用户组。
    比如,一个用户在 git/ftp两个组里面,如何让该用户(tony) 在 /home/git 目录下创建的文件 owner 为 tony:git 或者 git:git ,并且在 /home/ftp/ 目录下创建文件的 owner为 tony:ftp或者ftp:ftp。
    5 条回复    2014-06-13 17:32:11 +08:00
    9hills
        1
    9hills  
       2014-06-13 13:27:06 +08:00   ❤️ 1
    难道不是大家都用gitlab了么。。

    这个和Linux无关,是程序行为,Linux只写文件是不会改变文件属性的。。
    Lucups
        2
    Lucups  
    OP
       2014-06-13 13:29:50 +08:00
    @9hills 原来如此,非常感谢!
    Lucups
        3
    Lucups  
    OP
       2014-06-13 17:02:54 +08:00
    @9hills 我发现问题了,不是修改的文件,是新增的文件。。。

    tony 新增了文件, 虽然umask显示0002,但创建的文件还是755 的,另外owner是 tony:tony 的。
    这是最终的问题。
    msg7086
        4
    msg7086  
       2014-06-13 17:11:52 +08:00   ❤️ 1
    linux下创建文件是按照uid和gid来创建的,所以如果这个服务器只用来跑git的话,就把账号的主用户组改成git。
    Lucups
        5
    Lucups  
    OP
       2014-06-13 17:32:11 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2489 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:05 · PVG 23:05 · LAX 08:05 · JFK 11:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.