用户权限管理,组管理和时间管理
用户管理
保存用户信息的文件:/etc/passwd
文件详解: root:x:0:0:root:/root:/bin/bash
用户名 用户登陆系统的用户名
密码 密码位
UID 用户标示号
GID 默认组标示号
描述信息 存放用户的描述信息
宿主目录 用户登陆系统的默认目录,默认是在/home/下
命令解析器 用户使用的Shell,默认是bash
保存用户密码信息的文件:/etc/shadow
root:$6$t9/xsbuGPTNn.TEo$915S0CmKqu/dz5B5zEkQ7TbFzs91ZFfU0Ct6Sdr91sB0leAqc4Ffse3SDm.Gvlu5jd1KTbHoGrLdEcHZMGUvQ/::0:99999:7:::
文件详解:
用户名 登陆系统的用户名
密码 加密密码
最后一次修改时间 用户最后一次修改密码距现在的天数,从1970-1-1起
最小时间间隔 两次修改密码之间的最小天数
最大时间间隔 密码有效天数
警告时间 从系统警告到密码失效的天数
账号闲置时间 账号闲置时间
失效时间 账号失效的绝对天数(从1970-01-01开始)
标志 保留字段
用户分类
超级用户:(root,UID=0)
普通用户:(centos7UID在1000到60000) centos6(500-6000)
伪用户: (centos7UID在1到999) centos6(1-499)
系统和服务相关的:bin、daemon、shutdown等
进程相关的:mail、news、games等
伪用户不能登陆系统
添加用户命令:useradd
-u 指定用户ID(uid)
-g 指定所属的组名(gid) 主组
-G 指定多个组,用逗号“,”分开(Groups) 其他组
-c 用户描述(comment) ;
-e 失效时间(expire date)
创建:
useradd -u 1888 -g users -G sys,root -c "描述信息" ua
useradd ub
useradd uc
useradd ud
useradd ue
(centos 7之前的版本,伪用户从1-999 centos7之后伪用户使用1-999 当前版本普通用户ID应该是1000到60000)
设置密码:
passwd ua //密码设置两次
passwd ub
切换用户 su
su -l ua
su -l ub
su -l ua
su -l root
超级用户向普通用户切换不需要密码,普通用户向其他普通用户或者root用户切换都必须要密码
修改用户命令:usermod(user modify)
-l 修改用户名 (login)usermod -l a b(b改为a)
usermod -l ucc uc
-g 添加组 usermod -g sys tom
groups ua
usermod -g root ua
groups ua
-G 添加多个组 usermod -G sys,root tom
usermod -G sys,users ua
groups ua
–L 锁定用户账号密码(Lock)
usermod -L ub //锁定b用户,普通用户即使被锁定,root依然可以登录
su -l ua
su -l ub //发现密码正确,依然提示鉴定故障 因为被锁定
–U 解锁用户账号(Unlock)
su -l root //切换到root 解锁
usermod -U ub
su -l ua
su -l ub //发现密码正确,就切换用户了
删除用户命令:userdel(user delete)
-r 删除账号时同时删除目录(remove)
userdel ud //只是删除用户信息
tail -5 /etc/passwd
ls /home
userdel -r ue 同时删除/etc/passwd里的信息
tail -5 /etc/passwd
ls /home
组管理
保存用户组的文件:/etc/group
文件详解:
组名 用的所在的组
组密码 密码位,一般不使用
GID 主标示号
组内用户列表 属于该组的用户列表(从组)
添加组:groupadd
-g 指定gid
groupadd -g 16666 groupa
groupadd groupb
groupadd groupc
tail /etc/group //显示文件后10行
修改组:groupmod
-n 更改组名(new group)
groupmod -n groupaa groupa //把groupa的名称改为groupaa
tail /etc/group
删除组:groupdel
groupdel groupaa //删除组
tail /etc/group
groups 显示用户所属组
groups 用户名
groups ua
其他组相关命令
chgrp 改变目录或者文件所属组(只改组)
用法:
ll |grep aaa //查看aaa所属组
chgrp groupb aaa 改变aaa原来所属组root 改为groupb
ll |grep aaa //查看aaa所属组
chown 改变目录或者文件 所属用户及所属组
ll |grep aaa //查看aaa所属用户及组
chown ua:groupc aaa //改变aaa目录的所属用户及所属组
ll aaa
ll aaa/bbb/ //发现子孙目录没有变化
chown -R ua:groupc aaa // 子孙目录都改变
ll aaa
ll aaa/bbb/ //发现子孙目录都变化
Sudo命令
一般用在非root用户下,临时提升非root用户的权限。
第一步:必须要在/etc/sudoers中配置非root用户
第二步:执行命令sudo reboot,输入该用户的密码,成功重启。
ls /sbin|grep reboot
ls /sbin|grep shutdown 这些命令都是root用户才有权限执行的。
su -l ua
sudo shutdown -h now //提示ua不在sudoers文件中 无权执行
su -l root
vim /etc/sudoers
:100
复制100 修改用户名
su -l ua
sudo reboot // 重启了
其他任何普通用户不能执行命令,都可以这么做。。。。
时间管理
GMT Greenwich Mean Time 格林尼治标准时间
CST 可视为美国、澳大利亚、古巴或中国的标准时间。
CST:Central Standard Time (USA) 中部标准时间(美国) UTC -6:00
CST:Central Standard Time (Australia) 中部标准时间(澳大利亚) UTC 9:30
CST:China Standard Time 中国标准时间(北京时间) UTC 8:00
CST:Cuba Standard Time 古巴标准时间 UTC -4:00
UTC 世界统一时间、世界标准时间、国际协调时间
DST 夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。
PDT (Pacific Daylight Time)太平洋夏季时间。
列出所有时区:timedatectl list-timezones
查看当前系统时间:timedatectl
设置系统时区为上海: timedatectl set-timezone Asia/Shanghai
查看当前时间:date
查看硬件时间:hwclock -r or --show
修改当前时间:date MMDDhhmmYYYY
date '121212122022'
date -s '2022-07-07 11:11:11'
用系统时间同步硬件时间:hwclock -w or --systohc
用硬件时间同步系统时间:hwclock -s or --hctosys
使用ntpd服务同步网络时间:(centos7默认没有该服务,需要安装)
yum -y install ntp ntpdate 安装ntp ntpdate服务
ntpd 网络时间协议服务:(centos7下默认没有该服务)
查看启动状态 ntp(network time protocol)
service ntpd status
手动同步:
ntpdate cn.pool.ntp.org
启动:
service ntpd start
设置开机启动(chronyd时间服务和ntpd冲突)
systemctl disable chronyd
systemctl enable ntpd //设置开机启动
ntpq -p 查看 同步间隔
结果详细解释
ntpq -p命令列出了所有作为时钟源校正过本地NTP服务器时钟上层NTP服务器的列表,每一列的含义分别如下:
remote:响应请求的NTP服务器的名称(IP地址或域名),带“*”的表示本地NTP服务器与该服务器同步
refid:远程NTP服务器使用的上一级ntp服务器的IP地址
st:远程NTP服务器的级别,由于NTP是层级结构,有顶端的服务器,多层的Relay Server再到客户端。所以服务器从高到低,级别可以设定为1~16级。为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器。
t:本地NTP服务器与远程NTP服务器的通信方式。u:单播;b:广播;I:本地
when:上次成功请求后到现在的秒数
poll:本地NTP服务器与远程NTP服务器同步的时间间隔。
reach:这是一个八进制的值,用来测试衡量前八次查询是否成功和服务器连接。377表示都成功,0表示不成功
delay:网络延时,单位为微秒(μs)
offset:本地NTP服务器与远程NTP服务器的时间偏移,单位为毫秒(ms)。offset越接近于0,主机与NTP服务器的时间越接近
jitter:查询偏差的分布值,用于表示远程NTP的网络延时是否稳定,单位为微秒(μs)。
完结撒花,see you娜拉