Linux权限简单讲解

2020-01-22 19:02:28 54点赞 245收藏 13评论

在上一篇文章中,我简单的介绍了一些常用的Linux命令。当你熟悉这些命令之后,对于非专业的普通家庭用户来说是足够折腾NAS了,你还可以去折腾VPSLinux权限简单讲解

在使用NAS的过程中,搞懂Linux的权限对于使用NAS是比较关键的。权限设置不正确,会导致文件因缺少权限无法被访问删除,明明是按照之前的参数设置docker,但是容器又无法正常运行。

畅快玩转NAS ,常用Linux命令介绍相信大家对于Linux多少有所耳闻,虽然windows在桌面领域占据了绝对的霸主地位,但是在服务器领域却是Liunx占据优势。造汽车不可能再去发明轮子,即使是如谷歌一般强大的公司,也不可能从零开始自己写一个操作系统,安卓正是基于Linux进行开发的。目前常见的NAS系统,群晖、威联通、OpenMedBlue_Kitty| 70 评论29 收藏591查看详情


所以本教程应运而生,主要是面对没有Linux基础的用户。通过细读本文之后,让你对Liunx权限有基本的了解,可以解决NAS使用中碰到权限问题

讲解权限首先要从用户开始讲起,每个用户都有自己所属的组,一个用户可以属于多个组。

用户root所属的组是root,li所属的组是users用户root所属的组是root,li所属的组是users

在默认的情况下,当你新建一个用户的时候,会自动创建一个和用户名相同的组。比如新建了一个用户zhang,他所属的组也是zhang。

Linux权限简单讲解

但是每个NAS系统的情况不同,具体情况具体分析。OMV在网页管理界面下新建用户会默认添加到users组。

Linux权限简单讲解


Linux的权限识别一共有10位数,第一位是判断目录还是文件,d是目录,-是文件。之后每3位分别为所属用户所属组其他用户的权限。rwx分别是r(read)可读、w(write)可写、x(execute)可执行。

Linux权限简单讲解

需要注意的是,文件本身的(w)权限并不能删除文件,文件能否删除是由上级目录的写(w)权限决定的,目录的执行(x)权限决定用户是否可以进入该目录。

在命令行输入ls -l之后,会看到文件权限的情况

Linux权限简单讲解

拿bb.log来说,第一位-说明它是个文件,rw-则表示该文件的所有者具有可读可写的权限,之后的r--则是说明该文件所属组的用户其他用户都只拥有可读权限。第一个root是说明文件的所有者是用户root,第二个root则是指该文件的所属组是root。

done的第一位为d,说明done是个文件夹。由于所有人都拥有执行权限,所以任何用户都可以进入该文件夹。值得注意的是,done这里的所属组是users,那么属于users组的用户li,也同样获得r-w权限。这里说明文件的所属组并不需要和文件所有者是同一个组,也可以是同的组。

更改文件权限的命令是 chmod ,一共有数字符号两种方法

我们可以使用数字来代表各个权限,各权限的数字对照为 r:4w:2x:1

那么代表rwx权限的数字就为7(4+2+1),r-x则为5(4+1),以此类推。比较无脑解决权限问题的办法就是chmod 777,把最大权限给予所有用户。

bb.log赋予777权限bb.log赋予777权限


755权限为user拥有rwx权限,group和other拥有r-x权限755权限为user拥有rwx权限,group和other拥有r-x权限

要使目录下的文件也拥有和目录一样的权限则需要添加选项 -R

之前提过,9个权限分为3个身份,分别是usergroupother,可以缩写成u(user) ,g(group) ,o(other),a(all)则可以表示上述所有用户。+ 表示增加权限、- 表示取消权限、=表示设置权限。

如果要设置bb.log的权限user为rwx,group 与 others (go)为r-x,那么可以写成

chmod u=rwx,go=rx bb.log

Linux权限简单讲解

为group添加w权限:chmod g+w bb.log

和上面相比,group多了w权限和上面相比,group多了w权限

为所有人添加w权限:chmod a+w bb.log

为所有用户添加w权限后,other也增加了w权限为所有用户添加w权限后,other也增加了w权限


chown可以用来修改文件目录的所有者和所属组,如果要同时修改目录下的其他文件和目录也是要添加-R

