权限

权限的基本介绍

这里讲解的权限指的是文件和目录的权限。

rwx权限详解

rwx作用到文件

[r]代表可读read,可以读写与查看; [w]代表可写write,可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在目录有写权限,才能删除该文件。 [x]代表可执行execute:可以被执行

rwx作用到目录

:::info [r]代表可读read:可以读取,ls查看目录内容
[w]代表可写write:可以修改,目录内创建+删除+重命名目录
[x]代表可执行execute:可以进入该目录 :::

文件及目录权限实际案例

执行指令[ls –l]后显示的内容如下:
-rw-r—r—. 1 root root 0 8月 31 15:43 a1.txt
10个字符确定不同用户能对文件干什么。

  1. [-]代表文件类型:文件(-),目录(d),软链接(l),字符设备(c),如键盘、鼠标,块文件、硬盘(b)
  2. [rw-]表示文件所有者权限为rw,且不可执行,读(r)、写(w)、执行(x)
  3. [r—]与文件拥有者同一组的用户的权限为读,但是不能读与执行
  4. [r—]不与文件拥有者同组的其他用户权限是读,不能写和执行

可用数字表示为:r= 4,w = 2,x = 1,因此rwx = 4+2+1=7
5) [1]:文件 硬链接数;目录 子目录数(包含隐藏的目录)
6) [root]:用户
7) [root]:组
8) [0]:文件大小(字节),如果是文件夹,显示4096字节
9) [8月 31 15:43]:最后修改日期
10) [a1.txt]:文件名

修改权限 chmod

基本介绍

通过chmod指令,可以修改文件或者目录的权限。

通过+、-、= 变更权限

  • 基本语法
    u:所有者 g:所有组 o:其他人 a:所有人 (u,g,o的总和)
  1. chmod u=rwx,g=rx,o=x 文件目录名
  2. chmod o+w 文件目录名:给其他人增加一个写权限
  3. chmod a-x 文件目录名:给所有人减去一个执行权限
  • 应用案例

案例1:给abc文件 的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限。

  1. 创建abc文件 [touch abc.txt]
  2. 变更权限 [chmod u=rwx,g=rx,o=x abc.txt]

案例2:给abc文件的所有者除去执行权限,增加组写的权限。
变更权限 [chmod u-x,g+w abc.txt]

1610803412218.png

案例3:给abc文件的所有用户添加读的权限。
变更权限 [chmod a+r abc.txt]

通过数字变更权限

  • 基本语法

规则:r=4,w=2,x=1 rwx=4+2=1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录名

  • 应用案例

案例1:将/home/abc.txt文件的权限修改成rwxr-xr-x,使用给数字的方式实现。
rwr = 4+2+1=7
r-x = 4+1=5
r-x = 4+1=5
变更权限 [chmod 755 abc.txt]

1610803412266.png

修改文件所有者-chown

  • 基本介绍
    chown newowner file:改变文件的所有者
    chown newowner:newgroup file:改变用户的所有者和所有组
    -R:如果是目录,则使其下所有子文件或目录递归生效。
  • 应用案例
    案例1:请将/home/abc.txt文件的所有者修改成tom,由于tom用户在自己的家目录下有写权限,因此如果想要新建目录,只能切换到home/tom或者以root用户登录。
    1. 以tom进行登录
    2. 切换到/home/tom [cd /home/tom]
    3. 用tom用户新建文件夹 [touch abc.txt]
    4. 变更权限 [chown tom abc.txt]

1610803412314.png

案例2:请将/home/kkk目录下所有的文件和目录的所有者都修改成tom,这个必须使用root用户。

  1. 以root用户登录
  2. 在/home目录下新建kkk目录,并进入到kkk[mkdir kkk] [cd kkk/]
  3. 在/home/kkk目录下新建两个文件 [touch a.txt b.txt]
  4. 变更权限(将kkk目录下的所有文件包括子目录及子目录下的所有文件,递归的将所有者改为tom) [chown -R tom kkk/]

1610803412387.png

改变文件所在组-chgrp

  • 基本语法
    chgrp newgroup file :改变文件的所在组
  • 应用案例
    案例1:请将/home/abc.txt文件的所在组修改成bandit组
    改变所在组 [chgrp bandit /home/abc.txt]

1610803412435.png

1610803412480.png

案例2:请将/home/kkk目录下所有文件和目录的所在组都修改成bandit
改变所在组 [chgrp -R bandit /home/kkk]

1610803412524.png

1610803412565.png

权限最佳实践

