知识点
一、用户的管理
增 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
![](https://img.haomeiwen.com/i16973075/cefad11be64fab2b.png)
书写定时任务时常见的坑
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),记录大量的小文件。
网友评论