一、用户管理
•用户账户简介
作用:1.可以登录操作系统 2.不同用户登录操作系统权限不同
唯一标识:UID
管理员UID为0,默认情况下普通用户从1000开始
•组账户简介
作用:方便管理众多的用户
唯一标识:GID
Linux系统一个用户必须至少属于一个组
•组分类
基本组:由系统创建与用户同名
附加组(从属组):由管理员创建,由管理员后期将用户加入
[root@localhost ~]# useradd zhangsan
组:zhangsan 将zhangsan用户加入到zhangsan组
组:销售组 财务组 技术组
•账号数据的存放
–存储在本机磁盘中 —— 本地账户
•本地账户的数据文件
–用户信息:/etc/passwd、/etc/shadow
–组信息:/etc/group、/etc/gshadow
•/etc/passwd,保存用户帐号的基本信息
–每个用户记录一行,以:分割为7个字段
[root@localhost ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符x:用户的UID:用户所属的基本组的GID:用户的描述信息:家目录:解释器
•useradd命令
–格式:useradd [选项]... 用户名
•常用命令选项
–-u:指定 UID 标记号
–-d:指定宿主目录(家目录),缺省为 /home/用户名
–-G:指定所属的附加组
–-s:指定用户的登录解释器
[root@localhost ~]# useradd nsd01
[root@localhost ~]# grep nsd01 /etc/passwd
[root@localhost ~]# id nsd01
[root@localhost ~]# useradd nsd02
[root@localhost ~]# id nsd02
[root@localhost ~]# grep nsd02 /etc/passwd
[root@localhost ~]# useradd -u 1400 nsd03 #指定UID创建用户
[root@localhost ~]# id nsd03
[root@localhost ~]# grep nsd03 /etc/passwd
[root@localhost ~]# ls /home
[root@localhost ~]# useradd -d /opt/nsd04 nsd04 #指定用户家目录,创建该用户
[root@localhost ~]# ls /opt/
[root@localhost ~]# useradd -d /opt/xixi nsd05
[root@localhost ~]# ls /opt/
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# groupadd study
[root@localhost ~]# useradd -G study nsd06
[root@localhost ~]# id nsd06
/sbin/nologin:禁止用户登录操作系统
[root@localhost ~]# useradd -s /sbin/nologin nsd07
[root@localhost ~]# grep nsd07 /etc/passwd
•usermod命令
–格式:usermod [选项]... 用户名
•常用命令选项
–-l:更改用户帐号的登录名称
–-u:用户id
–-s:登录解释器
–-d:家目录路径
–-G:附加组 //重置附加组
[root@localhost ~]# useradd nsd08
[root@localhost ~]# id nsd08
[root@localhost ~]# grep nsd08 /etc/passwd
[root@localhost ~]# usermod -l abc08 nsd08 #修改nsd08的用户名为abc08
[root@localhost ~]# id abc08
[root@localhost ~]# usermod -u 1600 -s /sbin/nologin abc08 #修改UID与解释器程序
[root@localhost ~]# id abc08
[root@localhost ~]# grep abc08 /etc/passwd
usermod命令的-d选项:修改家目录路径 ,不会创建家目录,仅仅修改了/etc/passwd文件内容
[root@localhost ~]# useradd nsd09
[root@localhost ~]# grep nsd09 /etc/passwd
[root@localhost ~]# ls /home/
[root@localhost ~]# usermod -d /opt/stu09 nsd09
[root@localhost ~]# grep nsd09 /etc/passwd
usermod命令的-G选项:修改附加组 #重置附加组
[root@localhost ~]# useradd nsd10
[root@localhost ~]# id nsd10
[root@localhost ~]# usermod -G study nsd10
[root@localhost ~]# id nsd10
[root@localhost ~]# groupadd tarena #创建tarena组
[root@localhost ~]# usermod -G tarena nsd10
[root@localhost ~]# id nsd10
•passwd命令
交互式设置密码
[root@localhost ~]# passwd nsd01
更改用户 nsd01 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
非交互式设置密码
[root@localhost ~]# echo 123456 | passwd --stdin nsd01
[root@localhost ~]# echo 456789 | passwd --stdin nsd01
临时切换用户身份的命令
[root@localhost ~]# su - nsd01
[nsd01@localhost ~]$ exit
登出
[root@localhost ~]#
•/etc/shadow,保存密码字串/有效期等信息
–每个用户记录一行,以:分割为9个字段
[root@localhost ~]# grep nsd01 /etc/shadow
nsd01:$6$lHa.ITxk$.........:18390:0:99999:7:::
用户名:密码加密字符串:上一次修改密码的时间
上一次修改密码的时间:从1970-1-1到达上一次修改密码时间,所经历的天数
[root@localhost ~]# useradd nsd11
[root@localhost ~]# grep nsd11 /etc/shadow
[root@localhost ~]# echo 123 | passwd --stdin nsd11
[root@localhost ~]# grep nsd11 /etc/shadow
二、用户初始配置文件
•配置文件来源
–新建用户时,根据 /etc/skel 模板目录复制
[root@localhost ~]# touch /etc/skel/hahaxixi.txt
[root@localhost ~]# ls -A /etc/skel/
[root@localhost ~]# useradd nsd13
[root@localhost ~]# ls -A /home/nsd13
[root@localhost ~]# useradd nsd14
[root@localhost ~]# ls -A /home/nsd14
•主要的初始配置文件
–~/.bash_profile:每次登录时执行
–~/.bashrc:每次进入新的终端时执行,一般用于设置永久的别名
[root@localhost ~]# vim /root/.bashrc
alias haha='echo haha'
开启一个新的终端进行验证:
[root@localhost ~]# haha #可以运行
[root@localhost ~]# su - nsd14
[nsd14@localhost ~]$ haha #运行失败
bash: haha: 未找到命令...
[nsd14@localhost ~]$ exit
登出
[root@localhost ~]# vim /home/nsd14/.bashrc
alias xixi='echo xixi'
[root@localhost ~]# su - nsd14
[nsd14@localhost ~]$ xixi #可以运行
•全局配置文件:/etc/bashrc #开启新的终端生效
[root@localhost ~]# vim /etc/bashrc
alias haxi='echo hahaxixi'
开启新的终端生效
[root@localhost ~]# haxi
hahaxixi
[root@localhost ~]# useradd nsd16
[root@localhost ~]# su - nsd16
[nsd16@localhost ~]$ haxi
hahaxixi
[nsd16@localhost ~]$ exit
登出
[root@localhost ~]#
三、删除用户
•userdel命令
–格式:userdel [-r] 用户名
–添加 -r 选项,家目录也一并删除
[root@localhost ~]# userdel nsd01
[root@localhost ~]# userdel nsd02
[root@localhost ~]# id nsd01
id: nsd01: no such user
[root@localhost ~]# id nsd02
id: nsd02: no such user
[root@localhost ~]# ls /home
四、组管理
•/etc/group,保存组帐号的基本信息
–每个组记录一行,以:分割为4个字段
[root@localhost ~]# groupadd stugrp
[root@localhost ~]# grep stugrp /etc/group
stugrp:x:1609:
[root@localhost ~]# useradd harry
[root@localhost ~]# useradd natasha
[root@localhost ~]# useradd kenji
•/etc/gshadow,保存组帐号的管理信息
–每个组记录一行,以:分割为4个字段
[root@svr7 /]# grep stugrp /etc/gshadow
stugrp:!::
•gpasswd命令
–格式:gpasswd [选项]... 组名
•常用命令选项
–-A:定义组管理员列表
–-a:添加组成员,每次只能加一个
–-d:删除组成员,每次只能删一个
–-M:定义组成员用户列表,可设置多个
[root@localhost ~]# gpasswd -a harry stugrp #将用户harry加入到stugrp
[root@localhost ~]# grep stugrp /etc/group
[root@localhost ~]# id harry
[root@localhost ~]# gpasswd -a kenji stugrp #将用户kenji加入到stugrp
[root@localhost ~]# grep stugrp /etc/group
[root@localhost ~]# gpasswd -d harry stugrp #将用户harry从stugrp组中删除
[root@localhost ~]# grep stugrp /etc/group
[root@localhost ~]# gpasswd -M 'natasha,harry' stugrp #重新定义组成员
[root@localhost ~]# grep stugrp /etc/group
[root@localhost ~]# gpasswd -M '' stugrp #定义组成员列表为空
[root@localhost ~]# grep stugrp /etc/group
-A:定义组管理员列表
[root@localhost ~]# su - harry
[harry@localhost ~]$ gpasswd -a kenji stugrp
gpasswd:没有权限。
[harry@localhost ~]$ exit
[root@localhost ~]# gpasswd -A harry stugrp #设置harry用户为stugrp组的组管理员
[root@localhost ~]# su - harry
[harry@localhost ~]$ gpasswd -a kenji stugrp
[harry@localhost ~]$ grep stugrp /etc/group
[harry@localhost ~]$ exit
[root@localhost ~]# grep stugrp /etc/gshadow
stugrp:!:harry:kenji
•groupdel命令
–格式:groupdel 组名
–删除的目标组不能是用户的基本组
[root@localhost ~]# groupdel stugrp
[root@localhost ~]# grep stugrp /etc/group
五、计划任务
•用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
•软件包:cronie、crontabs
•系统服务:crond
•日志文件:/var/log/cron
•使用 crontab 命令
–编辑:crontab -e [-u 用户名] #与vim文本编辑器用法一致
–查看:crontab -l [-u 用户名]
–清除:crontab -r [-u 用户名] #删除该用户的所有的计划任务
•计划任务书写的格式
–分 时 日 月 周 任务命令行(绝对路径)
0 8 * * * #每天上午8:00 ,执行一次
0 21 * * * #每天晚上9:00 ,执行一次
0 21 * * 5 #每周的周五晚上9:00 ,执行一次
0 21 * * 1,3,5 #每周的周一、周三、周五晚上9:00 ,执行一次
0 21 * * 1-5 #每周的周至周五晚上9:00 ,执行一次
*/5 * * * * #每隔5分钟执行一次
*/2 * * * * #每隔2分钟执行一次
* 8 * * * #每天上午8:00,开始执行,执行60次
0 8 1 * 2 #每月的1号上午8:00执行一次,每周的周二上午8:00执行一次
*:匹配范围内任意时间
,:分隔多个不连续的时间点
-:指定连续时间范围
/n:指定时间频率,每n ...
执行周期
配置说明
分钟
从0到59之间的整数
小时
从0到23之间的整数
日期
从1到31之间的整数
月份
从1到12之间的整数
星期
0~7之间的整数,0或7代表星期日
每分钟记录当前的系统时间,将记录的时间写入到/opt/abc.txt
[root@localhost ~]# date >> /opt/abc.txt
[root@localhost ~]# cat /opt/abc.txt
[root@localhost ~]# crontab -e #书写计划任务
*/1 * * * * date >> /opt/abc.txt
[root@localhost ~]# crontab -l -u root #查看root用户书写的计划任务
*/1 * * * * date >> /opt/abc.txt
[root@localhost ~]# cat /opt/abc.txt
[root@localhost ~]# crontab -e #进入编辑计划任务的模式,可以删除计划任务