组:polic ,bandit
警察:jack,jerry
土匪:xh,xq

  1. 创建组
    [groupadd police]
    [groupadd bandit]
  2. 创建用户
    [useradd -g police jack]
    [useradd -g police jerry]
    [useradd -g bandit xh]
    [useradd -g bandit xq]

1610803412607.png

  1. 指定用户密码
    [passwd jack] [12345678]
    [passwd jerry] [12345678]
    [passwd xh] [12345678]
    [passwd xq] [12345678]

1610803412660.png

  1. jack创建一个文件,自己可以读写,本组人可以读,其他组人没有任何权限
    创建文件 [vim hello.txt]
    修改权限 [chmod 640 hello.txt]

1610803412709.png

  1. jack修改该文件,让其他组人可以读,本组人可以读写
    修改权限 [chmod o=r,g=rw,hello.txt]

1610803412746.png

  1. xh投靠警察
    使用root登录
    修改xh到police组 [usermod -g police xh]

1610803412785.png

  1. 使xh能进入到jack用户的家目录里
    说明:必须给xh用户x和r权限,xh用户才能进入到jack用户的家目录,使用jack给他的家目录 /home/jack的所在组一个rx的权限

登录jack用户
改变用户所在组的权限,使xh能进入到jack的家目录 [chmod g=rx jack/]
xh用户重新登录才能进入到/home/jack目录

1610803412826.png

  1. xh用户进入到jack的家目录,查看xh用户是否可以读写jack用户文件

1610803412869.png

练习题1 文件权限管理

练习题要求

  1. 建立两个组:神仙,妖怪
  2. 建立4个用户:唐僧,悟空,八戒,沙僧
  3. 设置密码:123
  4. 把悟空,八戒放入妖怪组;唐僧,沙僧放入神仙组
  5. 用悟空创建一个文件(monkey.txt,写入I am monkey)
  6. 给八戒一个rw权限
  7. 八戒修改monkey.txt,加入一句话I am pig
  8. 唐僧和沙僧对该文件没有权限
  9. 把沙僧放入妖怪组
  10. 让沙僧修改该文件monkey.txt加入一句话”我是沙僧,我是妖怪”

练习题答案

  1. 建立组

1610803412909.png

  1. 创建用户

1610803412965.png

  1. 为用户分配组

1610803413013.png

  1. 用悟空创建一个文件

1610803413062.png

  1. 使用八戒用户往monkey.txt文件中写入内容,需要修改wukong用户所在组的权限为rwx,并且bajie用户需要利用logout指令注销,重新登录后,才能生效。
  • 首先利用wukong用户登录,为bajie用户提供权限,使其能进入/home/wukong目录,指令[chmod g=rx /home/wukong/]
  • 进入/home/wukong,修改monkey.txt文件权限,使同组的其他人可以修改它,指令[chmod g=rwx monkey.txt]
  • 切换到bajie用户,进入到/home/wukong目录下,利用指令[vi monkey.txt]修改该文件

1610803413123.png

  1. 将沙僧分配到yaoguai组,并且往monkeyz中写入”我是沙僧,我是妖怪”
    由于第5步,wukong已经为所在组的其他成员授权rx,所在组的其他成员可以直接访问/home/wukong目录,在这里不需要再次授权。

1610803413169.png

细节说明

xx用户给同组成员进行rx权限后,同组的其他人必须利用[logout]指令退出后,重新登录才可以进入到该组xx用户目录中。

练习题2 综合练习

练习题要求

  1. 用root登录,建立用户mycentos,自己设定密码
  2. 用mycentos登录,在主目录下建立目录test/t11/t1
  3. 在t1中建立一个文本文件aa,用vi编辑器编辑其内容为ls -al
  4. 改变aa的权限为可执行文件(可以将当前日期追加到一个文件),运行该文件./aa
  5. 删除新建立的目录test/t11/t1
  6. 删除用户mycentos及其主目录中的内容
  7. 将linux设置成进入到命令行界面
  8. 重启或者关机linux

练习题答案

  1. 建立mycentos用户

1610803413216.png

  1. 创建目录

1610803413263.png

  1. 创建aa文件并且用vi编辑且写入ls -al

1610803413310.png

  1. 为aa.txt文件增加一个可执行权限

1610803413356.png

  1. 追加日期到aa.txt文件中

1610803413391.png

  1. 删除目录 test/t11/t1,使用指令[rm -rf test]

1610803413425.png

  1. 删除用户及其主目录

1610803413473.png

  1. 将Linux设置为命令行级别,指令是[systemctl isolate multi-user.target]

1610803413505.png

  1. 将Linux关机

1610803413553.png

细节说明

相对路径前不应该带有/,否则就变成绝对路径了