写点什么

用户权限 -Linux 系统基本权限

作者:Albert Edison
  • 2022 年 8 月 20 日
    四川
  • 本文字数:2541 字

    阅读完需:约 8 分钟

用户权限-Linux系统基本权限
  • 权限修改命令 chmod

  • 属主属组修改命令 chown

  • 基础权限设置案例


Linux 中的文件或目录的权限和用户及用户组关联很大,Linux 中每个文件或目录都有一组共 9 个基础权限位,每三个字符被分为一组,他们分别是属主权限位(占三个字符)、属组权限位(占三个字符)、其他用户权限位(占三个字符)


比如 rwxr-xr-x linux 中正是这 9 个权限位来控制文件属主(User)、属组(Group)、其他用户(Other)基础权限。

用户对资源来说, 有三种角色

  1. User(u): 属主用户(文件所有者)

  2. Group(g): 属组用户(包含组成员)

  3. Other(o): 匿名用户(其他人)

一个用户访问文件流程如下

  1. 判断用户是否为文件的所有者,如果是,按所有者的权限进行访问

  2. 判断是否为文件的所有组成员,如果是,就按组的权限去访问

  3. 最终用户就是文件的其他的人,按其他人的权限去访问


rwx, rwx, r-x


User Group Other

权限与属主属组

文件权限对应表


如果权限位不可读、不可写、不可执行,则用-来表示

权限与属主属组作用示例图


  • chown: Linux 中用来改变某个文件属主的命令, 如漫画中所示, 将某个”资源”(门)的访问权限给予别人。(卖房)

  • chmod: Linux 中用来改变某个文件的访问模式的命令, 如漫画中所示, chmod 777 会将大门敞开, 谁都可以进出。(租房)



1.权限修改命令 chmod

chmod //修改文件目录权限 rwx -R 级联修改
[root@liza ~]# mkdir dir        ---建立目录[root@liza ~]# touch dir/file   ---建立文件
复制代码
示例一:修改 dir 目录权限为 777
[root@liza ~]# chmod 777 dir/[root@liza ~]# chmod u+rwx,g+rwx,o+rwx dir/
复制代码
示例二:修改 file 文件权限为 666
[root@liza ~]# chmod 666 dir/file [root@liza ~]# chmod u+rw,g+rw,o+rw dir/file 
复制代码
示例三:修改目录及子目录权限
[root@liza ~]# chmod -R 766 dir/
复制代码



2.属主属组修改命令 chown

chown //更改属主以及属组 -R:级联修改
[root@liza ~]# mkdir dir            ---创建目录[root@liza ~]# touch dir/file_test  ---创建文件[root@liza ~]# mkdir dir/dir_test   ---创建目录
复制代码
示例一
[root@liza ~]# chown bin dir/       ---修改所属住为bin[root@liza ~]# ll -d dir/           ---检查属主drwxr-xr-x. 3 bin root 39 Jan  6 17:54 dir/
复制代码
示例二
[root@liza ~]# chown :adm dir/      ---修改所属组为adm[root@liza ~]# ll -d dir/           ---检查属组drwxr-xr-x. 3 bin adm 39 Jan  6 17:54 dir/
复制代码
示例三
[root@liza ~]# chown -R root:root dir/      ---递归修改目录及目录下的所有文件属主和属组[root@liza ~]# ll -d dir/drwxr-xr-x. 3 root root 39 Jan  6 17:54 dir/
复制代码



3.基础权限设置案例

3.1、文件权限实验案例:
默认文件匿名用户仅有读权限
[root@liza ~]# echo "date" >> filename[root@liza ~]# ll filename -rw-r--r--. 1 root root 5 Jan  6 18:02 filename
复制代码
测试读权限(无法执行或删除)
[root@liza ~]# su - liza[liza@liza ~]$ cat /root/filenamedate
复制代码
增加 x 执行权限
[root@liza ~]# chmod o+x /root/filename [root@liza ~]# ll /root/filename -rw-r--r-x. 1 root root 5 Jan  6 18:02 /root/filename
复制代码
测试执行权限
[liza@liza ~]$ /root/filename
复制代码
增加 w 执行权限
[root@liza ~]# chmod o+w /root/filename [root@liza ~]# ll /root/filename -rw-r--rwx. 1 root root 5 Jan  6 18:02 /root/filename
复制代码
测试执行权限
[liza@liza ~]$ vim /root/filename
复制代码



