先说下gpasswd命令的使用方法
1、gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具,用于指定要管理的工作组。
2、选项详解:
-a : 添加用户到组-d : 从组删除用户-A:指定管理员-M:指定组成员和-A的用途差不多;-r:删除密码;-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
3、实例:
将userA添加到groupB用户组里面:
gpasswd -a userA groupB
这样可以达到groupB组拥有的权限,userA用户也可以有。
chmod 770 用户1:用户2 文件目录
比如,我现在有两个用户,要求user1可以操作user2的文件,user1想作为总账户,可以操作其他账户文件权限,可以把user1用户加入到user2用户的所属组里
gpasswd -a user1 user2
再给对应目录一个权限
user1的家目录:/ftp/user1
user2的家目录:/ftp/user2
赋予/ftp/user2目录所属组读、写、执行权限
chmod 770 /ftp/user2 -R
执行上面的gpasswd命令后,user1是在user2组中,加上chmod的授权,所以user1对/ftp/user2有读、写、执行权限
4、修改vsftp配置文件
我的VSFTP使用的是虚拟账户(不能匿名账户)+被动模式登录,在使用VSFTP的时候,遇到每次创建文件时,文件的所属组都没有权限读写。
这问题网上查了很多,在主配置文件/etc/vsftp/vsftpd.conf
修改local_umask=022
这个参数是没用的,这个参数不是针对虚拟账户的配置,需要新增anon_umask=007
,重新启动服务,登录虚拟账户,创建文件,权限是770,这时候文件所属组也有了读写执行权限。
补充:
umask是unix操作系统的概念,umask决定目录和文件被创建时得到的初始权限
umask = 022 时,新建的目录 权限是755,文件的权限是 644
umask = 077 时,新建的目录 权限是700,文件的权限时 600
vsftpd的local_umask和anon_umask借鉴了它
默认情况下vsftp上传之后文件的权限是600,目录权限是700
想要修改上传之后文件的权限,有两种情况
如果使用vsftp的是本地用户
则要修改配置文件中的 local_umask 的值
如果使用vsftp的是虚拟用户
则要修改配置文件中的 anon_umask 的值