• linux中文件权限格式与chmod命令以及用户和用户组的管理


    简单了解一下linux中的文件权限格式与chmod命令

    chmod命令:改变文件或者目录的权限

      格式:chmod [参数] [<权限范围><符号><权限代码>]

      -R 或者--recursive 递归处理,表示将指定目录下的所有文件夹及其子目录一并处理

      权限范围表示方法:

        u:User 即文件或者目录的拥有这

        g:group即文件或者目录的所属群组

        o:other 除了文件或目录拥有者或所属群组之外,其他用户都属于这个范围

        a:all 即全部的用户,包含拥有者,所属群组以及其他用户

      符号:

        +号代表添加权限

        -号代表取消权限

      有关权限代号的表示如下:

        r:读取权限,数字代号为4

        w:写入权限,数字代号为2

        x:执行或切换权限,数字代号为1

        -:不具有任何权限,数字代号为0

    修改文件权限

       chown   表示修改文件或目录拥有者 
      chgrp     表示修改组 
      chmod   表示修改文件或目录的权限

    格式如下:

      # 修改文件|目录的拥有者
      chown 用户名 文件名|目录名

      # 递归修改文件|目录的组
      chgrp -R 组名 文件名|目录名

      # 递归修改文件权限
      chmod -R 755 文件名|目录名
     `chmod` 在设置权限时,可以简单地使用三个数字分别对应 **拥有者** / **组** 和 **其他** 用户的权限

    常见数字组合有(`u`表示用户/`g`表示组/`o`表示其他):
      `777` ===> `u=rwx,g=rwx,o=rwx` 
       `755` ===> `u=rwx,g=rx,o=rx`
       `644` ===> `u=rw,g=r,o=r`

    例如:chmod u-rwx jason 表示取消jason目录的用户读写执行权限

    chmod 777 jason 表示给jason目录添加所有权限

    linux权限格式如下图

     用户组的管理

      **创建组** / **删除组** 的终端命令都需要通过 `sudo` 执行

      groupadd 组名         表示添加组
      groupdel 组名          表示删除组 
        cat /etc/group           查看用户组是否添加或者删除成功,确认的方式 
        chgrp -R 组名 文件/目录名            表示递归修改文件/目录的所属组 

      组信息保存在 `/etc/group` 文件中
      `/etc` 目录是专门用来保存 **系统配置信息** 的目录

      在实际应用中,可以预先针对 **组** 设置好权限,然后 **将不同的用户添加到对应的组中**,从而**不用依次为每一个用户设置权限**

    用户的管理

      **创建用户** / **删除用户** / **修改其他用户密码** 的终端命令都需要通过 `sudo` 执行

    创建用户/设置密码/删除用户

      useradd -m -g 组 新建用户名   表示添加新用户

      参数说明:-m 自动建立用户家目录

           -g 指定用户所在的组,否则会建立一个和同名的组

      passwd 用户名         表示为该用户设置密码  如果是普通用户,直接用 passwd 可以修改自己的账户密码 
      userdel -r 用户名           表示删除用户 

      参数说明: -r 选项会自动删除用户家目录 
      cat /etc/passwd | grep 用户名    表示确认用户信息 新建用户后,用户信息会保存在 /etc/passwd 文件中 

     创建用户时,如果忘记添加 `-m` 选项指定新用户的家目录 —— 最简单的方法就是**删除用户,重新创建**
     创建用户时,默认会创建一个和**用户名**同名的**组名**
     用户信息保存在 `/etc/passwd` 文件中

     `/etc/passwd` 是用于保存用户信息的文件
     `/usr/bin/passwd` 是用于修改用户密码的程序

    `/etc/passwd` 文件存放的是用户的信息,由 6 个分号组成的 7 个信息,分别是

      1. 用户名
      2. 密码(x,表示加密的密码)
      3. UID(用户标识)
      4. GID(组标识)
      5. 用户全名或本地帐号
      6. 家目录
      7. 登录使用的 Shell,就是登录之后,使用的终端命令

    usermod命令

    * `usermod` 可以用来设置 **用户** 的 **主组** / **附加组** 和 **登录 Shell**,命令格式如下:
    * **主组**:通常在新建用户时指定,在 `etc/passwd` 的第 4 列 **GID 对应的组**
    * **附加组**:在 `etc/group` 中最后一列表示该组的用户列表,用于指定 **用户的附加权限**

    > 提示:设置了用户的附加组之后,需要重新登录才能生效!

    例如:

      # 修改用户的主组(passwd 中的 GID)
        usermod -g 组 用户名

      # 修改用户的附加组
        usermod -G 组 用户名

      # 修改用户登录 Shell
        usermod -s /bin/bash 用户名

     注意:默认使用 `useradd` 添加的用户是没有权限使用 `sudo` 以 `root` 身份执行命令的,可以使用以下命令,将用户添加到 `sudo` 附加组中

      usermod -G sudo 用户名

    要将新添加的用户添加到附加组中,下次登录才能使用该用户进行登录。


    查看用户信息

       id [用户名]   表示查看用户 UID 和 GID 信息 
       who        表示 查看当前所有登录的用户列表 
       whoami            表示查看当前登录用户的账户名

      who am i           表示查看第一次登录的用户

    用户的切换

      `su` 是 `substitute user` 的缩写,表示 **使用另一个用户的身份**

        使用格式:su 用户名

      su不接用户名,默认切换到root。

      exit 命令表示退出当前用户。su命令和exit结合使用来进行用户的切换。
       `sudo` 命令用来以其他身份来执行命令,预设的身份为 `root`

  • 相关阅读:
    linux shell 中"2>&1"含义-完美理解-费元星
    浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID -费元星
    费元星-关于百度在数据仓库-层级架构上的思考
    费元星的第二代车,基于图像识别和超声波的无人智能小车
    【完美解决】Spark-SQL、Hive多 Metastore、多后端、多库
    【费元星】crt 无法上传文件,总是显示盾牌表示-完美解决
    【费元星原创】一键安装Hadoo2.7.6 集群完全分布式脚本-完美解决
    【研发工具必备】费元星的技术成长流线图-第一版
    【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星
    【Linux搭建创建FTP服务器】---完美解决
  • 原文地址:https://www.cnblogs.com/jasonboren/p/10973666.html
Copyright © 2020-2023  润新知