zoukankan      html  css  js  c++  java
  • Linux命令系列之

    1.用户和组管理

    用户和组相关文件:

    • /etc/passwd:用户及其属性信息
    • /etc/shadow:用户密码及其相关属性
    • /etc/group:组及其属性信息
    • /etc/gshadow:组密码及其相关属性

    /etc/passwd文件格式:

    login name:登录用户名称
    passwd:密码
    UID:用户身份编号
    GID:登录默认所在组编号
    GECOS:用户全名或注释
    home directory:用户主目录,家目录,如 /home/hong
    shell:用户默认使用shell(如/bin/bash)
    

    /etc/shadow文件格式:

    登录用户名称
    用户密码:一般用sha512加密
    从1970年1月1日起到密码最近一次被更改的时间
    

    用户和组的关系:

    • 用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建主组
    • 用户的附加组:一个用户可以属于零个或多个辅助组,附属组

    1.1组管理

    Linux中可以将一个或多个用户加入用户组中,用户组是通过GID(group identifie)来唯一标识。

    • 管理员组:root - 0
    • 普通组:
      • 系统组:对守护进程获取资源进行权限分配
      • 普通组:给用户使用

    用户组命令:

    • groupadd:添加组
    • groupmod:修改组
    • groupdel:删除组
    • gpasswd:修改组密码
    • newgrp:临时切换组
    • groupmems:更改和查看组成员
    • groups:查看用户组关系

    1.2用户管理

    linux中每个用户是通过UID(user identifie)来唯一标识的。

    • 管理员UID:root - 0
    • 普通用户UID:1-60000自动分配
      • 系统用户:对守护进程获取资源进行权限分配
        1-499(centos6版本以前),1-999(centos7版本之后)
      • 登录用户:给用户进行交互式登录使用
        500+(centos6版本以前),1000+(centos7版本之后)

    用户管理命令:

    useradd命令 - 可以创建新的Linux用户

    #格式
    useradd [option] LOGIN
    #常用选项
    -u:UID
    -o:配合-u选项,不检查UID的唯一性
    -g GID:指明用户所属基本组
    -c "comment":用户注释信息
    -d HOME_DIR:以指定路径为家目录
    -s SHELL:指明用户默认shell程序
    -G GROUP:为用户指明附加组,组须事先存在
    -N:不创建私用组做主组,使用users组做主组
    -r:创建系统用户
    -m:创建家目录,用于系统用户
    -M:不创建家目录,用于非系统用户
    -p:指定密码
    
    

    usermod命令 - 可以修改用户属性

    #格式
    usermod [option] LOGIN
    

    userdel - 删除Linux用户

    userdel [option]... LOGIN
    #常见选项
    -f,--force  强制
    -r,--remove 删除用户家目录和邮箱
    

    id - 查看用户的UID,GID信息

    id [option]... [user]
    #常见选项
    -u:显示UID
    -g:显示GID
    -G:显示用户所属的组ID
    -n:显示名称,需配合ugG使用
    

    su - switch user:可以切换用户身份,并且以指定用户的身份执行命令

    #格式
    su [option...] [-] [user [args..]]
    #常见选项
    -l,--login   su -l username,相当于su - username
    -c,--command <command> 把一个简单命令传给shell
    

    切换用户的方式:

    • su username:非登录模式切换,即不会读取目标用户的配置文件,不改变当前工作目录,为不完全切换
    • su - username:登录模式切换,会读取目标用户的配置文件,切换至自己家目录,即完全切换

    passwd - 可以修改用户密码

    #格式
    passwd [options] usename
    #常用选项
    -d:删除指定用户密码
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -f:强制操作
    -n mindays
    -x maxdays
    -w warndays
    -i inactivedays:非活动期限
    --stdin:从标准输入接收用户密码
    

    用户相关命令:

    • chfn:指定个人信息
    • chsh:指定shell
    • finger:查看用户个人信息

    2.用户权限管理

    2.1 文件权限

    常用命令

    • chown:设置文件的所有者
    • chgrp:设置文件的属组

    2.1.1 文件权限介绍

    文件权限对象定义:

    • owner:属主,u
    • group:属组,g
    • other:其他,o

    文件针对访问者的权限

    • r:Readable 可读
    • w:Writeable 可写
    • x:Excutable 可执行

    对文件的权限:

    • r 可使用文件查看工具,如,cat,获取内容
    • w 可修改其内容
    • x 可以把此文件提请内核启动为一个进程,即可以执行此文件

    对目录的权限:

    • r 可以使用ls查看此目录中文件列表
    • w 可在此目录中创建文件,也可以删除此目录中的文件,而和此被删除的文件的权限无关
    • x 可以cd进入目录,可以使用ls -l看文件元数据,属于目录可访问的最小权限
    • X 只给目录x权限,不给无执行权限的文件x权限

    数学法权限:

    • r 对应数字4
    • w 对应数字2
    • x 对应数字1

    2.1.2文件授权

    授权方式:

    mode:who opt permission
    who:u,g,o,a
    opt:+,-,=
    permission:r,w,x
    

    实例:文件授权

    #给文件授予用户写执行,组写执行,其他读执行
    [root@local ~]# chmod u+wx,g-r,o=rx file.txt 
    #给目录递归授权,文件属组为读写执行权限
    [root@local ~]# chmod -R g+rwx /testdir   
    #数字授权法:给文件授权用户读写,组读,其他用户读权限
    [root@local ~]# chmod 644 file.txt        
    

    2.2 默认权限

    umask - 可以用来保留在创建文件权限

    实现方式:

    • 新建文件:默认权限 666-umask,如果所得结果某位存在执行权限(奇数),则将其权限+1,偶数不变
    • 新建目录:默认权限 777-umask

    非特权用户umask默认是002
    root的umask默认是022

    umask用法:

    [root@local ~]# umask
    #模式方式显示
    [root@local ~]# umask -S
    #输出可被调用
    [root@local ~]# umask -p
    #修改umask值
    [root@local ~]# umask num
    

    持久保存umask

    • 全局设置: /etc/bashrc
    • 用户设置:~/.bashrc

    2.3 特殊权限

    r,w,x三种特殊权限:

    • SUID
    • SGID
    • Sticky

    二进制的可执行文件上SUID特殊权限功能:

    1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
    2. 启动为进程后,其进程的属主为原程序文件的属主
    3. SUID只对二进制可执行程序有效
    4. SUID设置在目录上无意义
    

    二进制的可执行文件上的SGID权限功能:

    1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
    2. 启动为进程后,其进程的属组为原程序文件属组
    

    Sticky权限功能:

    1. 具有写权限的目录通常用户可以删除目录中的任何文件,无论该文件的权限或拥有权在目录设置Sticky位,只有文件的所有者或root可以删除该文件。
    2. sticky设置在文件上无意义
    

    特殊权限用法:

    #给文件属主添加SUID权限
    [root@local ~]# chmod u+s file.txt
    #数字授权方式:给文件属主添加SUID权限
    [root@local ~]# chmod 6xxx file.txt
    #取消文件属主SUID权限
    [root@local ~]# chmod u-s file.txt
    
    #给文件属组添加SGID权限
    [root@local ~]# chmod g+s file.txt
    #数字授权方式:给文件属组添加SGID权限
    [root@local ~]# chmod 2xxx file.txt
    #取消文件属组SGID权限
    [root@local ~]# chmod g-s file.txt
    
    #给文件其他用户添加Sticky权限
    [root@local ~]# chmod o+t dir
    #数字授权方式:给文件其他用户添加Ssticky权限
    [root@local ~]# chmod 1xxx dir
    #取消文件其他用户Sticky权限
    [root@local ~]# chomd o-t dir
    

    设定文件特殊属性:

    [root@local ~]# chattr +i file.txt  #不能删除,改名,更改
    [root@local ~]# chattr +a file.txt  #只能追加内容,不能删除,改名
    [root@local ~]# lsattr              #显示特定属性
    

    2.4 文件访问控制列表ACL

    ACL - Access Control List,实现灵活的权限管理
    除了文件的所有者,所属组和其他人,可以对更多的用户设置权限

    ACL命令用法:

    [root@local ~]# setfacl -m u:hong:- file.txt
    [root@local ~]# getfacl file.txt
    

    ACL备份和还原

    主要的文件操作命令,如cp,mv都支持ACL,只是cp命令需要加上-p参数。
    但tar等常见的备份工具是不会保留目录和文件的ACL信息

    3.相关概念及操作

    资源分派

    • Authentication:认证,验证用户身份
    • Authorization:授权,不同的用户设置不同权限
    • Accouting | Audition:审计

    安全上下文

    Linux安全上下文context:运行中的程序,即进程(process),以进程发起者的身份运行,进程所能够访问的资源的权限取决于进程的运行者身份。

  • 相关阅读:
    清除控件某个事件的所有响应函数
    docker常用命令
    WPF 如何自定义一个弹框
    C#目录:藏锋
    杂谈001:晨曦Dawn的重新连接
    SpringBoot-08:SpringBoot采用json的方式实现前后台通用的配置文件
    Mysql:存储过程游标不进循环的原因详解
    Java中如何创建一个确保唯一的名字,文件名
    C#:设置CefSharp的一些参数,比如忽略安全证书
    C#:在AnyCPU模式下使用CefSharp
  • 原文地址:https://www.cnblogs.com/hony625/p/15042496.html
Copyright © 2011-2022 走看看