Linux基础(3)/用户及文件权限管理

时间:2021-01-07 08:14:45

Linux基础(3)/用户及文件权限管理

  1. 用户管理
    Linux 是一个可以实现多用户登陆的操作系统。比如“李雷”和“韩梅梅”都可以同时登陆同一台主机。他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。逻辑上的分离不等于物理上的分离。实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看、修改彼此的文件。

    1. 查看用户
      查看用户有两个经典的命令:

      who mom likes
      who am i

      如果你曾经玩过war3的话,肯定知道这个秘籍,whosyourdaddy。只不过在Linux中,换成了who mom likes 并且Linux的确回答了你的问题,输出了打开当前终端的用户的信息。
      who 命令其它常用参数

      参数 说明
      -a 打印能打印的全部
      -d 打印死掉的进程
      -m 同am i,mom likes
      -q 打印当前登录用户数及用户名
      -u 打印当前登录用户登录信息
      -r 打印运行等级

      Linux基础(3)/用户及文件权限管理

    2. 创建用户 
      我们一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。Linux中切换用户与获取权限的操作主要有su、su -、sudo三个命令。 

      su user 可以切换到用户user,执行时需要输入目标用户的密码
      su - user 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
      sudo cmd 可以以特权级别运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码。

      Linux基础(3)/用户及文件权限管理
      通过adduser便可创建新用户,需要注意的是,使用adduser命令需要系统权限和当前用户密码。

    3. 删除用户


      sudo deluser <name> --remove-home
    4. 用户组
      在Linux中所有文件都有一个用户,所有的用户都有一个用户组。

      用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。

      • 如何查看用户组?
        1. 使用groups命令
          Linux基础(3)/用户及文件权限管理
          • 输出内容中冒号之前表示用户,后面表示该用户所属的用户组。例:anranzhou冒号后面表示的是各种用户组,比如sudo,dip等等。
          • 每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。例:新建的用户yinjuan没有指定用户组,于是自动创建了一个用户组yinjuan。同时,用户yinjuan属于用户组yinjuan。
        2. 查看/etc/group文件
          Linux基础(3)/用户及文件权限管理
          • cat /etc/group 表示输出在文件夹etc下,group文件的内容
          • /etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User)。其中用户组口令处的x表示密码不可见。
          • |sort 表示讲cat /etc/group输出的内容进行排序
          • |grep -E “anranzhou” 表示讲cat /etc/group |sort 输出的内容进行过滤,其中-E表示使用扩张的正则表达式进行匹配;“anranzhou”表示匹配的字符串。
      • 将其它用户加入 sudo 用户组
        使用命令


        sudo usermod -G sudo 'name'

        Linux基础(3)/用户及文件权限管理

  2. 文件管理

    1. 查看文件权限

      • ls命令
        Linux基础(3)/用户及文件权限管理
        怎么理解上述输出?
        Linux基础(3)/用户及文件权限管理
        文件类型和权限共有10个字符,分为四部分。第一个字符为第一部分,表明文件类型。剩下9个字符,每3个字符为一个部分,分别表示用户,用户组,其他用户对该文件的权限。
        Linux基础(3)/用户及文件权限管理
        • 一个文件只有读权限和执行权限才能打开
        • 一个文件有写权限才能先该文件写入信息
        • 如果一个文件没有写权限那么对应的表示方式为:在本该出现w的地方画上-作为占位符,目的是为了保持10个字符。
      • ls命令的其他参数 
      command line mean
      ls -a 显示当前文件夹所有的文件(包括.和 ..)
      ls -s 显示文件大小
      ls -sS 显示文件大小并排序
      ls -sSh 以人类可读的方式显示文件大小并排序
      ls -dl 查看某一个目录的完整属性,而不是显示目录里面的文件属性
    2. 变更文件所有者

      sudo chown anranzhou <filename> #使用chown命令变更文件所有者

      Linux基础(3)/用户及文件权限管理

    3. 修改文件权限
      1. 二进制数字表示 
        Linux基础(3)/用户及文件权限管理
        • 一个文件有三组权限分别对应用户、用户组、其他用户,所以可以用三个数字表示文件权限。对应关系如上图。如:750表示用户有读写执行的权限,用户组有读和执行的权限,而其他用户没有rwx任何一个权限。
          Linux基础(3)/用户及文件权限管理
      2. 加减表示
        go还有u,分别表示group,others,user,’+’,’-’ 就分别表示增加和去掉相应的权限。
        Linux基础(3)/用户及文件权限管理