48

系统账户安全及应用

 5 years ago
source link: https://blog.csdn.net/weixin_43880933/article/details/88408624?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

系统账户安全及应用

基本安全措施

计算机所谓的清理,很大一部分并不是删除,而是不让它起作用。首先为了安全起见,会对系统自带的账号进行清理。也就是限制登录,不让它起作用。

  1. 系统账号清理
  1. 将非登录用户的shell修改为/sbin/nologin
    usermod -s
    chsh命令
    chsh -s
    还可以直接vim编辑/etc/passwd文件进行修改
    chsh命令 交互式修改用户的登录权限
    MVRRb22.png!web chsh -s 非交互修改
    yYB7rm6.png!web
  2. 锁定长期不使用的账号
    passwd -l 将在密文前面加2个! 解锁passwd -u 查看passwd -s
    usermod -L 将在密文前加1个! 解锁usermod -u
    也可直接vim编辑/etc/shadow
  3. 删除无用账号(不推荐删除)
    userdel 用户名
    通过+i锁的方式锁定账号文件 /etc/passwd、/etc/shadow
    锁定:chattr +i 文件名 i锁通常用于很重要但是又不需要经常修改的文件
    解锁:chattr -i 文件名
    查看:lsattr 文件名 查看文件的特殊权限
    如果不加文件名,则是查看当前目录下的所有
    chattr只能超户使用,普通用户没有权限。+i锁定后的文件跳出了rwx读写执的范畴,强行进入只读权限,任何用户(包括超户)不允许进行任何修改,修改包括改变和新增。除非超户解除锁定。
    如果chattr +i锁定passwd文件就无法再创建用户,也无法再进行修改。
    YVnQ3aY.png!web chattr +a 文件名
    chattr +a可以追加内容,但是不能修改内容。如果+a锁定passwd文件可以创建用户,但是不能修改用户。
  1. 密码安全控制
  1. 修改某个已存在的用户密码有效期
    chage -M 天数 用户名
    passwd -x 天数 用户名
    AZB7fqz.png!web3ayi6zb.png!web
  2. 设置今后添加用户的默认密码有效期
    用vim编辑/etc/login.defs文件,修改“PASS_MAX_DAY”后面的数值
    emeMVv2.png!web
  3. 要求用户下次登录时修改密码
    chage -d 0 用户名
    63YbmuY.png!webveuaUvb.png!web
  1. 命令历史限制

    history查看历史记录

    history -c清空历史记录

    家目录下ls -a查看隐藏文件,文件.bash_history里也有记录。而且history -c无法清空。

  1. 减少历史的命令数量
    /etc/profile文件,系统全局变量文件,所有和变量相关的都应该放在这里。可以在此文件里修改任何系统全局变量,并且永久生效。
    编辑/etc/profile文件
    使用vim编辑/etc/profile文件,把“HISTSIZE=”后面的值修改为想要的数字。
    zIfuueI.png!web export HISTSIZE=数值
    export全局生效命令,当前进程下所有子进程全部生效。export HISTSIZE=修改后的数值,仅当前用户环境下生效
    iAZF3uM.png!web
  2. 注销时自动清空历史命令
    vim编辑用户家目录下的.bash_logout文件,添加history -c
    umA3iqa.png!web
  1. 终端自助注销

    TMOUT=数值 是在多长时间没有命令输入之后,退出登录

    vim编辑/etc/profile文件

    bYjQVji.png!web

    source强制重新加载命令

    后加文件名,强制重新加载指定文件

    export TMOUT=任意数值

    JviiemZ.png!web

    source强制重新加载命令

    后加文件名,强制重新加载指定文件

    .bash_logout退出时执行此文件

    为什么企业服务器用linux多

    linux操作系统里子进程如果没有对操作系统做任何改变(只是读取并没有修改),是不会给它分配操作空间的。用的还是父进程的空间。

    linux操作系统内存分配原理是 写时复制(copy on write)技术。这种技术会大大降低对内存的占用。

    切换用户su命令

    普通用户切换到别的用户都需要密码,只有超户切换到普通用户不需要密码。

    切换用户的同时,并没有关闭之前的用户。可通过exit退出当前bash回到之前的用户。

    格式 su [-] 目标用户

    参数

    -初始化环境变量,不加-环境变量不改变

    加不加-的区别

    环境变量不一样

    起始位置不一样

    如果不加-则延用之前用户的环境变量,这种方法有可能发生有些安装在用户家目录里的命令会找不到,加了-之后相当于重新登录一个用户一样。

    加不加-起始位置也会发生变化。加-会切换到用户家目录,不加则位置不发生变化。

    z67vmaJ.png!web

    su -c

    临时切换到某一个用户,执行一个命令,执行完自动返回到当前用户。切换到一个shell执行一个命令,然后退出所切换的用户环境。需要输入root的密码。

    eIZjE3i.png!web

    如果是root切换普通用户则不需要密码,通常用于/etc/rc/local文件里,因为此文件开机执行是以超户身份执行,但是为了确保安全有些进程必须以普通用户身份执行就会用到-c参数。

    查看su操作记录

    n22ERvZ.png!web

    提升权限sudo命令

    su命令的缺点

    aauQjqj.png!web

    作用

    让普通用户临时执行超户的权限

    用法格式

    sudo 后加授权的命令,如果是未授权的命令则会被拒绝权限。

    sudo是提取权限,不是切换用户,所以输入的密码是自己账户的密码。默认为首次执行时,输入当前用户的登录密码,5分钟内再次执行sudo命令则无需再次输入密码。

    参数

    sudo -l

    查看当前用户在主机上可用的和被禁止的命令,配置好sudo权限后,可以用这个参数来查看授权情况。

    sudo -v

    验证用户的时间戳,当前用户运行sudo输入用户密码后,在短时间内不用再次输入密码也可直接进行sudo提权,用此参数可以跟踪最新的时间戳

    sudo -u

    指定以某个用户身份执行特定的命令操作

    sudo -k

    效果同-K,删除时间戳,下一个sudo命令需要提供密码,前提是该用户不能有NOPASSWD参数,时间戳默认5分钟也会失效

    对单用户授权

    visudo命令

    /etc/sudoers文件只能通过visudo命令才能修改,文件修改后只有文件关闭才会生效。

    /etc/sudoers文件里98行 root ALL=(ALL) ALL

    其中root为用户 第一个ALL是IP地址

    第二个(ALL)是主机名,可以不写代表所有主机名

    第三个ALL是所有的命令能干什么

    命令前加!取反代表不能使用那个命令,取反的命令要放到后面

    如果需要授权多个命令则用,逗号做区分

    Nopasswd是免密码 加在第二个ALL后面,第三个ALL前面

    7VjuIbZ.png!web

    授权命令组,但限制具体命令

    BRjUn2i.png!web

    限制命令执行范围

    MRBzim2.png!web

    对用户组授权

    %是对用户组授权,后加用户组名称

    QBRjEb2.png!webFF3E7z3.png!web

    配置sudo命令用户行为日志审计

    IzuA736.png!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK