用户和组

用户和组

touch /etc/nologin
    系统做维护时不想普通用户登录,就可以创建这个文件,也可以在里面写一些提示。
    维护完之后删除这个文件就可以自动恢复
    
touch /run/nologin
    与上述命令功能相同,但是这个命令只有在CentOS7上可以用。
用户(USER)
根据所具有权限的不同,用户分为两类:
    管理员用户:root,UID为0.(只有管理员用户才能为0)
    普通用户:UID  1-65535
        普通用户又可以分为两类:
        系统用户:保障系统运行的用户,一般不提供密码登录系统,其UID为1-499(CentOS6)、1-1000(CentOS7)之间.
        登录用户:即一般用户,其使用系统的权限受限,其UID为500-60000(CentOS6)、1000-60000(CentOS7)之间.(一般默认使用到60000)
        名称解析:名称转换
            Username<-->UID
                根据名称解析库进行:/etc/passwd
组(group)
Linux组:Groupname /  GID
    与用户一样,组也是分为两类:
        管理员组:root  0 
        普通组:
            系统组:1-499(CentOS6)、1-999(CentOS7)
            普通组:500-60000(centos6)、1000-60000(CentOS7)
组的类别:
    主组:(主要组,基本组):
        用户必须拥有和属于一个主组,主组有且只有一个。
        主组名与用户名相同,且仅包含一个用户:是私有组。
        
    附加组:(辅助组)
        一个用户可以属于零个或一个或多个附加组
            
    名称解析:名称转换
        groupname<--->gid
            解析库:/etc/group
用户和组的配置文件
Linux 用户和组的主要配置文件:   
         /etc/passwd :用户及其属性信息( 名称、UID 、主组ID 等)    
         /etc/group :组及其属性信息    
         /etc/shadow :用户密码及其相关属性    
         /etc/gshadow:组密码及其相关属性
  • passwd文件格式

     login name :登录用名
     passwd :密码
     UID号 :用户身份编号
     GID :用户所属主组的ID号
     GECOS :用户全名或注释
     home directory(家目录) :用户主目录 
     shell :用户默认使用shell
  • shadow文件格式

登录用名:
    用户密码: 一般用sha512 加密
    最近一次修改密码的时间:从1970 年1 月1 日起到密码最近一次被更改的时间         
    最短使用期限:密码再过几天可以被变更(0 表示随时可被变更)
    最长使用期限:密码再过几天必须被变更(99999 表示永不过期)
    警告期段:密码过期前几天系统提醒用户(默认为一周)
    密码过期几天后帐号会被锁定
    从1970 年1 月1 日算起,多少天后帐号失效。
  • group文件格式

    群组名称:就是群组名称
      群组密码:通常不需要设定,密码是被记录在/etc/gshadow
      GID的 :就是群组的 ID
      以当前组为附加组的用户列表(分隔符为逗号)
  • gshadow文件格式

    群组名称:就是群组名称
      群组密码:
      组管理员列表:组管理员的列表,更改组密码和成员
      以当前组为附加组的用户列表:(分隔符为逗号)
  • 密码加密

    加密机制:
          加密:明文-->  密文
          解密:密文-->  明文
      单向加密:哈希算法,原文不同,密文必不同
          相同算法定长输出,获得密文不可逆推出原始数据
          雪崩效应:初始条件的微小改变,引起结果的巨大改变
          md5: message digest, 128bits
          sha1: secure hash algorithm, 160bits
          sha224: 224bits
          sha256: 256bits
          sha384: 384bits
          sha512: 512bits
      更改加密算法 authconfig --passalgo=sha256 -- update
  • 用户和组的管理命令

    用户管理命令
          useradd    增加用户
          usermod    修改用户属性
          userdel    删除用户
      组帐号维护命令
          groupadd    增加组
          groupmod    修改组属性
          groupdel    删除组

