Samba 该如何设置保证 webserver 和 ssh 用户都有相应权限

开发人员共用一台开发服务器, 每个人使用自己用户登录 shell 以及 samba, 同时服务器上 webserver(nginx) 及 PHP 使用另外一个用户运行, 如何才能保证不管是 shell 用户还是 samba 用户还是 webserver/PHP 都有权限对自己的文件进行读写

Answers

配置如下:

[homes]
comment = Home Directories
public = no
browseable = no
writable = yes
printable = no
force user = www
force group = www
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775

这里强制 samba 使用 www 用户及 www 群组访问文件

如果需要在命令行也使用 www 用户及群组的权限, 还需要如下配置

添加 www 组到用户:

usermod -G www user1

编辑 sudoer:

visudo

加入

%www    ALL=(www) NOPASSWD: ALL

同时执行 shell 时需要使用如下的命令:

sudo -u www php ....