1.首先添加整体开发账号user1和前端开发账号user2,代码版本管理账号user3
su root
useradd user1
passwd user1
useradd user2
passwd user2
开发代码工程目录属主和属组为user1
chown -R user1:user1 /dev/project
代码管理的账号如user3追加user1和user2用户组,便于进行版本操作。
usermod -a -G user1 user3
usermod -a -G user2 user3
groups user3 #查看user3加入的组
2.生成软链接,方便前端user2开发
chmod -R user2 /dev/project/static-files #将前端开发文件的属主设置为user2,注意user1的属组不要变
cd /home/user2/
ln -s /dev/project/static-files static-files #注意第二个参数必须是全路径
3.修改工程目录的权限
chmod -R o-rw /dev/project #注意如果同时又x和r权限时,是可以删除工程目录下的权限的。而如果没有x权权限则user2也读不到static-files,所以最终工程目录权限为:drwxrwx--x
注意,正是环境的代码根目录(www)权限是drwxrwx---
其它启动文件(如start_docker.sh)的权限是-rwx------
4.注意,因为代码目录做了访问限制,所以nginx也无法成功访问。所以如果需要nginx加载静态文件的,必须将nginx(虽然不是用户,但ubuntu下是www-data)加入到代码的属组中。正式环境也要有对应操作。
usermod -a -G user1 www-data
usermod -a -G user2 www-data