用户创建

  • useradd

    useradd [options] login_name
      参数:
    
          -u UID:手动指定用户UID,默认的话是上一个用户的UID+1
              [root@localhost ~]# tail -2 /etc/passwd
              sarah:x:2009:2010::/home/sarah:/sbin/nologin
              haha:x:2010:2011::/home/haha:/bin/bash
              [root@localhost ~]# useradd haha2
              [root@localhost ~]# tail -2 /etc/passwd
              haha:x:2010:2011::/home/haha:/bin/bash
              haha2:x:2011:2012::/home/haha2:/bin/bash
    
    
          -o  配合-u  选项,不检查UID 的唯一性
              [root@localhost ~]# useradd -ou 2011 haha3
              [root@localhost ~]# tail -2 /etc/passwd
              haha2:x:2011:2012::/home/haha2:/bin/bash
              haha3:x:2011:2013::/home/haha3:/bin/bash
    
    
          -g GID :指明用户所属基本组,可为组名,也可以GID
              [root@localhost ~]# useradd -g root haha4
              [root@localhost ~]# id haha4
              uid=2012(haha4) gid=0(root) groups=0(root)
              
          -c  "COMMENT" :用户的注释信息
              [root@localhost ~]# useradd -c "kuailederen haha4" haha5
              [root@localhost ~]# getent passwd haha5
              haha5:x:2013:2014:kuailederen haha4:/home/haha5:/bin/bash
    
    
          -d  HOME_DIR: 以指定的路径( 不存在) 为家目录
              [root@localhost ~]# useradd -d /home/hahatest/ haha6
              [root@localhost ~]# getent passwd haha6
              haha6:x:2014:2015::/home/hahatest/:/bin/bash
    
    
          -s  SHELL :  指明用户的默认shell 程序可用列表在/etc/shells 文件中
              [root@localhost ~]# useradd -s /bin/csh/ haha7
              [root@localhost ~]# getent passwd haha7
              haha7:x:2015:2016::/home/haha7:/bin/csh/
    
          -G  GROUP1[,GROUP2,...] :为用户指明附加组,组必须事先存在
              [root@localhost ~]# usermod -G bin haha6
              [root@localhost ~]# getent passwd haha6
              haha6:x:2014:2015::/home/hahatest/:/bin/bash
              [root@localhost ~]# groups haha6
              haha6 : haha6 bin
       
          -N  不创建私用组做主组,使用users 组做主组
              [root@localhost ~]# useradd -N haha8
              [root@localhost ~]# groups haha8
              haha8 : users
    
          -r:  创建系统用户 CentOS 6: ID<500 ,CentOS 7: ID<1000
              [root@localhost ~]# useradd -r haha9
              [root@localhost ~]# groups haha9
              haha9 : haha9
              [root@localhost ~]# id haha9
              uid=991(haha9) gid=986(haha9) groups=986(haha9)
              [root@localhost ~]# getent passwd haha9
              haha9:x:991:986::/home/haha9:/bin/bash
  • 创建用户是的默认值在文件:

    默认值设定:/etc/default/useradd 文件中
      显示或更改默认设置:
          useradd -D
          useradd –D -s SHELL
  • 新建用户相关的文件和命令

    /etc/default/useradd      /etc/skel/*  
          /etc/login.defs
          newusers passwd 格式文件 批量创建用户
          chpasswd 批量修改用户口令
批量创建用户
newusers file (file 里是要批量创建的用户的配置信息)
file
  (hehe1:x:2000:2000::/home/hehe1:/bin/bash
    hehe2:x:2001:2002::/home/hehe2:/bin/bash
    hehe3:x:2002:2002::/home/hehe3:/bin/bash
    hehe4:x:2003:2003::/home/hehe4:/bin/bash
    hehe5:x:2004:2004::/home/hehe5:/bin/bash
    )
批量修改用户密码
cat file |  chpasswd
file(用户名 :密码)
    (hehe :12345
    hehe2:redhat    hehe3:centos
    )
新创建的家目录里面没有配置文件登录时候会出错,恢复家目录文件的方法是:
   (1) [root@localhost skel]# cp -r /etc/skel/.[^.]* /home/hehe2
    [root@localhost skel]# cd /home/hehe3
    [root@localhost hehe3]# ls -a 
    .  ..
    [root@localhost hehe3]# cd
    [root@localhost ~]# 
    [root@localhost ~]# cd /home/hehe2
    [root@localhost hehe2]# ls -a
    .  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
    
    附加方法:
        (2)cp  -r `ls -A` /home/hehe3/
                此方法只能在进入到skel目录里才行                  
                不能在其他目录下操作此命令
        (3)cp -r /etc/skel/. /home/hehe3/

用户属性修改

usermod [OPTION] login_name 
    -u UID:  新UID
    -g GID:  新基本组
    -G GROUP1[,GROUP2,...[,GROUPN]]] :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a 选项,表示append; ;
    -s SHELL :新的默认SHELL;
    -c 'COMMENT' :新的注释信息;
    -d HOME:  新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项
    -l login_name:  新的名字;
    -L: lock 指定用户, 在/etc/shadow  密码栏的增加 !
    -U: unlock 指定用户,将 /etc/shadow 的 密码栏的 !  拿掉
    -e YYYY-MM-DD:  指明用户账号过期日期;
    -f INACTIVE:  设定非活动期限;   
                   
        [root@localhost ~]# getent passwd haha5
        haha5:x:2013:2014:kuailederen haha4:/home/haha5:/bin/bash
        [root@localhost ~]# id haha5
        uid=2013(haha5) gid=2014(haha5) groups=2014(haha5)
        [root@localhost ~]# groups haha5
        haha5 : haha5
        [root@localhost ~]# usermod -u 2345 -g root -G bin -s /bin/csh -c "nihaohaha" -d /home/testdir/newhaha5 -m -l newhaha5 haha5
        [root@localhost ~]# getent passwd newhaha5
        newhaha5:x:2345:0:nihaohaha:/home/testdir/newhaha5:/bin/csh
        [root@localhost ~]# id newhaha5
        uid=2345(newhaha5) gid=0(root) groups=0(root),1(bin)
        [root@localhost ~]# groups newhaha5
        newhaha5 : root bin

查看用户相关id信息

id [OPTION]... [USER]
    -u: UID    -g: GID    -G: Groups    -n: Name
删除用户
userdel [option]... login_name
        -r 删除用户家目录
用户和组相关操作命令
pwunconv 密码不转换
        passwd unconv
    pwconv密码转换
        passwd conv
    chsh -s :改shell类型
    getent passwd 用户名:看用户信息
    getent shadow 用户名:
    usermod -U tom:解锁用户密码限制(创建用户没有设置密码时)
    usermod -L tom锁定,锁定后禁止用户登录,但是可以切换
    openssl rand -base64 10(位数)自动生成指定位数密码
    chage -d0 用户名 修改距离1971年天数
    passwd -e 用户名,将用户距离1971年天数置零
    finger 
    gpasswd 组名:给组设置口令

切换用户或以其他用户的身份执行命令

su [options...] [-] [user [args...]]
切换用户的方式:    
    su UserName :非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录    
    su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
    root su 至其他用户无须密码;
    非root用户切换时需要密码
换个身份执行命令:
su [-] UserName -c 'COMMAND'
        选项:
            -l --login_name:             
                su -l UserName 
                    相当于 su - UserName
设置密码
passwd [OPTIONS] UserName:  修改指定用户的密码,仅root 用户权限
        passwd:  修改自己的密码;
  常用选项:
        -l: 锁定指定用户        
        -u: 解锁指定用户        
        -e: 强制用户下次登录修改密码        
        -n mindays:  指定最短使用期限        
        -x maxdays :最大使用期限        
        -w warndays :提前多少天开始警告        
        -i inactivedays :非活动期限;        
        --stdin :从标准输入接收用户密码;        
        echo " PASSWORD " | passwd --stdin USERNAME
修改用户密码策略
chage [OPTION]... LOGIN
    -d LAST_DAY    
    -E, --expiredate EXPIRE_DATE    
    -I, --inactive INACTIVE   
    -m, --mindays MIN_DAYS    
    -M, --maxdays MAX_DAYS    
    -W, --warndays WARN_DAYS    
    –l,显示密码策略

创建组

groupadd [OPTION]... group_name
    -g GID:  指明GID 号;[GID_MIN, GID_MAX],默认情况下是上一个组的GID+1
    -r:  创建系统组;
        CentOS 6: ID<500
        CentOS 7: ID<1000

修改和删除组

组属性修改;groupmod
    groupmod [OPTION]... group
        -n group_name:  新名字        
        -g GID:  新的GID组删除:groupdel
    groupdel GROUP_NAME
更改组密码
组密码:gpasswd
         gpasswd [OPTION] GROUP
        -a user:  将user 添加至指定组中;
        -d user:  从指定组中移除用户user
        -A user1,user2,...:设置有管理权限的用户列表
    newgrp 命令:临时切换基本组;
        如果用户本不属于此组,则需要组密码

原创文章,作者:dxkboke,如若转载,请注明出处:http://www.178linux.com/28164

(0)
dxkbokedxkboke
上一篇 2016-08-03
下一篇 2016-08-04

相关推荐

  • Jmeter性能测试 入门

    Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。 【小坦克Jmeter教程】,将会覆盖Jmeter的各个功能,并且会通过丰富的实例,让读者快速掌握Jmeter的各种用法 。 本文将通过一个实际的…

    Linux干货 2015-03-06
  • 文件系统的创建和管理

    作业:文件系统的创建和管理 思路:管理通常就是增删改查[*代表某一数值,测试机centos6使用的就是ext4,不要问我为什么了,马哥告诉我的,你问他吧!];   事情准备检查系统支持和使用的文件系统格式:         #lsmod  &nbsp…

    Linux干货 2016-01-19
  • Linux的终端类型

    Linux的终端类型 Linux的终端类型: TTY(虚拟终端,图形终端) 早期的电子计算机的输入设备是穿孔卡片【又称霍列瑞斯式卡(Herman Hollerith)或IBM卡】,用有洞和无洞表示计算机二进制里面的0和1,以此来记录相关信息,但是这种方式很慢。 1986年股票代码被发明,人们通过电报和电传打印机发送实时股票价格,此时teletypewrite…

    Linux干货 2016-10-14
  • OSI七层模型

      OSI模型的七层结构 首先,OSI是什么呢?OSI(Open System Interconnection),OSI是一个开放性的通行系统互连参考模型,是一个协议规范。它把网络协议从逻辑上分为了7层。每一层都有相关、相对应的物理设备。OSI七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要…

    2017-09-02
  • 第二周作业

    第二周博客作业 1. Linux上常用的文件管理命令及使用 (1) CP命令:复制文件或文件夹语法格式        cp [OPTION]… [-T] SOURCE DEST     …

    Linux干货 2016-12-16
  • 马哥教育网络班21期+第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST(Power On Self Test): 检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。 加载BIOS(Basic Input and Output System): 根据在BIOS中设置的系统启动顺序来搜索用于启动系统的驱动器(硬盘、光盘、U…

    Linux干货 2016-09-08