Linux Shell脚本:用户管理与安全配置

需积分: 9 1 下载量 67 浏览量 更新于2024-09-09 收藏 3KB TXT 举报
"这篇文档涉及Linux Shell脚本编写,涵盖了用户管理、日志分析、权限控制、会话管理以及安全配置等多个方面。" 在Linux环境中,Shell脚本是一种强大的工具,用于自动化执行一系列命令和任务。以下是根据题目描述中提出的各个问题的知识点: 1. **用户管理**: - 通过Shell脚本可以从`user.list`文件中提取用户信息,包括用户名、用户组和密码。使用`awk`或`cut`命令解析文件,然后利用`useradd`和`groupadd`命令动态创建用户和组。对于不存在的组,需要先用`groupadd`创建。 - 用户信息的格式需要正确解析,例如,使用`awk -F '[:, ]'`来定义字段分隔符,然后逐行处理文件。 2. **日志分析与统计**: - 脚本需要读取`cattotal.txt`文件,计算每天的总收入。可以使用`awk`命令按日期分组并累加收入。例如,`awk '{a[$1]+=$2} END{for (i in a) print i, a[i]}' cattotal.txt` 将输出每个日期及其对应的总收入。 3. **会话管理**: - 编写一个脚本以移除除当前用户之外的所有登录用户,可能涉及`w`或`who`命令获取在线用户信息,然后结合`pkill`或`kill`命令终止其他用户的会话。 4. **权限设置**: - 创建目录`/share/mode`,需要使用`mkdir`命令,设置权限则使用`chmod`和`chown`。具体设置如下: - `sudo mkdir /share/mode && sudo chown root:root /share/mode` - 使用`sudo chmod 770 /share/mode`使`upbaby`、`upboy`和`upgirl`具有读写权限,其他用户无任何权限。 - 对于新建文件或目录的默认所属组,可以修改目录的`setgid`位,`sudo chmod g+s /share/mode`。 - 限制用户删除权限,可以使用`sudo setfacl -m d:u::--- /share/mode`和`sudo setfacl -m u:others:--- /share/mode`。 - 限制`upbaby`的磁盘使用和文件数量,可以使用`quotas`工具进行设置。 5. **SSH安全配置**: - 修改`sshd_config`文件,仅允许`upgirl`用户从`192.168.0.7`登录。使用`sudo vi /etc/ssh/sshd_config`打开配置文件,设置`PermitRootLogin no`禁用root登录,`AllowUsers upgirl`只允许指定用户登录,并添加`Match Address 192.168.0.7`来限制IP。 6. **Nginx Web服务器配置**: - 企业主站和各部们网站部署可以通过Nginx的虚拟主机配置实现。创建不同的server块,指定域名和文件路径,例如: ``` server { listen 80; server_name www.host.com; root /var/www/web; } server { listen 80; server_name sales.host.com; root /path/to/sales/website; } ``` 每个部门的配置都需要对应相应的域名和文档根目录。 通过以上步骤,可以编写出满足题目需求的Linux Shell脚本,实现用户管理、日志分析、权限控制、会话管理以及SSH服务的安全配置等功能。这些知识点是Linux系统管理和自动化运维的基础,对于提升系统的安全性与效率至关重要。