一、构建本地Yum仓库
1.挂载光驱设备
[root@A ~]# mkdir -p /nsd2002/linux
[root@A ~]# mount /dev/cdrom /nsd2002/linux
mount: /dev/sr0 写保护,将以只读方式挂载
[root@A ~]# ls /nsd2002/linux
2.书写客户端配置文件
[root@A ~]# ls /etc/yum.repos.d/
haha.repo repo
[root@A ~]# vim /etc/yum.repos.d/haha.repo
[xixi] #仓库的标识
name=hehe lele CentOS7 #仓库的描述信息
baseurl=file:///nsd2002/linux #指定服务端位置,指定软件的来源
enabled=1 #是否启用本文件
gpgcheck=0 #是否检测红帽的签名信息
[root@A ~]# yum -y install tftp-server
[root@A ~]# rpm -q tftp-server
•清空Yum缓存
[root@A ~]# yum clean all
[root@A ~]# yum repolist
二、用户管理
•基于账户身份对资源访问进行控制
–账户类别:用户账号、组账号(方便管理用户账户)
–识别方式:UID、GID
•用户账号
–超级用户root(UID永远为0)、系统用户(UID一般为1至999)、普通用户(默认情况下从UID为1000开始)
•组账号的分类
–基本组(私有组)
–附加组(公共组或从属组)
Linux系统规则:一个用户至少属于一个组
[root@A ~]# useradd nsd01
默认自动创建一个同名的组:nsd01
组:xs、cw、sg
•/etc/passwd,保存用户帐号的基本信息
–每个用户记录一行,以:分割为7个字段
[root@A ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:用户的UID:用户所属的基本组的GID:用户描述信息:家目录:解释器程序
•useradd命令
–格式:useradd [选项]… 用户名
•常用命令选项
–-u:指定 UID 标记号
–-d:指定宿主目录(家目录),缺省为 /home/用户名
–-G:指定所属的基本组、附加组
–-s:指定用户的登录解释器
[root@A ~]# useradd nsd02
[root@A ~]# ls /home/
[root@A ~]# grep nsd02 /etc/passwd
[root@A ~]# id nsd02 #查看用户基本信息
[root@A ~]# useradd nsd03
[root@A ~]# id nsd03 #查看用户基本信息
[root@A ~]# grep nsd03 /etc/passwd
[root@A ~]# useradd -u 1800 nsd04 #指定UID创建用户
[root@A ~]# id nsd04
[root@A ~]# grep nsd /etc/passwd
[root@A ~]# useradd -d /opt/nsd05 nsd05
[root@A ~]# ls /opt/
[root@A ~]# grep nsd05 /etc/passwd
[root@A ~]# useradd -d /opt/abc nsd06
[root@A ~]# grep nsd06 /etc/passwd
–-G:指定所属的附加组
–-s:指定用户的登录解释器
[root@A ~]# groupadd tedu #创建组tedu
[root@A ~]# useradd -G tedu nsd08
[root@A ~]# id nsd08
[root@A ~]# useradd -G tedu nsd09
[root@A ~]# id nsd09
/sbin/nologin:禁止用户登录操作系统
[root@A ~]# useradd -s /sbin/nologin nsd10
[root@A ~]# grep nsd10 /etc/passwd
•usermod命令
–格式:usermod [选项]… 用户名
•常用命令选项
–-l:更改用户帐号的登录名称
–-u:用户id
–-s:登录的解释器
–-G:附加组 //重置附加组
–-d:家目录路径
[root@A ~]# useradd nsd11
[root@A ~]# grep nsd11 /etc/passwd
[root@A ~]# usermod -l abc11 nsd11 #修改用户的用户名
[root@A ~]# grep nsd11 /etc/passwd
[root@A ~]# grep nsd11 /etc/passwd
[root@A ~]# id abc11
[root@A ~]# usermod -u 2000 -d /opt/abc11 abc11 #修改用户的家目录,修改用户的UID
[root@A ~]# grep abc11 /etc/passwd
[root@A ~]# usermod -s /sbin/nologin abc11 #修改用户的解释器程序
[root@A ~]# grep abc11 /etc/passwd
[root@A ~]# useradd nsd12
[root@A ~]# grep nsd12 /etc/passwd
[root@A ~]# ls /home/
[root@A ~]# usermod -d /opt/nsdhaha nsd12 #不会创建/opt/nsdhaha相应的家目录
[root@A ~]# grep nsd12 /etc/passwd
[root@A ~]# ls /opt/nsdhaha
ls: 无法访问/opt/nsdhaha: 没有那个文件或目录
[root@A ~]# ls /opt/
–-G:附加组 #重置附加组
[root@A ~]# groupadd student #创建student组
[root@A ~]# useradd nsd14
[root@A ~]# id nsd14
uid=2003(nsd14) gid=2003(nsd14) 组=2003(nsd14)
[root@A ~]# usermod -G tedu nsd14
[root@A ~]# id nsd14
uid=2003(nsd14) gid=2003(nsd14) 组=2003(nsd14),1804(tedu)
[root@A ~]# usermod -G student nsd14
[root@A ~]# id nsd14
uid=2003(nsd14) gid=2003(nsd14) 组=2003(nsd14),1004(student)
•passwd命令
–格式:passwd [选项]… 用户名
•常用命令选项
–--stdin:从标准输入(比如管道)取密码
[root@A ~]# useradd nsd15
[root@A ~]# passwd nsd15 #为普通用户设置密码,交互式方式
更改用户 nsd15 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# su - nsd15 #临时切换用户身份
[nsd15 @A ~]$ passwd
更改用户 nsd15 的密码 。
为 nsd15 更改 STRESS 密码。
(当前)UNIX 密码: #输入旧密码
新的 密码: #输入新的密码
重新输入新的 密码: #重新输入新的密码
passwd:所有的身份验证令牌已经成功更新。
[nsd15 @A ~]$ exit
登出
[root@A ~]#
非交互式设置密码
[root@A ~]# echo 123456 | passwd --stdin nsd15
更改用户 nsd15 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# echo redhat | passwd --stdin nsd15
更改用户 nsd15 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]#
•/etc/shadow,保存密码字串/有效期等信息
–每个用户记录一行,以:分割为9个字段
[root@A ~]# head -1 /etc/shadow
root:$6$NmlB88IT$SohEjP6aXtB8RgctNIO0PGE/WUH5swn2qyPryqdONkJPMoO.LVn7wsW36cqwJ2FMSyHn8n7xnrXOQB4ToQJ6e1:18323:0:99999:7:::
字段1:用户帐号的名称
字段2:加密后的密码字符串
字段3:上次修改密码的时间 自1970-1-1到达上一次修改密码的时间,经历的天数
字段4:密码的最短有效天数,默认0
字段5:密码的最长有效天数,默认99999
字段6:密码过期前的警告天数,默认7
字段7:密码过期后多少天禁用此用户账号
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
用户初始配置文件
•配置文件来源
–新建用户时,用户的家目录根据 /etc/skel 模板目录复制
[root@A ~]# echo hahaxixi > /etc/skel/haxi.txt
[root@A ~]# ls -A /etc/skel/
[root@A ~]# useradd nsd19
[root@A ~]# ls -A /home/nsd19
[root@A ~]# useradd nsd20
[root@A ~]# ls /home/nsd20
[root@A ~]# ls -A /home/nsd20/
•主要的初始配置文件
–~/.bash_profile:每次登录时执行,专门定义初始变量
–~/.bashrc:每次进入新的Bash环境时执行,每开启一个新的终端,会执行一次。专门定义永久别名
全局配置文件:/etc/bashrc(专门定义永久别名)、/etc/profile(专门定义初始变量)
修改root用户家目录配置文件:仅会影响root用户
[root@A ~]# vim /root/.bashrc
alias hn='hostname'
.......
[root@A ~]# exit
开启一个新的终端
[root@A ~]# hn
修改nsd21用户家目录配置文件:仅会影响nsd21用户
[root@A ~]# useradd nsd21
[root@A ~]# vim /home/nsd21/.bashrc
alias hello='echo I am King'
[root@A ~]# su - nsd21
[nsd21@A ~]$ hello
I am King
[nsd21@A ~]$ exit
修改全局配置文件:/etc/bashrc 会影响全体所有用户,包括root用户
[root@A ~]# vim /etc/bashrc
alias hi='echo hahaxixi'
开启一个新的终端验证
[root@A ~]# hi
[root@A ~]# su - nsd21
[nsd21@A ~]$ hi
[nsd21@A ~]$ exit
•userdel命令
–格式:userdel [-r] 用户名
–添加 -r 选项,宿主目录/用户邮件也一并删除
[root@A ~]# userdel -r nsd01
[root@A ~]# userdel nsd02
[root@A ~]# id nsd01
id: nsd01: no such user
[root@A ~]# id nsd02
id: nsd02: no such user
[root@A ~]# ls /home/
四、组账号管理,组可以方便管理用户
•/etc/group,保存组帐号的基本信息
–每个组记录一行,以:分割为4个字段
[root@A ~]# groupadd stugrp
[root@A ~]# grep stugrp /etc/group
stugrp:x:2005:
字段1:组帐号的名称
字段2:密码占位符 x
字段3:组帐号的GID号
字段4:本组的成员用户列表
[root@A ~]# useradd jack
[root@A ~]# useradd kenji
[root@A ~]# useradd kaka
•gpasswd命令,管理组成员
–格式:gpasswd [选项]… 组名
•常用命令选项
–-A:定义组管理员列表
–-a:添加组成员,每次只能加一个
–-d: 删除组成员,每次只能删一个
–-M:定义组成员用户列表,可设置多个
[root@A ~]# grep stugrp /etc/group #查询组基本信息
[root@A ~]# gpasswd -a jack stugrp # 将用户jack添加到stugrp组中
[root@A ~]# grep stugrp /etc/group
[root@A ~]# id jack
[root@A ~]# gpasswd -a kaka stugrp #将kaka用户添加到stugrp组中
[root@A ~]# grep stugrp /etc/group
[root@A ~]# id kaka
[root@A ~]# grep stugrp /etc/group
[root@A ~]# gpasswd -M root,kenji stugrp #重新定义组成员列表
[root@A ~]# grep stugrp /etc/group
[root@A ~]# gpasswd -M jack,kaka,root,kenji stugrp
[root@A ~]# grep stugrp /etc/group
[root@A ~]# gpasswd -d root stugrp #将root用户从stugrp组中删除
[root@A ~]# grep stugrp /etc/group
[root@A ~]# gpasswd -M '' stugrp #定义一个空列表,利用空进行覆盖,清空组中所有成员
[root@A ~]# grep stugrp /etc/group
[root@A ~]# gpasswd -A jack stugrp #为stugrp指定一个组的管理员
[root@A ~]# su - jack
[jack@A ~]$ gpasswd -a kaka stugrp
[jack@A ~]$ grep stugrp /etc/group
[jack@A ~]$ exit
•/etc/gshadow,保存组帐号的管理信息
–每个组记录一行,以:分割为4个字段
[root@A ~]# grep stugrp /etc/gshadow
stugrp:!:kenji:kaka,root
字段1:组帐号的名称
字段2:加密后的密码字符串
字段3:本组的管理员列表
字段4:本组的成员用户列表
[root@A ~]# gpasswd -A jack,kenji stugrp
[root@A ~]# grep stugrp /etc/gshadow
stugrp:!:jack,kenji:kaka,root
[root@A ~]#
•groupdel命令
–格式:groupdel 组名
–删除的目标组不能是用户的基本组
[root@A ~]# groupdel stugrp
[root@A ~]# grep stugrp /etc/group
vim文本编辑器练习,命令模式下的基本操作
1)将/etc/passwd的前20行,写入到文件/opt/pass20.txt
2)将/etc/shadow的前10行,追加写入到文件/opt/pass20.txt
2)利用/opt/pass20.txt,进项如下操作:
– 命令模式下移动光标:键盘上下左右键、Home键、End键
– 命令模式下行间跳转:到全文的第一行(1G或gg)、到全文的最后一行(G)、到全文的第10行(10G)
– 命令模式下复制、粘贴:
复制1行(yy)、复制3行(3yy)
粘贴到当前行之后(小写p)
– 命令模式下删除:
删除单个字符(x)
删除到行首(d^)、删除到行尾(d$)
删除1行(dd)、删除3行(3dd)
– 命令模式下查找关键词:
搜索(/word)切换结果(n、N)
– 补充:在命令模式下大写的C,可以删除光标之后,并且进入插入模式