美文网首页
用户及密码管理、定时任务

用户及密码管理、定时任务

作者: 你好_请关照 | 来源:发表于2019-05-03 19:02 被阅读0次

    知识点

    一、用户的管理
    增 useradd
    删 userdel
    查 id
    改 usermod
    二、密码管理 passwd
    三、批量创建用户和密码(不使用脚本形式)
    四、定时任务 crontab

    一、用户的管理

    添加用户 (useradd)

    参数 释义
    -u 指定UID
    -d 指定家目录
    -c 用户的说明
    -g 指定主组GID
    -G 指定从组GID
    -s 指定用户登录的shell
    -p 创建用户时使用明文密码
    [root@xiaoxi ~]# useradd u2
    [root@xiaoxi ~]# grep '^u2' /etc/passwd
    u2:x:1016:1017::/home/u2:/bin/bash
    [root@xiaoxi ~]# 
    
    [root@xiaoxi ~]#  useradd -c caiwu -g root -d /home/user -u 1017 u3
    [root@xiaoxi ~]# grep '^u3' /etc/passwd
    u3:x:1017:0:caiwu:/home/user:/bin/bash
    [root@xiaoxi ~]# 
    

    默认配置 /etc/default/useradd

    cat /etc/default/useradd
    \#useradd defaults file   默认配置文件
    GROUP=100                 以创建普通组
    HOME=/home                示把用户的家目录默认放到/home下
    INACTIVE=-1               启账户过期停权,-1表示永不开启
    EXPIRE=                   户的终止日期,无值表示不开启
    SHELL=/bin/bash           户登录后执行的shell
    SKEL=/etc/skel            户家目录环境文件,当创建用户时,系统会把该文件复制到用户的家目录下,默认此文件是隐藏的
    CREATE_MAIL_SPOOL=yes     是否开启用户的邮箱(Linux用户之间相互发邮件的,不借助邮件服务,邮箱的存放位置/var/spool/mail)
    

    删除用户

    [root@localhost ~]# userdel -r xiaoxi
    
    删除用户时 建议加上 -r 参数 否则不会删除家目录,当再次创建一模一样的用户时,会出现报错如下;
    
    [root@localhost ~]# useradd xiaoxi
    useradd: warning: the home directory already exists.
    Not copying any file from skel directory into it.
    Creating mailbox file: File exists
    

    查看 uid gid

    [root@xiaoxi ~]# id root
    uid=0(root) gid=0(root) groups=0(root)
    [root@xiaoxi ~]# 
    

    通过查看passwd文件,查看用户配置

    [root@xiaoxi ~]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    alex888:x:888:1003::/home/alex888:/sbin/nologin
    stu01:x:1003:1004::/home/stu01:/bin/bash
    stu02:x:1004:1005::/home/stu02:/bin/bash
    stu03:x:1005:1006::/home/stu03:/bin/bash
    

    更改用户信息 usermod

    参数 释义
    -u 更改用户UID
    -c 更改用户说明
    -g 更改用户主组GID
    -G 更改用户从组GID
    -L 锁定用户(Lock)
    -U 解锁用户(Unlock)
    -l 更改用户名称(新名称在前,旧名称在后,登录的用户不能被更改)
    [root@xiaoxi ~]#  usermod -u 1200 u1 
    [root@xiaoxi ~]# grep '^u1' /etc/passwd
    u1:x:1200:1016::/home/u1:/bin/bash
    [root@xiaoxi ~]# 
    

    二、密码管理

    passwd [-选项] 用户名

    选项:
    -S 查看账户状态
    -l 锁定用户密码
    -u 解锁用户密码
    -d 清除用户密码

    更改密码 passwd +用户 即可
    [root@xiaoxi ~]# passwd u1
    Changing password for user u1.
    New password: 
    BAD PASSWORD: The password is a palindrome
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@xiaoxi ~]# 
    

    三、批量创建密码和用户(不使用脚本的形式)

    利用sed 的特性(逐行匹配的特点)批量创建密码和用户

    第一步批量生成用户

    第二步批量设置密码

    第三步将密码和用户保存起来

    第四步验证
    用普通用户去切换刚刚创建的新用户,输入新用户对应得密码,看能否登陆

    [root@localhost ~]#  echo user{01..10} |tr ' ' '\n' |sed 's#.*#useradd &;u=`date +%N`;echo $u|passwd --stdin &;echo $u &>>/usre.txt#g'
    useradd user01;u=`date +%N`;echo $u|passwd --stdin user01;echo $u user01>>/usre.txt
    useradd user02;u=`date +%N`;echo $u|passwd --stdin user02;echo $u user02>>/usre.txt
    useradd user03;u=`date +%N`;echo $u|passwd --stdin user03;echo $u user03>>/usre.txt
    useradd user04;u=`date +%N`;echo $u|passwd --stdin user04;echo $u user04>>/usre.txt
    useradd user05;u=`date +%N`;echo $u|passwd --stdin user05;echo $u user05>>/usre.txt
    useradd user06;u=`date +%N`;echo $u|passwd --stdin user06;echo $u user06>>/usre.txt
    useradd user07;u=`date +%N`;echo $u|passwd --stdin user07;echo $u user07>>/usre.txt
    useradd user08;u=`date +%N`;echo $u|passwd --stdin user08;echo $u user08>>/usre.txt
    useradd user09;u=`date +%N`;echo $u|passwd --stdin user09;echo $u user09>>/usre.txt
    useradd user10;u=`date +%N`;echo $u|passwd --stdin user10;echo $u user10>>/usre.txt
    
    [root@localhost ~]#  echo user{01..10} |tr ' ' '\n' |sed 's#.*#useradd &;u=`date +%N`;echo $u|passwd --stdin &;echo $u &>>/usre.txt#g'|bash  #用bash 去执行
    
    

    四、定时任务

    配置文件/var/spool/cron/userfile/
    查看定时任务 crontab -l
    删除当前用户的定时任务 crontab -r
    编辑定时任务 crontab -e === vi /var/spool/cron/root

    定时任务时间格式

    书写定时任务时常见的坑

    1、在定时任务中%有特殊含义,需要转译()

    #保存时间
    * * * * * date +\%F >> /tmp/time.log
    

    定时任务书写箴言

    1、书写定时任务时加上注释
    2、书写定时任务时尽量使用脚本
    3、运行脚本使用 sh +绝对路径
    4、定时任务里面的文件和命令使用绝对路径,如果不写绝对路径定时任务默认去当前用户家目录下执行
    5、在定时任务中%有特殊含义,需要转译()
    6、定时任务定向到空或追加到文件
    * * * * * /usr/bin/tar -zcvf /tmp/etc-date +\%T.tar.gz /etc >/dev/null 2>&1 #定向到空,什么信息都不看
    * * * * * /usr/bin/tar -zcvf /tmp/etc-date +\%T.tar.gz /etc >>/tmp/bak.log 2>&1 #查看脚本的执行过程
    \ > 或 1>
    >> 或 1>>
    2> 错误信息
    2>> 追加错误信息
    把错误信息和正确的信息都记录下来 >>/tmp/bak.log 2>&1
    命令或脚本没有定向到空或追加到文件会导致两个问题:
    (1)系统会发送大量的邮件并提示:you have new mail in /var/spool/mail/root
    (2)邮件服务如果关闭的话,把没有发出去的文件存放为临时文件 (/var/spool/postfix/maildrop),记录大量的小文件。

    相关文章

      网友评论

          本文标题:用户及密码管理、定时任务

          本文链接:https://www.haomeiwen.com/subject/vsxznqtx.html