Ubuntu 22.04下如何设置composer install默认生成775权限的vendor文件夹?
如何让Composer默认生成775权限的vendor文件夹(Ubuntu 22.04)
能不能默认设置为drwxrwxr-x(775)?
可以,主要通过调整umask掩码或Composer自身配置实现,两台服务器的权限差异也源于这两个配置的不同。
具体实现方法
1. 临时执行(单次生效)
执行Composer前临时设置umask,本次生成的vendor及依赖文件都会采用775权限:
umask 002 && composer install
umask是系统控制新建文件/目录默认权限的掩码,目录默认权限为777 - umask值,777-002=775刚好符合需求。
2. 永久设置当前用户的umask(全局生效)
编辑用户的shell配置文件(比如~/.bashrc或~/.profile),添加一行:
umask 002
执行以下命令让配置立即生效:
source ~/.bashrc
之后该用户每次执行Composer,生成的目录都会默认是775权限。
3. 项目级Composer配置(仅当前项目生效)
在项目根目录的composer.json中添加umask配置,强制Composer使用指定掩码:
{ "config": { "umask": 002 } }
保存后执行composer install,就能确保该项目的vendor权限为775,不受系统umask影响。
服务器权限差异的原因
两台服务器的核心差异在于umask设置或Composer配置:
- 系统默认umask通常是022(生成755权限),若某台服务器修改了用户级(
~/.bashrc)或系统级(/etc/profile、/etc/bash.bashrc)的umask为002,就会生成775权限的vendor。 - 也可能是其中一台服务器的Composer全局配置(
~/.composer/config.json)中设置了umask项,另一台没有。
内容的提问来源于stack exchange,提问作者Poul D.
相关产品推荐
相关产品推荐

