用户管理

  1.  用户分类

 01. root 皇帝 uid 0

 02. 虚拟用户 傀儡  UID1-499 

       linux下 每个程序、服务运行的时候都需要一个用户

       傀儡用户不需要用来登录系统 

       用户的命令解释器 /sbin/nologin

 03. 普通用户  UID 500+     到六万多

       UID  user id 身份证号码

        GID  group id  用户组id

 #知道用户属于哪些用户组

 

 

#这个用户组中有哪些用户

 

 

 

 

  1.2 用户相关的配置文件

/etc/passwd      用户的信息

/etc/shadow      用户密码信息

/etc/group       用户的 用户组信息

/etc/gshaadow    用户组密码信息

 

 

 

 

 

 

1.3 与用户相关的目录

 /etc/skel
/etc/skel 下都是隐藏文件,以点 . 开头都是隐藏文件
~/.bash_logout    用户退出系统的时候   登出  会运行里面的内容

~/.bash_profile   存放环境 变量 别名  

~/.bash_bahsrc    作用 /etc/bashrc 一样  放别名

新用户的老家的模板(新用户家目录的样子)

 

useradd oldboy 添加一个用户

相当于 cp /etc/skel/* cp /etc/skel/.bash*   /home/oldboy 复制到用户家目录

 

 

如下登录环境故障的原理及解决办法?

命令行  -bash-4.1$

 

 

 

解决:

进入故障用户   

 

 

从  /etc/skel/.bash  复制一个家目录   

复制的时候一定要注意  /etc/skel/.*  会把以点开头的所有东西复制  

 

 

 

1.5 用户管理命令

1.5.1 用户相关的命令

    01. 添加用户

 useradd   添加用户
-u 指定用户的UID (数字 身份证号) -s 指定用户使用的shell /bin/bash 默认 /sbin/nologin 手动添加一个傀儡用户 虚拟用户 -M 表示不创建家目录 一般创建虚拟用户使用 -s /sbin/nologin -M sM 创建虚拟用户配合使用 -g 指定 用户属于的组(组的名字)添加用户的时候 默认创建以个与用户名一样的家庭

 

 

 

来个列子:

添加一个用户 lishichao999 指定UID为880 禁止用户登录系统 不创建家目录  

(添加一个UID是880的虚拟用户lishichao999)

 

 

    02. 删除用户

  userdel   删除用户  在/etc/passwd 文件中先注释掉,保留数据

  userdel   默认不删除用户的家目录和邮箱

  -r        连窝端删除与用户有关的所有信息(家目录)

 

  03. 修改用户信息

 usermod   修改用户的信息 (这个用户已经存在了)

 -s        修改用户使用的shell

 -g        属于的家庭  用户组名字  主要组
 
 -G        属于多个家庭  附加组

 

 

 

chage:密码失效是通过此命令来管理的。

  参数意思:
  -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
  -M 密码保持有效的最大天数。
  -W 用户密码到期前,提前收到警告信息的天数。
  -E 帐号到期的日期。过了这天,此帐号将不可用。
  -d 上一次更改的日期
  -I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
  -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

 

 

4.passwd  修改用户密码

 

--stdin 从管道中获取用户的密码(非交互式设置密码)

 

Changing password for user oldboy.   无需交互更改密码

passwd: all authentication tokens updated successfully.   命令更改成功

 

 

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

密码要复杂12位以上字母数字特殊字符

KeePass-1.33  通过软件管理命令

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

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

 

 如何让系统更安全

1.最小化安装系统,安装软件。   软件就相当于系统的窗口,越多越不安全

2.保护好root 

禁止root用户远程登录 

修改远程连接端口号22

 通过 /var/log/secure日志分析  谁在登录你的系统   failure或Failed

 

3.文件系统权限

给常用命令  +i

给系统配置文件 +a

4.给重要的文件或命令 做一个指纹

 

1.创建指纹

 

2.记录指纹

 

添加内容后指纹发生变化  指纹记录到 jilu.txt 指纹库

#根据记录指纹 对比

 

   ##FAILED  指纹变化了          md5sum –c jilu.txt

 

##OK  指纹没变

指纹是用来 验证文件内容是否变化。

不会影响你使用文件。 

监控重要文件是否被修改了

(中病毒的时候 修改你的重要文件了)

 

 

1.5.2 用户组相关命令

groupadd   创建新的用户组

-g  指定用户组的gid数字

添加一个虚拟用户 用户mysql 指定用户的uid gid都是999

 

 

1.5.3 用户查询命令

id  查看用户的信息

一个用户是否存在

查询用户的 uid   gid

 属于哪个组

lastlog  显示linux中所有用户最近一次远程登录系统的信息

 

 

last哪个用户在什么时候 从哪里远程登录你的系统   用户登录的信息

   

w   显示系统中已经远程登录的用户 在干啥                        1分钟  5分钟   15分钟

 

 

 

 窗口太小了,放大就好了

 

1.5.4 查看系统性能命令

w

uptime  

 

##top  顶替了uptime ,free –h  ,ps  -ef

查看cpu负载  内存信息  正在运行的进程   -M按照内存使用率排序     -P按照CPU使用率排序

 

## ps  显示系统进程信息

 -ef 显示所有正在运行的进程

 aux 显示进程详细信息  CPU 内存使用率

 

##sort 排序 默认按照字母顺序

-n  按照数字顺序  -nr 倒序查看  -rnk4  第四列  倒序查看  -h   以大小参数排序

 

 

 

1.6 sudo授权使用

su 与  su -  区别

-是su命令的参数,表示切换用的时候更新环境变量。 env 查看环境变量

 

 

sudo是什么?

开发人员,其他人员,想临时使用 看系统的日志 删除软件的日志 人事添加用户

普通用户想临时成为皇帝。 sudo 让普通用户执行一些或者全部的root命令。

sudo授权注意最小话,保护好root。

怎么使用sudo

sudo –l  查看当前用户sudo权限

 

若用户不在sudoers中会提示不能运行sudo命令,存在则会显示详细的权限

visudo给用户授予

visudo  就相当于 vim /etc/suduers  方便,有语法检查功能

1.授权某一命令  visudo  到92行 “92gg”

 

 

命令前面 要加sudo  还需要输入 用户的密码

2.授权多个命令  

 

 逗号,空格 分割命令

3.授权所有命令并且不用密码

 

4.授权某个目录下面的所有命令

 

排除某个命令

 

 

 

 

 

posted @ 2018-03-31 20:19  LiShiChao  阅读(187)  评论(0)    收藏  举报