V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Lucups
V2EX  ›  问与答

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

  •  
  •   Lucups · Jun 13, 2014 · 3468 views
    This topic created in 4337 days ago, the information mentioned may be changed or developed.
    蛋疼的一米。。。

    部署了 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!
    Supplement 1  ·  Jun 13, 2014
    现在问题应该改成: 如何设置用户在特定目录下创建文件的默认用户组。
    比如,一个用户在 git/ftp两个组里面,如何让该用户(tony) 在 /home/git 目录下创建的文件 owner 为 tony:git 或者 git:git ,并且在 /home/ftp/ 目录下创建文件的 owner为 tony:ftp或者ftp:ftp。
    5 replies    2014-06-13 17:32:11 +08:00
    9hills
        1
    9hills  
       Jun 13, 2014   ❤️ 1
    难道不是大家都用gitlab了么。。

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

    tony 新增了文件, 虽然umask显示0002,但创建的文件还是755 的,另外owner是 tony:tony 的。
    这是最终的问题。
    msg7086
        4
    msg7086  
       Jun 13, 2014   ❤️ 1
    linux下创建文件是按照uid和gid来创建的,所以如果这个服务器只用来跑git的话,就把账号的主用户组改成git。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3259 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:14 · PVG 21:14 · LAX 06:14 · JFK 09:14
    ♥ Do have faith in what you're doing.