centos新机器需要简单配置的脚本
时间: 2023-05-20 08:01:54 浏览: 83
可以使用以下脚本来简单配置新的CentOS机器:
#!/bin/bash
# Update the system
yum update -y
# Install some useful packages
yum install -y vim wget curl git
# Configure the firewall
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
# Configure SELinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
# Disable unnecessary services
systemctl disable postfix
# Reboot the system
reboot
注意:这只是一个简单的配置脚本,可能需要根据具体情况进行修改。
相关问题
centos中加密某个脚本文件,即使黑客破解了机器的密码,也无法获取到脚本文件内容,无法执行该脚本,执行脚本前需要验证身份
可以使用CentOS中的加密工具和sudo命令来加密并验证身份执行脚本文件,使得即使黑客破解了机器的密码,也无法获取到脚本文件内容,无法执行该脚本。
下面以shc和sudo为例,介绍如何加密并验证身份执行脚本文件:
1. 安装shc和sudo
可以使用以下命令来安装shc和sudo:
```
yum install shc sudo
```
2. 加密脚本文件
假设要加密的脚本文件名为test.sh,可以使用以下命令来加密:
```
shc -f test.sh
```
执行上面的命令后,会生成一个名为test.sh.x的二进制文件,该文件即为加密后的脚本文件。
3. 创建sudo用户
可以使用以下命令来创建一个名为myuser的sudo用户:
```
adduser myuser
usermod -aG wheel myuser
```
执行上面的命令后,会创建一个名为myuser的用户,并将其添加到sudo组中。
4. 配置sudo权限
可以使用以下命令来编辑sudo配置文件,并添加myuser用户的sudo权限:
```
visudo
```
在打开的文件中,添加以下内容:
```
myuser ALL=(root) NOPASSWD:/path/to/test.sh.x
```
其中,/path/to/test.sh.x为加密后的脚本文件的路径。
5. 执行加密脚本文件
现在,可以使用以下命令来以sudo用户身份执行加密后的脚本文件:
```
sudo /path/to/test.sh.x
```
执行该命令时,会要求输入myuser用户的密码,输入正确的密码后,即可执行加密后的脚本文件。需要注意的是,加密后的脚本文件只能在加密时指定的机器上执行,如果要在其他机器上执行,需要将加密后的脚本文件复制到目标机器上,并重新生成可执行文件。
在centos7中可以应用的上述要求内容,请展示完整脚本
在 CentOS 7 中,由于 `expect` 可能不是一个默认安装的工具,我们可以使用其他方法来替代生成截图。以下是满足你描述要求的简化版 Shell 脚本,它仅用于检查 journal 程序状态并在本地虚拟机中显示结果:
```bash
#!/bin/bash
# 定义函数以远程检查 journal 状态
check_journal_status() {
local host=$1
local result
# 使用 ssh 检查 journalctl 的状态
ssh -o StrictHostKeyChecking=no user@$host "journalctl -t journal -q -o short --since='now-5m'" > /dev/null
result=$?
# 判断状态并输出信息
if [ $result -eq 0 ]; then
running_time=$(ssh -o StrictHostKeyChecking=no user@$host "journalctl -t journal --since='now-5m' | tail -n 1 | awk '{print $4 \" minutes\"}'")
echo "[${host}] Journal is running for ${running_time} minutes."
else
service_status=$(ssh -o StrictHostKeyChecking=no user@$host "systemctl status journal.service | grep Active" | tail -n 1)
echo "[${host}] Journal is not running. Service status: $service_status"
fi
}
# 从 hosts 文件中读取 IP 地址并检查
while IFS= read -r host; do
check_journal_status "$host"
done < hosts.txt
# 结果总结
echo "Journal status checks completed."
# 相关问题:
# 1. 如何确保脚本在 SSH 链接失败时继续执行下一台机器?
# 2. 如何在没有网络连接时避免脚本停止?
# 3. 是否有更高效的方式定期监控 journal 的运行状况?
```
注意:
- 使用 `-o StrictHostKeyChecking=no` 来禁用严格的主机键验证,这可能会在生产环境中引起安全顾虑,确保你信任所连接的主机。
- `IFS=` 和 `read -r` 是为了防止变量被干扰或转义特殊字符。
- 对于更复杂的环境,可能需要考虑使用 Ansible、Puppet 或其他配置管理工具来更好地管理任务。
阅读全文