1.认知 root 用户

  • root 用户(超级管理员)

    无论是 Windows、MacOS、Linux 都是采用多用户的管理模式进行权限管理

    root 用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的

    • 使用普通用户在根目录下创建文件夹

    image-20230917205613159

    • 切换到 root 用户后尝试

    image-20230917205631735

    普通用户的权限,一般在其 HOME 目录内是不受限制的,一旦出了 HOME 目录,大多数地方普通用户仅有读和执行权限,无修改权限

  • su 和 exit 命令

    su [-] [用户名]
    
    • -符号是可选的,表示是否在切换用户后加载环境变量【建议带上】
    • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到 root
    • 切换用户后,可以通过 exit 命令退回上一个用户,也可以使用快捷键: ctrl + d
    • 使用普通用户,切换到其他用户需要输入密码,比如切换到 root 用户
    • 使用 root 用户切换到其他用户,无需密码,可以直接进进行切换
  • sudo 命令

    一般可以进行 su 命令切换到 root 得到最大的权限,但不建议长期使用 root 用户,避免带来系统损坏,可以使用 sudo 命令为普通的命令授权,临时以 root 身份执行

    sudo 其他命令
    
    • 在其他命令之前,带上 sudo,就可以为这一条命令临时赋予 root 授权
    • 不是所有的用户,都有权限室友 sudo,需要为普通用户配置 sudo 认证
  • 为普通用户配置 sudo 认证

    • 切换到 root 用户,执行 visudo 命令,会自动通过 vi 编辑器打开: /etc/sudoers
    • 在文件的最后添加
    用户名 ALL=(ALL)        NOPASSWD:ALL
    

    最后的 NOPASSWD:ALL 表示使用 sudo 命令,无需输入密码

    • 最后通过 :wq 保存
    • 切换回普通用户来执行命令

    image-20230917211037971

2.用户、用户组管理

  • Linux 系统中可以进行

    • 配置多个用户
    • 配置多个用户组
    • 用户可以加入多个用户组
  • Linux 中关于权限的管控级别有 2 个级别,分别为

    • 针对用户的权限控制
    • 针对用户组的权限控制

    比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限

  • 用户组管理【命令需要 root 用户来执行】

    • 创建用户组:groupadd 用户组名
    • 删除用户组:groupdel 用户组名
    • 创建用户:useradd [-g -d] 用户名
      • -g:指定用户的组,不指定,会创建同名组并自动加入,指定 -g 需要用户组已经存在,如果已经存在同名组,则必须使用 -g
      • -d:指定用户 HOME 路径,不指定,目录默认为:/home/用户名
    • 删除用户:userdel [-r] 用户名
      • -r:删除用户的 HOME 目录,不适用 -r,删除用户的时候,HOME 目录会进行保留
    • 查看用户所属组: id [用户名]
      • 加上用户名参数,则指定查看,如果不加,则查看自身当前用户的
    • 修改用户所属组:usermod -aG 用户组 用户组名
  • getent:查看当前系统中有哪些用户

    getent passwd
    

    image-20230917211837424

    • getent group:可以查看当前系统中有哪些用户组

    image-20230917212032809

3.查看权限控制

  • 认知权限信息

    通过 ls -l 可以以列表形式查看内容,并显示权限细节

    image-20230917212159936

    • 序号1:表示文件、文件夹的权限控制信息

      权限细节共分为10个槽位

      image-20230917212852605

      • 举例 drwxr-xr-x 表示

        • 首字母 d 表示,这是一个文件夹
        • 所属用户的权限是:有 r 有 w 有 x
        • 所属用户组的权限是: 有 r 无 w 有 x
        • 其他用户的权限是:有 r 无 w 有 x
      • r 代表读权限【比如 ls 命令】

      • w 代表写权限【针对文件夹,可以在文件夹内进行创建、删除、改名等】

      • x 代表执行权限【比如 cd 命令】

        image-20230917213156445

    • 序号2:表示文件、文件夹所属用户

    • 序号3:表示文件、文件夹所属用户组

4.修改权限控制 chmod

  • chmod 命令

    用来修改文件、文件夹的权限信息【注意只有文件、文件夹的所属用户或者 root 可以进行修改

    chmod [-R] 权限 文件/文件夹
    
    • -R:对文件夹内的全部内容应用同样的操作

    • 例子:

      • chmod u=rwx,g=rx,o=x hello.text:将文件权限修改为 rwxr-x--x

      u 表示 user 所属用户权限,g 表示 group 组权限,o 表示 other 其他用户权限

  • 权限的数字序号:chmod 命令快捷写法【chmod 751 hello.txt】

    权限可以用 3 位数字来代表,第一位数字表示用户全校,第二位表示用户组权限,第三位表示其他用户权限。数字的细节为: r 记为 4,w 记为 2,x 记为 1

    • 0:无任何权限【---】
    • 1:仅有 x 权限【--x】
    • 2:仅有 w 权限【-w-】
    • 3:有 w 和 x 权限【-wx】,即为 1 + 2 的权限 = 3 wx 权限
    • 4:仅有 r 权限【r--】
    • 5:有 r 和 x 权限【r-x】
    • 6:有 r 和 w 权限【rw-】
    • 7:全部权限【rwx】
  • 练习

    • 将 hello.txt 的权限修改为:r-x--xr-x 【chmod 515 hello.txt】
    • 将 hello.txt 的权限修改为:-wx-w-rw-【chmod 326 hello.txt】
    • 序号 123 代表的权限 【--x-w--wx】

5.修改权限控制 chown

  • Chown 命令

    可以进行修改文件、文件夹的所属用户和用户组,普通用户无法修改所属为其他用户或组,该命令只能用于 root 用户执行

    chown [-R] [用户]:[用户组] 文件/文件夹
    
    • -R:同 chmod,对文件夹内全部内容应用相同规则
    • 用户:修改所属用户
    • 用户组:修改所属用户组
    • : 用户分割用户和用户组
  • 实例

    • chown root hello.txt:将 hello.txt 所属用户修改为 root
    • chown :root hello.txt:将 hello.txt 所属用户组修改为 root
    • chown root:test hello.txt:将 hello.text 所属用户修改为 root,所属用户组修改为 test
    • chown -R root test:将 test 文件夹的所属用户修改为 root 并对文件夹内所有内容应用相同规则

results matching ""

    No results matching ""