在完成Nextcloud安装后,或者创建了一个新用户之后,(该用户)的根目录下就会出现这些目录和文件:
在Nextcloud尚未安装时,这些文件存放在core/skeleton
目录中,在安装或创建用户时,这些文件将会被自动复制到data/
目录中,所以在如果用户删除这些文件的话,是不会影响到core/skeleton
中的原文件的。
换个思路,如果用自己的文件替换core/skeleton
中的内容,就可以自定义新用户默认的文件。
如图,我在一个尚未完成安装的Nextcloud实例上,在core/skeleton
目录中添加了Winterfell-background.png文件:
root@5df28f05c05b:/var/www/html/core/skeleton# ls -l total 5024 drwxr-xr-x 2 www-data root 4096 Nov 18 06:42 Documents -rw-r--r-- 1 www-data root 4143672 Nov 18 06:42 Nextcloud Manual.pdf -rw-r--r-- 1 www-data root 462413 Nov 18 06:42 Nextcloud.mp4 drwxr-xr-x 2 www-data root 4096 Nov 18 06:42 Photos -rw-r--r-- 1 www-data root 525833 Dec 2 11:16 Winterfell-background.png
注意权限要与其它文件保持一致,至少可读。
接下来我们完成Nextcloud的安装。
完成安装后,进入Nextcloud,我们就可以看到刚才添加的文件了,它和其它文件一样可以查看、编辑、删除。
我们来看看用户的在data目录下的文件:
root@5df28f05c05b:/var/www/html/data/ORGLEAF/files# ls Documents Nextcloud Manual.pdf Nextcloud.mp4 Photos Winterfell-background.png
可以看到,Winterfell-background.png已经和其它文件一起被复制了进去。
如果你按照上述步骤来自定义默认文件的话,就会出现一个问题:当Nextcloud升级时,这个core/skeleton
就会被替换,你所做的修改也就不存在了。当然你也可以再重新修改一次,不过还有更好的方法。
你可以在config/config.php
文件中添加一个参数,这个参数可以自定义默认文件目录的名字,例如我在core/
下创建一个custom_skeleton
目录,想让它作为存放默认文件的目录,那么就可以这样写(添加到?>
之前):
'skeletondirectory' => 'core/custom_skeleton',
这样,Nextcloud在安装或创建新用户时就会从core/custom_skeleton
复制文件,当Nextcloud更新时,这个目录也不会被替换以至于丢失自定义的默认文件。
P.S.如果你将'skeletondirectory' =>
后面的参数留空,像这样:
'skeletondirectory' => '',
那么Nextcloud就不会去复制任何文件,这样用户的文件夹默认就是空的。
本文由 橙叶博客 作者:FrankGreg 发表,转载请注明来源!
snap一键安装的 在哪修改这个配置文件?
我自建了一个目录,并且在内新建一个文件,然后在config.php中指定此目录为默认文件目录。但是完整性检查会检出此默认文件为多余文件,怎么解决呢?
是在core/文件夹里建的吗?
是的,新建了一个custom_skeleton目录, 下面新建了一个readme.txt文件,就是把原本的core/skeleton默认文件目录修改成了core/custom_skeleton。
可以避开nextcloud文件夹,将这个目录放到服务器的其它地方,在’skeletondirectory’ => ‘目录’中,使用绝对目录定位它.
新建默认目录和默认文件后,nextcloud的完整性检查会出现警告。
NC安装完之后显示 操作被禁止
这是怎么回事???
/捂脸
看了你写的文章,很受用。有一点是我们生产环境中使用的,我想问问老师有没有研究过,就是公司内部各部门使用nextcloud进行文件共享,要对文件和用户组进行权限的控制,老师有这方面的经验吗?
你好,我也在做关于用户分权功能的探索,可以聊一下
你好,可以留个联系方式吗?有些问题想请假下