zoukankan      html  css  js  c++  java
  • Linux入门基础(三):Linux用户及权限基础

    用户基础

    用户和组

    • 每个用户都拥有一个userid
    • 每个用户都属于一个主组,属于一个或多个附属组
    • 每个组拥有一个groupid
    • 每个进程以一个用户身份运行,受该用户可访问资源限制
    • 每个可登陆用户拥有一个指定的shell

    用户

    • userid为32位,从0开始,为了和老式系统兼容,用户id限制在60000以下
    • 用户分为三种
      • -root用户(id为0的用户)
      • -系统用户(id为1~499的用户)
      • -普通用户(500以上)
    • 系统中的文件都有一个所属用户及所属组
    • 使用id命令可以显示当前用户的信息
    • 使用passwd命令可以修改当前用户密码

    相关文件

    • /etc/passwd 保存用户信息
    • /etc/shadow 保存用户密码(加密的)
    • /etc/group 保存组信息

    查看登录的用户

    • 命令whoami显示当前用户
    • 命令who显示有哪些用户已经登陆系统
    • 命令w显示有哪些用户已经登陆并且在干什么

    创建一个用户

    命令useradd用来创建一个用户

    -d 家目录

    -s 登陆shell

    -u userid

    -g 主组

    -G 附属组(最多31个,用逗号分隔)

    例如

    useradd -u 600 -g group1 user1
    

    这个命令会执行以下操作 :

    1. 在/etc/passwd中添加用户信息
    2. 如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中
    3. 为用户建立以个新的家目录/home/用户名
    4. 将/etc/skel中的文件复制到用户家目录中
    5. 建立一个与用户用户名相同的组,新建用户默认属于这个同名组

    修改用户信息

    命令usermod用来修改用户信息
    -l 新用户名

    -u 新userid

    -d 用户家目录位置

    -g 用户所属主组

    -G 用户所属附属组

    -L 锁定用户使其不能登录

    -U 解除锁定

    例如

    usermod -u 700 user1
    

    删除用户信息

    命令userdel用以删除指定用户:

    例如

    #删除指定用户,保留用户家目录
    userdel user1
    #删除指定用户,同时删除用户家目录
    userdel -r user1
    

    几乎所有操作系统都有组的概念,通过组,我们可以更加方便的归类,管理用户

    一般来件,我们使用部门,职能或地域的分类方式来创建使用组

    • 每个组都有一个组id
    • 组信息保存在/etc/group中
    • 每个用户都拥有一个主组,同时还可以拥有最多31个附属组

    创建组

    命令groupadd用来创建组

    例如

    groupadd group1
    

    修改组

    命令groupmod用来修改组

    例如

    #修改组名
    groupmod -n group2 group1
    #修改组id
    groupmod -g 601 600
    

    删除组

    命令groupdel用来删除组

    例如

    groupdel group2
    

    权限机制

    权限是操作系统用来限制对资源访问的机制

    每个进程都以某个用户的身份运行,所以进程的权限和该用户的权限一样

    文件权限

    文件拥有三种权限 :

    权限 对文件的影响 对目录的影响
    r (读取) 可读取文件内容 可列出目录内容
    w (写入) 可修改文件内容 可在目录中创建删除文件
    x (执行) 可以作为命令执行 可访问目录内容

    目录不许拥有x (执行权限) , 否则无法查看其内容

    UGO模型

    Linux权限基于UGO模型进行控制

    • U代表User , G代表Group , O代表Other
    • 每一个文件的权限基于UGO进行设置
    • 权限三个一组(rwx),对应UGO分别进行设置,总共9个 例如 rwxrwxrwx
    • 每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件的所属用户或组的使用O权限

    修改文件所属用户和所属组

    命令chown用以改变文件的所属用户

    例如

    #chown   用户名  文件名/文件夹
    chown user1 /var/www/aaa
    #-R 递归修改目录下所有文件
    

    命令chgrp用以修改文件的所属组

    例如

    #chgrp 组名 文件名/文件夹
    chgrp group1 /var/www/aaa
    #-R 递归修改目录下所有文件
    

    修改权限

    命令chmod用以修改文件的权限
    chmod 模式 文件

    模式为如下格式 :

    • u,g,o分别代表用户,组和其他
    • a可以代指ugo
    • +,- 代表假如或删除对应的权限
    • r,w,x 代表三种权限

    模式示例 :

    #所属用户加入读写权限
    chmod u+rw fileName
    #所属组删除执行权限
    chmod g-x fileName
    #所属组和其他加入执行权限
    chmod go+x fileName
    #ugo都删除执行权限
    chmod a-x fileName
    

    chmod 也支持数字方式修改权限,分别由三个数字表示
    -r = 4 (2^2)
    -w = 2 (2^1)
    -x = 1 (2^0)
    使用数字表示权限时,每组权限分别对应数字之和
    rw=4+2=6
    rwx=4+2+1=7
    r-x=4+1=5
    所以,使用数字表示ugo权限使用如下方式表示:
    chmod 660 fileName == rw-rw----
    chmod 775 fileName == rwxrwxr-x

    扩展权限

    默认权限

    • 每一个终端都拥有一个umask属性,来确定新建文件 , 文件夹的默认权限

    • 目录的默认权限:777-umask

    • 文件的默认权限:666-umask

    • 一般对于普通用户默认的umask是002,root用户的默认是022

      • 新建文件的权限是:666-002=664
      • 新建目录的权限是:777-002=775
    • 命令umask用以查看 , 设置umask值

      • #查看
        umask
        #设置
        umask 022
        

    特殊权限

    除普通权限外,还有三个特殊权限:

    权限 对文件的影响 对目录的影响
    suid 以文件的所属用户身份执行
    sgid 以文件的所属组身份执行 在该目录中创建的任意新文件的所属组与该目录的所属组相同
    sticky 对目录拥有写入权限的用户可仅可以删除其拥有的文件,无法删除其他用户所拥有的文件

    设置特殊权限

    • 设置suid:

      chmod u+s fileName

      即rwsrwxrwx

    • 设置sgid:

      chmod g+s fileName

      即rwxrwsrwx

    • 设置sticky:

      chmod o+t fileName

      即rwxrwxrwt

    与普通权限一样,特殊权限也可以使用数字方式表示

    - SUID = 4

    - SGID = 2

    - Sticky = 1

    所以可以通过一下命令 设置

    chmod 4755 fileName

    即rwsrwxrwx

  • 相关阅读:
    MySQL5.7安装教程(压缩版)
    ASP.Net 添加 Interop for Word, excel 插件
    OpenLayers-加载地图数据(Google Map)
    OpenLayers学习方法
    OpenLayers 项目分析——(二)源代码总体结构分析{感谢原作者对于大家的贡献!}
    OpenLayers项目分析——(一)项目介绍{感谢原作者为大家的贡献!}
    OpenLayers 项目分析——(三)BaseTypes {感谢原文作者对于大家的贡献!!!}
    GeoServer安装及配置过程(配置shapefile)
    如何查询postgreSQL 里面某个数据库中所有用户定义的数据表的名字
    WebGIS(PostgreSQL+GeoServer+OpenLayers)之三 OpenLayers客户端数据显示
  • 原文地址:https://www.cnblogs.com/FromZeroToGod/p/10676774.html
Copyright © 2011-2022 走看看