3.2、rwx 对文件的影响
读取权限(r)

文件只有 r 权限: 具有读取\阅读文件内容权限


  1. 能使用查看类命令 cat、head、tail、less、more

  2. 不能复制、不能移动、不能编辑,不能删除

写入权限(w)

如果文件只有 w 权限: 具有新增、修改文件内容的权限


  1. 使用 vim 编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容

  2. 使用 echo、cat 命令重定向或追加重定向技术可以往文件内写入数据

  3. 不能复制、不能移动、不能删除,(删除需要看上级目录 w 的权限)

执行权限(x)

文件只有 x 权限,具有执行文件的权限(注意: 普通用户需要有 r 权限,管理员不需要)


  1. 不能执行、查看、编辑、复制、移动、删除



目录权限实验案例:

实战案例 1: 对目录没有 w,对文件有 rwx


[root@liza ~]# mkdir /dirname[root@liza ~]# echo "test" >> /dirname/filename[root@liza ~]# chmod 777 /dirname/filename [root@liza ~]# ll -d /dirname/filename -rwxrwxrwx. 1 root root 5 Jan  6 18:18 /dirname/filename
复制代码


普通用户验证权限


[liza@liza ~]$ cat /dirname/filename test[liza@liza ~]$ rm -f /dirname/filename rm: cannot remove ‘/dirname/filename’: Permission denied
复制代码


实战案例 2: 对目录有 w,对文件没有任何权限


[root@liza ~]# chmod 777 /dirname/[root@liza ~]# chmod 000 /dirname/filename [root@liza ~]# ll -d /dirname/drwxrwxrwx. 2 root root 22 Jan  6 18:18 /dirname/[root@liza ~]# ll -d /dirname/filename ----------. 1 root root 5 Jan  6 18:18 /dirname/filename
复制代码


普通用户验证权限


[liza@liza ~]$ cat /dirname/filename cat: /dirname/filename: Permission denied[liza@liza ~]$ rm -f /dirname/filename [liza@liza ~]$ touch /dirname/filename_2
复制代码



rwx 对目录的影响
目录只有 r 权限: 具有浏览目录及子目录权限
  1. 能使用 ls 命令浏览目录及子目录, 同时会提示权限拒绝

  2. 能使用 ls -l 命令浏览目录及子目录, 会带问号,同时只能看到文件名


总结: 目录只有 r 权限,仅仅只能浏览内的文件名,无其他操作权限

写入权限(w)

如果目录只有 w 权限: 具有增加、删除或修改目录内文件名权限(需要 x 配合)


//注意: 如果目录有 w 权限, 可以在目录内创建文件, 删除文件(跟文件本身权限无关)


不能进入目录、不能复制目录、不能删除目录、不能移动目录

执行权限(x)

目录只有 x 权限


  1. 只能进入目录

  2. 不能浏览、复制、移动、删除



权限小结:

  1. 文件 rw 权限, 可以查看和编辑文件内容

  2. 文件 rx 权限, 只能查看和执行文件、不能编辑、复制、移动、删除

  3. 目录 rx 权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录

注意事项:

  1. 文件, x 权限小心给予,建议赋予 r 或 rw 即可

  2. 目录, w 权限小心给予,建议无特殊需求赋予 rx 即可




实验


  1. 创建 andy,alice 用户为 ateam 组, 用户统一使用 password 为密码

  2. 要求 ateam 组的成员可以访问/home/ateam-text 目录, 并且可以在目录下创建,删除文件, 在目录下 andy 创建的文件可以让 alice 修改.

发布于: 刚刚阅读数: 3
用户头像

Albert Edison

关注

目前在某大厂担任后端开发,欢迎交流🤝 2022.03.08 加入

🏅️平台:InfoQ 签约作者、阿里云 专家博主、CSDN 优质创作者 🛫领域:专注于C语言、数据结构与算法、C++、Linux、MySQL、云原生的研究 ✨成就:2021年CSDN博客新星Top9,算法领域优质创作者,全网累计粉丝4W+

评论

发布
暂无评论
用户权限-Linux系统基本权限_Linux_Albert Edison_InfoQ写作社区