在linux环境下的用户管理

linux下创建用户

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

· 用户账号的添加、删除与修改。

· 用户口令的管理。

· 用户组的管理。

Linux系统用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

###用户管理###
###1.用户存在的意义###

这个是出于安全的考量,将数据库进程限制在这个用户下,这样即使数据库服务因为什么原因被攻破,黑客拿到了shell,他依然不能提权获得整个机器的控制权,从而降低危害。与此类似的还有chroot,现在的docker都有类似的设计。
###2.组存在的一意义###



###3.用户的查看###
1)
    查看当前用户
    whoami        ##查看当前用户


2)
    系统中用户的查看
    id         ##查看指定用户id信息
    id
        -u    ##查看用户的uid
        -g    ##查看用户的gid
        -G    ##查看用户所在的所有组的id
        -n    ##显示名字而不显示id数字(*******EXIT)

    在linux环境下的用户管理



####    用户切换   ####
    su - 用户名称
    su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
    su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
    注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户

     在linux环境下的用户管理



#### 用户在系统中的存储方式  ###

在passwd目录下:
/etc/passwd 
    用户信息文件
    用户名称:密码:uid:gid:说明:家目录:默认shell

在group目录下:

/etc/group
    用户组信息文件
    组的名字:组密码:组id:组成员
 /etc/shadows
    认证信息文件

     用户名称,  用户密码,   用户最后一次被修改的的时间,  密码最短有效期,  密码最长有效期,  密码警告期限,  密码非活跃期限,  密码到期日. 
        
/etc/skel/.*
    默认开启shell的配置,用户的骨文件

/home/username
    用户的家目录

在linux环境下的用户管理

#### 用户管理命令####

1)用户的删除
      userdel
      userdel student      ##删除用户但是不能用户的配置文件
      userdel -r student   ##删除用户并删除用户的配置文件  
2)用户建立
用户信息监控命令
         watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -1/home'
   useradd      ##建立用户的,建立用户时,读取/etc/login.dafs 文件的内容确定规则

   useradd -u 8888 westos          ##指定用户的uid
   useradd -g 21   westos          ##制定用户的初始组id,"21用户组必须是存在的"
   useradd -G 21   westos          ##指定用户的附加id“21用户组必须是存在的”
   useradd  -c  "hello" westos     ##指定用户的说明
   useradd  -d /home/lee westos    ##指定用户的家目录
   useradd  -s /bin/sh westios     ##指定用户的默认shell

在linux环境下的用户管理

   groupadd           ##建立用户组
   groupadd -g 888    ##建立用户组并指定用户组的id
   groupdel           ##删除用户组

在linux环境下的用户管理

3)更改用户信息
   usermod 
   usermod -l  新名称  westos        ##更改用户的名称
   usermod -u  6666   westos        ##更改用户uid
   usermod -g  21     westos        ##更改用户的初始组
   usermod -G  21     westos        ##更该用户的附加组
   usermod -aG 72     westos        ##添加用户的附加组
   usermod  G “”      westos        ##删除用户所有附加组的身份(*****)
   usermod -d /home/lee westos      ##更改用户目录的指向
   usermod -md /home/lee westos     ##更改用户的家目录
   usermod -s /bin/sh    westos     ##更改用户的shell
   usermod -L         westos        ##冻结用户
   usermod -U         westos        ##解锁用户

在linux环境下的用户管理



####用户认证信息####(*****)
 /etc/shadow           ###记录用户认证信息

在linux环境下的用户管理
 此处文件一共有九列:
用户的名称: 用户密码: 用户最后一次被更改的时间: 用户密码最短有效期; 用户密码最长有效期:密码警告期限: 用户非**天数: 用户到期日: 用户自定义列,目前没有被启用
passwd -s westos       ##查看westos用户密码信息

#用户的名称#
 用户的密码
         passwd student
         passwd -l student       ##在用户密码前加入“!!”
         passwd -u student      ##删除用户密码前加入的“!!”
         usermod -L student      ##在用户密码前加入“!”
         usermod -u student      ##删除用户密码前加入“!”
         passwd -d westos        ##清空westos密码
 注意
         普通用户修改密码时
         1.必须知道当前永久原始密码
         2.密码不能和帐号类似
         3.密码不能是纯数字或纯字母
         4.密码不能是有序的字母和数字的组合

用户密码最后一次被更改的时间
         passwd -e westos         ##会改变用户最后一次更改密码的时间为0
                                  ##用户在登陆是会被强制修改密码
         change -d 0 westos       ##两个命令功能类似
#用户密码最短有效期#
         passwd -n 1 westos       ##westos用户在一天之内不能修改密码
         chage  -m 1 westos       ##westos用户在一天之内可以修改密码

#用户密码最长有效期限#
         passwd -x 30  westos     ##设定westos在30天内必须该密码
         chage -M  40  westos     ##
#密码警告期限#
         passwd -w 2   westos     ##密码在过期前两天有警告输出
         passwd -W 2   westos     ##
#用户非活跃期限#
         passwd -i 1   westos     ##密码在过期后仍可以登陆系统的天数
#用户到到期日#
#用户自定义列,目前没有启用#



#####用户授权######
用户授权配置文件
         /etc/sudoers
授权配置命令
        visudo
规范操作
文件100左右

普通用户     主机名称=(转换成新的用户身份)  命令1,命令2,。。。。
普通用户     主机名称=(转换成新的用户身份)  NOPASSWD: 命令

示例:
westos      desktop0.example.com=(root)  /usr/sbin/useradd       ##执行命令要密码
westos      desktop0.example.com=(root) NOPASSWD:  /usr/sbin/useradd   ##免密执行密令