[Linux]RHCSA和RHCE部分学习笔记
用户、组
存用户名:/etc/passwd , /etc/group
存密码:/etc/shadow , /etc/gshadow
组:有基本组、附加组
登录; /bin/bash #可登录 , /sbin/nologin #不可登录
用户的基本操作
useradd 用户名 #添加
userdel 用户名 #删除
usermod 用户名 #修改
id 用户名 #查用户信
常用参数:
-u UID
-G 附加组
-g 基本组
-s 解释器
-d 所在位置
-r 删除
配置用户密码
passwd 用户名
echo 密码 | psaawd --stdin 用户名
组的基本操作
groupadd 组名 #添加
groupdel 组名 #删除
groupmod 组名 #修改
ls -ld 组名 #查看组信息
常用参数:
-g 组id
-a 添加
-d 删除
例:
gpasswd -a 用户 组 #添加用户到组
gpasswd -d 用户 组 #删除用户到组
验证:
cat /etc/group 或 id 用户名
----------------------------分割线--------------------------------
在f0的练习环境上
root tedu (f0-rhel8.2)
rht-vmctl reset xxxxx #重置xxx机子
练习题位置:http://127.0.0.1/index.html
用cockpit驾驶舱
yum -y install cockpit, cockpot-dashboard,machines
systemctl enable cockpit.socket --now
web访问http://虚拟机IP:9090 ,以root用户登录
远程管理Linux
1、用cockpit
2、用第三方软件:ssh , xshell , mobaxtern……
ssh 目标机子的名字 , # 非主机名
ssh 目标机子的IP
ssh root@目标机子的IP #以root登录
nmcli,nmtui里,ipv4.address行 ,
disabled
share
automatic # 自动
link-local #本地链路
manual #手动
黑、白名单
cp /etc/hosts /var/tmp/hosts
setfacl -m u:zhsan:rwx #白名单
setfacl -m u:lisi:- #黑名单
查看帮助例子:
man setfacl
/EXAMPLE
属性、权限
mkdir /home/test
chown :admins /home/test #改属组
chown lisi /home/test #改属主
chmod g+rwx,o-rwx /home/test #设权限
chmod g+s /home/test
u 所有者
g 所属组
o 其他人
r 读
w 写
x 执行
s 组的执行权限,在x的基础上添加s
----------------------------分割线--------------------------------
Linux:类Unix的操作系统
准确描述是内核(kernel)
基于Linux内核的完整软件生态才叫Linux系统
内核特点:将功能模块化、支持模块的动态装卸
一切皆文件,所以内容以文件形式存在
CPU:运算器、控制器
内存:存储器
硬盘:io设备
系统:从低到高:硬件→OS→程序→app
写程序:系统调用、库调用
程序: 指令(只读)+数据(读写)
运行模式: 用户空间:用户程序可直接调用 内核空间:调用内核实现运行
用户空间:应用程序 内核空间:驱动程序、Linux系统
POSIX:(portable operating system interface)
可移植操作系统
定义了API(应用程序编程接口)的统一规范,遵循此规范、其程序可一次编写,到处使用。
程序格式:
Windows:.exe 库为dll (library, link, dyramic)
Linux:ELF 库为so (shared , object)
编程语言:
解释型:php, python #需解释器翻译
编译型:c, c++, # 直译成机器码
Java:将源码译成字节码(JVM可解的代码)、再由JVM解释执行
提供与用户交互功能
GUI: 图形界面 KDE,XFCE,GNOME
CLI:命令行 sh, csh. bash
shell:提供CLI的交互程序的统称
系统当前: cat /etc/shells
系统所有: chsh -l
当前使用: echo $SHELL
当触发一个shell,会得到一个提示符:登录用户@主机名 当前目录
# root
$ 普通用户
echo $ps1 查看提示符格式
echo $$ 当前shell的id
终端
终端:用户与主机交互的设备
物理终端: /dev/console #鼠标、键盘
虚拟终端: /dev/tty* #以软件方式虚拟出的
模拟终端: /dev/pts/* #纯软件实现,如用telnet远程打开的界面
虚拟终端切换
ctrl+alt+fn1-6 #t图像界面/字符界面
```powershell
tty 查看当前终端设备, 例: echo hi = echo hi > /dev/pts/xxx
who 查看有谁登录到当前系统
命令:可执行文件
参数:命令的作用对象,向命令提供数据
用
之间用空格隔开,一行执行多条命令时,用分号隔开(;)
内建:shell自带,如cd. pwd
外部:非自带 ,如cat,su
type 命令 查是否为内建
which 命令 查可执行文件
whereis 命令 查关键字文件
PATH变量
执行命令时,会在path变量指定的路径去从左到右寻找,找到会执行,如果找不到,会提示找不到
echo $PATH 查path变量的值
hash 查缓存的命令,
hash -r 清除所有缓存
其他 uname -r/-a 查内核版本
Linux防火墙工具
iptables
firewalld
4表(存链)5链 (存规则)
filter 过滤
nat 网络地址转换,network address translation
raw 状态跟踪
mangle 包标记
input 入站
output 出站
prerouting
forward 转发数据包
postrouting
netfilter 内核中可实现过滤的机制
练习题
1、
hostname set-hostname 主机名 #配置主机名
hostname 查主机名
nmtui
改IP、dns、、、激活
ip a s 查看IP结果
2、
yum repolist
vim /etc/yum.repolist.d/red.repo
[Appstream]
name=
baseurl=
enabled=1
gpgchech=0
[BaseOS]
name=
baseurl=
enabled=1
gpgchech=0
yum clean all
yum repolist
yum -y install bind-utils httpd,net-tools,bash-completion
3、
yum -y installl setroubleshoot-server
semange port -a -t http_port_t -p tcp 82
systemctl restart httpd
systemctl enable httpd
systemctl stop firewalld --now
4、
useradd -u 2022 tammy
echo redhat | passwd --stdin tammy
5、
groupaddd admins
useradd -G admins zhsan
useradd -s /sbin/nologin lisi
echo redhat | passwd --stdin zhsan
echo redhat | passwd --stdin lisi
6、
yum -y install cron*
crontab -e -u zhsan
*/5 * * * * logger 'RH200 Test'
参数
-e 添加
-l 列出
-u 普通用户
cat /etc/crontab 查定时任务
cat /vim/log/cron 查任务执行日志
crontab -lu 用户名
systemctl restart crond
systemctl enable crond
如果改时间 data -s 'xxxxx'