zlzyp 发表于 2018-5-20 06:02:00

Linux学习博客11

用户组和权限管理(一)
一、杂项知识整理
  1、tee命令:从标准输入读取送至标准输出并保存到文件中,也可以发送至管道:
    # cat /etc/issue | tee /testdir/tee.txt   
    CentOS 7.2
    Kernel \r on an \m
    # cat tee.txt
    CentOS 7.2
    Kernel \r on an \m
    # cat /etc/issue | tee tee.txt|tr 'a-z' 'A-Z'
    CENTOS 7.2
    KERNEL \R ON AN \M  2、用户标识:UID:十六位二进制数字 0-65535
  管理员为0 普通用户为1-65534

  系统用户1-499(centos6)1-999(centos7)

  登录用户 500-6w         1000-6w
  同一个UID可以有多个用户
  3、加密算法:
  对称加密,加密和解密使用同一个密码

  非对称加密,加密和解密使用一对密钥

  公钥私钥
  单向加密,只能加密不能解密:提取数据特征码

  定长输出:

  雪崩效率:初始条件微小改变,记过发生巨大改变

  echo “asdfasdf” | md5sum/sha512sum
    # echo "sadf" | md5sum   
    26c30bbc936c12d60c8befb0a5bea194-
    # echo "sadf" | sha512sum
    537ba4bac71e332b3ef10dc82b67f11f14f7a9ffc2399c6401a52d9ed20372e290a3c06efd8177195b5ad    814dc6f5017f
    acbabe218f61c83ee5518180eb5d497-  算法:

  MD5:message digest,128bits
  sha1:secure hash algorithm,160bits

  sha 224 256

  sha 384 512等等
  在计算时加salt,添加的随机数

  4、/etc/passwd 文件格式如下
  name:passwd:UID:GID:GECOS:Directory:shell
    zhangsan:x:1001:1001::/home/zhangsan:/bin/bash  passwd:可以是加密的密码,也可以是占位符x

  GECOS:用户注释信息

  directory:家目录

  shell:用户默认shell

  /etc/shadow文件格式:
  用户名:算法和加密密码(一般用sha512加密):最近一次修改时间(从1970年到密码最近一次被更改的天数):最短使用期限(密码再过几天可以被更改,0表示随时):最长使用期限:警告期(过期之前提前警告):过期期限:保留字段
    zhangsan:$6$xcuKLAdE$DGFJeE2Qy5XubtEorWiI5oDPwmankBTnqayZdomdeddxKNKK7O55Yul6c3mnTHP58rc5TqXh1mj8/3atvdrtm0:17008:0:99999:7:::
    shiting:!!:17008:0:99999:7:::  shiting用户的算法和密码为!!,说明此用户没有设置密码。两个叹号都去掉之后可以无密码登录,否则不可用。usermod -L USER此命令就是在用户密码上加!,即锁定用户,使之无法登陆,本身有无密码皆可操作,usermod -U USER 解锁用户。

  /etc/group 组信息库

  group_name:passwd:GID:user_list(该组的用户成员,以此组为附加组的用户的用户列表)

  5、两个命令:pwconv和pwunconv:将passwd中的密码转换到shadow中显示。将shadow中的密码显示在passwd中。
  注意:四个用户和组子相关文件是:/etc/passwd /etc/shadow /etc/group /etc/gshadow。没有gpasswd这个文件。
  6、finger命令:用于显示用户的相关信息:用户名,用户全名,终端设备号和登录时间等信息:
    # finger root   
    Login: root         Name: root
    Directory: /root                  Shell: /bin/bash
    On since 六 7月 30 17:40 (CST) on tty1    42 seconds idle
    On since 六 7月 30 11:30 (CST) on pts/0 from 172.18.16.71
       2 seconds idle
    Mail last read 六 7月 30 13:00 2016 (CST)
    No Plan.  

  二、命令详解及事例
  1、id命令:显示用户的真是和有效id信息
  用户名 显示uid gid等信息
  -u 只显示有效用户uid

  -g 显示用户的基本组id

  -G 显示用户所属的所有组id

  -n 显示名称而非id,例如ng则是显示id和名字
    # id postfix   
    uid=89(postfix) gid=89(postfix) 组=89(postfix),12(mail)
    # id -u shiting
    1003
    # id -g shiting
    1003
    # id -G shiting
    1003
    # id -n shiting
    id: 以默认格式无法只显示名称或只显示真实ID。  2、chage命令:修改账号和密码的有效期限:
  下一次登录强制重新设置密码

  chage -d 0 USER
    # chage -luser6   
    最近一次密码修改时间:8月 03, 2016
    密码过期时间:从不
    密码失效时间:从不
    帐户过期时间:从不
    两次改变密码之间相距的最小天数:0
    两次改变密码之间相距的最大天数:99999
    在密码过期之前警告的天数:7
    # chage -m 0 -M 42 -W 14 -I 7 user6
    # chage -l user6
    最近一次密码修改时间:8月 03, 2016
    密码过期时间:9月 14, 2016
    密码失效时间:9月 21, 2016
    帐户过期时间:从不
    两次改变密码之间相距的最小天数:0
    两次改变密码之间相距的最大天数:42
    在密码过期之前警告的天数:14  -m 密码可更改的最小天数。

  -M 密码保持有效的最大天数

  -W 用户密码到期前,题前收到警告信息的天数

  -E 账号到期的日期,过了这天,账号将不再可用

  -d 上次更改的日期

  -I 停滞时期,如果一个密码已过期这些天,那么此账号将不可用

  -h 帮助信息
  -l 列出当前的设置,由非特权用户来确定他们的密码或账号何时过期
    $ chage -l gejingyi   
    最近一次密码修改时间:7月 30, 2016
    密码过期时间:从不
    密码失效时间:从不
    帐户过期时间:2月 12, 1970
    两次改变密码之间相距的最小天数:0
    两次改变密码之间相距的最大天数:99999
    在密码过期之前警告的天数:7
   # chage -l gejingyi
    最近一次密码修改时间:7月 29, 2016
    密码过期时间:12月 11, 2017
    密码失效时间:12月 18, 2017
    帐户过期时间:5月 05, 2018
    两次改变密码之间相距的最小天数:50
    两次改变密码之间相距的最大天数:500
    在密码过期之前警告的天数:7  更改时间用时间段,更改日期用准确日期TTTT-MM-DD;也可以通过更改配置文件保证之后创建的用户都按照参数设置为准:文件有两个,一个是/etc/login.defs:
    PASS_MAX_DAYS99999   
    PASS_MIN_DAYS0
    PASS_MIN_LEN5
    PASS_WARN_AGE7
    #
    # Min/max values for automatic uid selection in useradd
    #
    UID_MIN                  1000
    UID_MAX               60000
    # System accounts
    SYS_UID_MIN               201
    SYS_UID_MAX               999
    #
    # Min/max values for automatic gid selection in groupadd
    #
    GID_MIN                  1000
    GID_MAX               60000
    # System accounts
    SYS_GID_MIN               201
    SYS_GID_MAX               999      一个为/etc/default/useradd:
    # cat /etc/default/useradd   
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=42
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes       其中第二个文件也为我们使用useradd命令添加新用户时进行默认配置,包括shell类型和默认邮箱建立以及家目录位置等,我们可以在此修改参数来更改useradd命令使用时的默认配置。

  

  三、课后作业及练习
  见下篇
页: [1]
查看完整版本: Linux学习博客11