把bb.log的所有者更改为li:chown li bb.log

bb.log的所有者变成了libb.log的所有者变成了li

同时更改所有者和所属组:chown li:users bb.log

root组变成了users组root组变成了users组

输入id 用户名会得到uidgid,uid和gid可以代替用户名和组名

用户li的uid为1000、gid为100用户li的uid为1000、gid为100

chown 1000:100 done 和chown li:users done 这两条命令结果是一样的,root用户的uid为0

done的用户和组从root变成了li 和usersdone的用户和组从root变成了li 和users

Docker里面常见的PUIDPGID也正是uid和gid,通过设置PUID和PGID就可以指定docker容器的运行用户

指定uid、gid为1000的用户运行容器指定uid、gid为1000的用户运行容器

在NAS的日常使用中,有时候无法删除文件,无法进入某个文件夹,这些都是权限不足导致的。权限不出错的最好办法是确保用户一致。

缺少访问权限缺少访问权限

用户zhang被用来运行qbittorrent下载文件到Download,那么也请使用zhang在SMB登陆对Download进行访问及文件管理。如果不指定qbittorrent运行用户的话,有可能默认就会以root或者其他用户运行,这时候qbittorrent下载的文件所有者就是root或者其他用户,如果使用zhang删除文件的时候很可能权限不足,导致无法删除。

大家喜欢用docker运行nextcloud搭建私人网盘。但是迁移的时候非常容易出错,即使你和之前的参数设置一模一样也无法运行。这其实也是文件权限错误导致的。对于权限要求严格的应用,先确定使用者比更改权限更重要。

Linux权限简单讲解

因为nextcloud对于权限有严格要求,其他应用可能无脑使用chmod 777就解决问题了。这时候就要先明确你需要用什么用户运行nextcloud,而不是盲目的去添加权限。比如说你需要用zhang来运行,那么就需要使用chown -R命令把nextcloud目录下全部文件的所有者都改成zhang,再用docker指定zhang运行nextcloud,这时候就权限就不会出错了。

码字不易,如果觉得本文对你有帮助,收藏的同时顺手点个赞,谢谢Linux权限简单讲解 之前好几篇文章的点赞数都不到收藏的十分一Linux权限简单讲解能帮助到更多的人是我写这些文章的初衷 Linux权限简单讲解 有疑问的留言我会尽量回复。


展开 收起
13评论

  • 精彩
  • 最新
  • 惨案,等我来顶顶

    校验提示文案

    提交
  • 无脑直接root登录

    校验提示文案

    提交
    直接root登录小心删错文件哦

    校验提示文案

    提交
    收起所有回复
  • linux搞的这么复杂,普通用户用起来十分的麻烦。等nas里面的电影看的差不多了我就换成win

    校验提示文案

    提交
  • 如果电脑里只有少数文件,权限设置用linux麻烦也就麻烦一点,如果文件多了,用linux进行权限设置将很麻烦

    校验提示文案

    提交
  • 万分感谢作者,刚刚遇到了 docker aria2 下载出来的文件死活不能移动,不能删除,原来是所属用户组的问题,简直救命了呀

    校验提示文案

    提交
  • 折腾nextcloud,我是先创建一个用户比如nextcloud,然后

    校验提示文案

    提交
  • 最近也折腾nextcloud,我是先创建一个用户比如nextcloud,然后用id nextcloud显示pid 和uid,再将这个pid和uid填入docker中的pid和uid,这样整个container就会用nextcloud用户的身份创建运行,这样就不会有权限问题

    校验提示文案

    提交
  • 最近在用unraid,碰到了关于docker权限的坑,这篇文章对我的帮助很大,感谢分享

    校验提示文案

    提交
  • 进来先点个赞

    校验提示文案

    提交
  • 的确,omv web端的权限管理和docker很容易乱掉,导致docker下比如syncthing,qbittorrent等文件访问异常。需要ssh手动设置下。感谢楼主分享。

    校验提示文案

    提交
  • 群晖好像不能设置下一级文件的权限,只能用Windows或者Linux改嘛

    校验提示文案

    提交
  • 非常感谢,难怪在电脑删不掉网络硬盘的文件,现在改了文件夹权限就可以了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
245
扫一下,分享更方便,购买更轻松