Archive for 12月, 2020

freenas 安装 syncthing 并配置权限

freenas 安装 syncthing 并配置权限

pw userdel syncthing
pw groupdel syncthing

pw groupadd -n gdata -g 1001
pw useradd -n syncthing -u 1002 -d /vat/tem/syncthing -s /usr/sbin/nologin -g gdata

freenas本身
添加 syncthing 用户,uid为 983

执行下列命令,保证数据目录所属组为 gdata,并为所有目录增加 SGID 权限。
find /some/dir -type d -exec chgrp www {} +
find /some/dir -type d -exec chmod g+s {} +

syncthing@jails@freenas 内执行下面的命令。创建 dgata 用户组,并将 syncthing 加到组里面。

chown -R 账号名:组名 文件或目录
pw groupadd -n gdata -g 1001
pw groupmod gdata -m syncthing

新建文件所属组设置
https://blog.csdn.net/furzoom/article/details/77737344

枫竹梦 2017-08-31 10:54:29

问题场景1:在Linux进行开发Web程序,Web root目录下某些目录需要被www用户进行写操作,而开发过程中使用的用户假设为mn,新建的目录和文件默认用户/组为mn:mn,这对www用户来讲是不可写的。最简单的办法是使用chown -R mn:www xxx设置用户/组为mn:www。这样每次有新的文件都需要进行设置,十分不方便。

问题场景2:对于运维人员来讲,需要在dirA目录下新建的文件为groupA组,在dirB目录下新建的文件为groupB组。

解决办法
使用Linux下的特殊权限位即可以实现。例如对于问题场景2中的情况,将dirA目录的用户组设置为groupA,然后添加SGID权限,即:

chgrp groupA dirA/
chmod g+s dirA/

这样得到dirA的目录权限为

drwxrwsr-x

以后在dirA下新的目录具有相同的权限,且用户组为groupA;新建的文件用户组同样为groupA。

如果是已经存在的目录需要同样的设置,使用如下命令:

find /some/dir -type d -exec chgrp www {} +
find /some/dir -type d -exec chmod g+s {} +

NB: 上述命令的 {} + 表示将find查找到的所有目录添加到命令后进行执行,而不是对每一个查找到的目录执行一次。

特殊权限知识
Linux下的文件权限除了用户、组、其他的可读(r)、可写(w)、可执行(x)之外,还有三个特殊的权限位,它们是SUID、SGID、SBIT(粘滞位)。

SUID
s出现在文件所有者的x权限位上。
SUID用于可执行文件,使得该文件在执行时具有该文件所有者的权限。
对于没有可执行权限的文件设置SUID,该文件不会具体可执行权限。
chmod u+s somefile

如/usr/bin/passwd的文件。
SGID
s出现在文件所属组的x权限上。
SGID用于文件和目录。

对于目录,设置SGID,在该目录下新建的目录同样有SGID权限和所属组。
对于文件,设置SGID,使用该文件执行时具有所属组的权限。
chmod g+s somefile
SBIT
t出现在文件其他的x权限上。
SBIT用于目录。

设置了SBIT的目录,下新建的文件,只有自己和root可以进行删除。

如/tmp目录。

No comment »