畅快玩转NAS 篇一:Linux权限简单讲解
在上一篇文章中,我简单的介绍了一些常用的Linux命令。当你熟悉这些命令之后,对于非专业的普通家庭用户来说是足够折腾NAS了,你还可以去折腾VPS
在使用NAS的过程中,搞懂Linux的权限对于使用NAS是比较关键的。权限设置不正确,会导致文件因缺少权限无法被访问删除,明明是按照之前的参数设置docker,但是容器又无法正常运行。
所以本教程应运而生,主要是面对没有Linux基础的用户。通过细读本文之后,让你对Liunx权限有基本的了解,可以解决NAS使用中碰到权限问题
讲解权限首先要从用户开始讲起,每个用户都有自己所属的组,一个用户可以属于多个组。
在默认的情况下,当你新建一个用户的时候,会自动创建一个和用户名相同的组。比如新建了一个用户zhang,他所属的组也是zhang。
但是每个NAS系统的情况不同,具体情况具体分析。OMV在网页管理界面下新建用户会默认添加到users组。
Linux的权限识别一共有10位数,第一位是判断目录还是文件,d是目录,-是文件。之后每3位分别为所属用户、所属组、其他用户的权限。rwx分别是r(read)可读、w(write)可写、x(execute)可执行。
需要注意的是,文件本身的写(w)权限并不能删除文件,文件能否删除是由上级目录的写(w)权限决定的,目录的执行(x)权限决定用户是否可以进入该目录。
在命令行输入ls -l之后,会看到文件权限的情况
拿bb.log来说,第一位-说明它是个文件,rw-则表示该文件的所有者具有可读可写的权限,之后的r--则是说明该文件所属组的用户及其他用户都只拥有可读权限。第一个root是说明文件的所有者是用户root,第二个root则是指该文件的所属组是root。
done的第一位为d,说明done是个文件夹。由于所有人都拥有执行权限,所以任何用户都可以进入该文件夹。值得注意的是,done这里的所属组是users,那么属于users组的用户li,也同样获得r-w权限。这里说明文件的所属组并不需要和文件所有者是同一个组,也可以是同的组。
更改文件权限的命令是 chmod ,一共有数字和符号两种方法
我们可以使用数字来代表各个权限,各权限的数字对照为 r:4、w:2、x:1
那么代表rwx权限的数字就为7(4+2+1),r-x则为5(4+1),以此类推。比较无脑解决权限问题的办法就是chmod 777,把最大权限给予所有用户。
755权限为user拥有rwx权限,group和other拥有r-x权限
要使目录下的文件也拥有和目录一样的权限则需要添加选项 -R
之前提过,9个权限分为3个身份,分别是user、group、other,可以缩写成u(user) ,g(group) ,o(other),a(all)则可以表示上述所有用户。+ 表示增加权限、- 表示取消权限、=表示设置权限。
如果要设置bb.log的权限user为rwx,group 与 others (go)为r-x,那么可以写成
chmod u=rwx,go=rx bb.log
为group添加w权限:chmod g+w bb.log
为所有人添加w权限:chmod a+w bb.log
chown可以用来修改文件目录的所有者和所属组,如果要同时修改目录下的其他文件和目录也是要添加-R
把bb.log的所有者更改为li:chown li bb.log
同时更改所有者和所属组:chown li:users bb.log
输入id 用户名会得到uid和gid,uid和gid可以代替用户名和组名
chown 1000:100 done 和chown li:users done 这两条命令结果是一样的,root用户的uid为0
Docker里面常见的PUID和PGID也正是uid和gid,通过设置PUID和PGID就可以指定docker容器的运行用户
在NAS的日常使用中,有时候无法删除文件,无法进入某个文件夹,这些都是权限不足导致的。权限不出错的最好办法是确保用户一致。
用户zhang被用来运行qbittorrent下载文件到Download,那么也请使用zhang在SMB登陆对Download进行访问及文件管理。如果不指定qbittorrent运行用户的话,有可能默认就会以root或者其他用户运行,这时候qbittorrent下载的文件所有者就是root或者其他用户,如果使用zhang删除文件的时候很可能权限不足,导致无法删除。
大家喜欢用docker运行nextcloud搭建私人网盘。但是迁移的时候非常容易出错,即使你和之前的参数设置一模一样也无法运行。这其实也是文件权限错误导致的。对于权限要求严格的应用,先确定使用者比更改权限更重要。
因为nextcloud对于权限有严格要求,其他应用可能无脑使用chmod 777就解决问题了。这时候就要先明确你需要用什么用户运行nextcloud,而不是盲目的去添加权限。比如说你需要用zhang来运行,那么就需要使用chown -R命令把nextcloud目录下全部文件的所有者都改成zhang,再用docker指定zhang运行nextcloud,这时候就权限就不会出错了。
码字不易,如果觉得本文对你有帮助,收藏的同时顺手点个赞,谢谢 之前好几篇文章的点赞数都不到收藏的十分一能帮助到更多的人是我写这些文章的初衷 有疑问的留言我会尽量回复。
Reg4bbs
校验提示文案
追风的小明
校验提示文案
值友6677673325
校验提示文案
买青椒也用券
校验提示文案
小拖拉机
校验提示文案
值友3844920584
校验提示文案
值友3844920584
校验提示文案
值友4125131694
校验提示文案
jjjjjjjjunnnn
校验提示文案
gottenall
校验提示文案
我今天不加班
校验提示文案
zhay
校验提示文案
zhay
校验提示文案
我今天不加班
校验提示文案
gottenall
校验提示文案
jjjjjjjjunnnn
校验提示文案
值友4125131694
校验提示文案
值友3844920584
校验提示文案
值友3844920584
校验提示文案
小拖拉机
校验提示文案
买青椒也用券
校验提示文案
值友6677673325
校验提示文案
追风的小明
校验提示文案
Reg4bbs
校验提示文案