zoukankan      html  css  js  c++  java
  • linux用户管理

    1. /etc/skel目录

    /etc/skel目录是用来存放新用户环境变量文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下;默认情况下,/etc/skel目录下的所有文件都是隐藏文件(以 . 开头的文件);通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。

    /etc/skel的企业场景作用

    1、可以把通知的内容放到skel,让登录的人去看

    2、统一初始化新用户的环境变量

    3、出现-bash-4.1$问题原因及解决方法

    -bash-4.1$  whoami

    -bash-4.1$  cp  /etc/skel/.bash*.

    -bash-4.1$  logout

    2. /etc/default/useradd文件

    /etc/default/useradd文件是在使用useradd添加用户时的一个需要调用的一个默认的配置文件,可以使用“useradd  -D参数”,这样的命令格式来修改文件里面的内容

    3.useradd  添加用户      语法:useradd  用户名,例子:useradd  redhat

    重要:

    -s,指定登录shell(-s  /sbin/nologin)

    -u,指定uid;-c,注释;-d(指定家目录);-G,指定属于多个组;-m创建家目录

    -g,指定属于的主组;-e,指定过期时间;-M,不创建家目录

    4.groupadd 添加组     -g,组id;groupdel 删除组

    5.passwd 为用户设置或修改密码。例子:passwd  redhat 为redhat设置修改密码,直接passwd是当前用户修改密码。非交互式更改密码:--stdin; echo "123456" | passwd  --stdin  redhat

    6.企业场景:用户及密码管理

    1、密码要复杂 8 位以上字母数字特殊字符

    2、大的企业用户和密码统一管理(相当于活动目录,openldap)

    3、动态密码:动态口令,第三方提供自己开发也很简单

    7.chage:修改用户密码有效期限

    -l(list):显示帐户年龄信息

    -E:将帐户过期时间设为“过期日期”,日期写法:MM/DD/YY

    小结:

    /etc/skel

    /etc/login.defs

    /etc/default/useradd

    命令:

    useradd(/etc/passwd(熟悉),/etc/shadow,/etc/group,/etc/gshadow)

    passwd(/etc/passwd)

    groupadd(/etc/group)

    chage(/etc/passwd)

    8.删除用户相关命令userdel

    -r:删除家目录

    企业场景处理方法:

    一般不能确认用户相关目录有没有重要数据就不能用 -r。

    删除经验:

    1、vi  /etc/passwd 注释掉用户,观察1个月,出问题还原。操作前备份

    2、把登录 shell 改成 /sbin/nologin

    3、openldap(类似活动目录)账号统一管理的,库里干掉用户。所有服务器全部都没了

    9.last,lastb - show  listing  of  last  logged  in  users  /var/log/wtmp

    显示用户登录的历史

    lastlog  reports  the  most  recent  login  of  all  users  or  of  a  givenuser  /var/log/lastlog

    所有计算机用户最近的登录情况

    10.su,切换用户身份;-:加载环境变量;-c:以指定用户身份执行任务

    企业应用场景:以指定用户身份开机自动启动服务

    [root@redhat~]#  tail  -5  /etc/rc.local(分用户方案启动服务命令)

    su  -  test  -c  ' /bin/sh  /home/test/bin/deploy.sh '

    利用sudo控制用户对系统命令的使用权限:

    为了安全及管理的方便,可将需要root权限的普通用户加入sudo管理,这样用户就可以通过自己的普通帐户登录实现利用root的权限来管理系统了,当然也就不需要有root账号及密码了。

    执行如下visudo命令,即可打开sudo的配置文件进行编辑。

    [root@redhat~]#  visudo     #相当于直接编辑 /etc/sudoers,但用命令方式更安全,推荐。

    11.sudo,可以让普通用户可以拥有root权限去执行命令。sudo的配置文件/etc/sudoers。

    visudo,通过visudo编辑/etc/sudoers,可以检查语法

    格式如下:

    visudo 或者 vi  /etc/sudoers,在98行下面加入,也可以在其它位置加入

    root          ALL=(ALL)          ALL <==此行是98行

    redhat      ALL=(ALL)          /usr/sbin/useradd , /usr/sbin/userdel

    上述内容不同列对应的说明见如下表

    用户或组          机器=(授权角色)          可以执行的命令

    user                 MACHINE=                       COMMANDS

    redhat              ALL=(ALL)                  /usr/sbin/useradd , /usr/sbin/userdel

    提示:

    如果redhat用户被授予上述权限,那么它可在所有的机器上以所有的角色运行useradd、userdel命令。

    如果是针对用户组,则对应的授权命令如下:

    %用户组     机器=(授权使用哪个角色的权限)     /usr/sbin/useradd

    通过sudo进行授权管理系统的目的:既能让运维人员干活,又不能威胁系统安全,其实就是用户权限最小化原则,还可以审计用户使用sudo的提权操作命令。

    sudo  [参数选型]  命令

    -l:列出用户在主机上可用的和被禁止的命令;当配置好sudo授权规则后,可用这个参数来查看授权情况

    -v:验证用户的时间戳;当用户运行sudo,输入用户的密码后,在短时间内可以不用输入口令直接进行sudo操作;用-v可以跟踪最新的时间戳

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

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

    直接修改sudoers配置文件方法有以下需要注意的几点:

    1.echo命令是追加 ">>",不是重定向 ">" ,除了echo外,可以用cat,sed等命令实现类似的功能

    2.修改操作完成一定要执行 visudo  -c 进行语法检查,这弥补了直接修改没有语法检查的不足

    3.确保/etc/sudoers权限是正确的(-r--r-----),权限不对会导致sudo功能异常(Centos6权限不对也可以登录,但是/etc/sudoers是440是最安全的)

    4.及时对授权的操作进行测试,验证是否正确(最好不要退出当前授权窗口,以便发现问题及时恢复)

    5.确保知道正确的root用户密码,以便在sudo出现问题时可以通过普通用户等执行su -命令切换到root进行恢复

    配置sudo命令用户日志审计

    说明:所谓sudo命令日志审计,并不记录普通用户的普通操作。而是记录,那些执行sudo命令的用户的操作。

    生产环境企业日志审计解决方案:

    所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析、处理、展示(包括文本或者录像)

    法1)通过环境变量命令及rsyslog服务进行全部日志审计(信息太大,不推荐)

    法2)sudo配合rsyslog服务,进行日志审计(审计信息较少,效果不错)

    法3)在bash解释器程序里嵌入一个监视器,让所有被审计的系统用户使用修改过的增加了监视器的特殊bash程序作为解释程序

    法4)齐治的堡垒机:商业产品

    法5)python开发的开源产品

    开源跳板机(堡垒机)Jumpserver部署

    http://blog.51cto.com/zt/658

    CrazyEye

    http://3060674.blog.51cto.com/3050674/1700814

    配置/etc/sudoers

    增加配置“Defaults                 logfile=/var/log/sudo.log”到/etc/sudoers中,注意:不包含引号

    一行搞定sudo日志审计

    [root@redhat~]#  echo  "Defaults             logfile=/var/log/sudo.log" >> /etc/sudoers

    [root@redhat~]#  tail  -l  /etc/sudoers

    Defaults             logfile=/var/log/sudo.log

    [root@redhat~]#  visudo  -c  #检查sudoers文件语法

    /etc/sudoers  file  parsed  OK

  • 相关阅读:
    git操作详解
    藏医诊疗管理系统
    广告的转化率预估
    python字符串及其内置函数详解
    python数据类型和运算符及运算符的优先级
    lunix常用命令
    返回结果的HTTP状态码
    简单的http协议
    git 上传项目到分支
    安装及使用webpack
  • 原文地址:https://www.cnblogs.com/axzq/p/9644140.html
Copyright © 2011-2022 走看看