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

2019-05-03  本文已影响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),记录大量的小文件。

上一篇下一篇

猜你喜欢

热点阅读