楼赛第1期比赛题目解析
前言:
楼赛是实验楼推出的常规周赛,每周会选取一个主题,每个主题下会根据实际开发中面临的问题来给出题目,让参赛者来解决问题,从而达到能够实际动手解决问题的能力,也可以验证自己的开发水平。
第1 期楼赛的主题是 Linux,涉及 Linux 用户管理、sudo 权限设置、MySQL 及 nginx 排错等知识点。题目难度不大,有过 Linux 运维经验的都可以快速完成。
虽然第一期的楼赛已经结束了,但是依旧有非常多的小伙伴询问标准答案,因此制作了题目解析文档,希望对大家有所帮助。答案并不一定是最优的方案,欢迎大家贴出更优的解决方案。
题目1:为新同事创建系统账户
你所面临的问题:
实验楼研发团队有一台独立的测试服务器,每位同事都在上面拥有一个账号,用来日常开发测试。今天有一位叫楼赛的同事入职,需要你帮他创建新账号。
创建的新账号要求如下:
- 用户名:lousai
- Home 目录:/home/lousai
- 允许 lousai 使用 SSH 登陆系统
- lousai 用户默认使用 zsh
- lousai 用户需要 sudo 权限
解析:
其中1,2,4 三个要求只需要一个 adduser 命令就可以完成:
sudo adduser --home /home/lousai --shell /usr/bin/zsh lousai
由于实验楼环境的配置,新创建的用户只要有密码,默认是允许通过 SSH 登录的,所以需求 3 不需要做任何事情。
最后需求 5 需要 sudo 权限,可以直接将新用户加入到 sudo 组:
sudo usermod -aG sudo lousai
至此,五个需求都已经完成,提交结果让实验楼的系统帮你测试下吧。
题目2:数据库无法启动
你所面临的问题:
新同事小楼在本地搭建的开发环境使用 MySQL 数据库,因为一些误操作无法启动,并且忘记了 MySQL 的 root 密码。
请帮她在右边的实验环境(指实验楼的在线开发环境,可以点击这里进行进入环境查看)中启动 MySQL 并重设 MySQL 的 root 密码,让她可以登录进去恢复数据。
恢复后的数据库要求如下:
- mysql 服务处于运行状态
- mysql 的 root 密码重新设置为 shiyanlou
解析:
在这道题目中有三个坑:
- MySQL 服务无法启动 -
bind address
配置错误 - MySQL 服务无法启动 -
/var/run/mysqld
权限配置错误 - MySQL root 密码忘记
前两个坑都可以在尝试 sudo service mysql start
命令后查看 /var/log/mysql/error.log
报错日志发现。
坑1相关的报错日志:
Paste_Image.png
网友评论
修改用户usermod -home $home_path