美文网首页
【fixed】EC2 broken sudoer file

【fixed】EC2 broken sudoer file

作者: __XY__ | 来源:发表于2018-08-01 19:16 被阅读0次

0起因


test服务器经常要手动在本地执行部署脚本,很是麻烦,索性决定配置CI,
当test分支有push动作的时候,自动执行部署脚本,想法很美,
于是花了整整一下午的时间配置gitlab的CI,由于gitlab的CI的对应ssh用户是gitlab_runner,
所以需要gitlab_runnser去切换身份执行pull脚本,必然使用sudo命令
于是想也没想就敲了下面一句该死的命令

sudo vim /etc/sudoers

然后编辑权限,敲完后一运行就报错,一看报错信息就傻眼了。。。

/etc/sudoers.d/90-cloudimg-ubuntu: syntax error near line 1 <<<
sudo: parse error in /etc/sudoers.d/90-cloudimg-ubuntu near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

心里暗想,不妙了,所有涉及到sudo的语句都没法执行了,
报错正常业务的更新等等。。。。整个test服务器怕是要废了。
第一反应stack_over_flow:


Xnip2018-08-01_18-54-39.jpg

马上尝试这种方法。。。。
然而,我的电脑仅有的几个用户也没有root认证,太尴尬。。。。
快速分析了下如果重新开一台EC2的成本,包括nginx,supervisor,virtualenv,crontab,sql 。。。。。。等等的配置。成本太大,怕是半天也搞不定。
于是再次冷静分析,不过是一个小小sudoer文件的问题,不至于这么大费周折,既然我们有Volumn,为什么不从Volumn角度入手呢?有磁盘我们就有一切啊。

1 思路分析


把大象装进冰箱的三部同样也适用于Volumn

  • 1 取下挂载的Volumn(deattach)
  • 2 挂到一个好的EC2上
  • 3 mount挂载
  • 4 修改
  • 5 Volumn装回去

2 实践


2.1 关掉EC2


记得记下原来的device_name ,待会装回来的时候,肯定是需要撞到同样的device_name上

2.22 把Volumn取下来

Xnip2018-08-01_19-07-30.jpg

2.3 重新挂载到一个好的EC2上面

挂载的时候系统会提示到时dev里面的名字会不一样,不过没有关系,只要挂载上去/dev目录下看下就能找到了
aws也给了相应的提示:

Note: Newer Linux kernels may rename your devices to /dev/xvdf through /dev/xvdp internally,
 even when the device name entered here (and shown in the details) is /dev/sdf through /dev/sdp.

目前只是物理挂载上了,去找下对应的device_name

ls /dev/

找到后,执行下面命令

mkdir /mnt/other
mount /dev/sdaXXX /mnt/other

挂载成功后,去/mnt/other目录里面直接更改错误的sudoers文件。

2.4 volumn回归

直接attach到原来的ec2上即可,注意device_name要和原来的一致,不然启动会无法启动

2.5 start EC2

启动后去确认下sudoer不再报错

3反思


尽管问题已解决,但是坑是没必要再踩

  • 1 坚决不要sudo visudo。
  • 2 给root早点起个密码,不至于sudo命令失效的时候切不到 root。
  • 3 多给EC2做备份,尽量一周备份一个。
  • 4 遇事不慌,大不了从头来过。

相关文章

  • 【fixed】EC2 broken sudoer file

    0起因 test服务器经常要手动在本地执行部署脚本,很是麻烦,索性决定配置CI,当test分支有push动作的时候...

  • user_1 not in sudoer file

    1.su:切换到root2.sudo visudo:打开文件3.最后一行添加user_1 ALL=(ALL) ALL

  • [2017强网杯] Web Writeup

    Web50 : 题目名称:Broken 题目url:动态url 首先一进去之后发现有file链接,点进去之后是一串...

  • 1084 Broken Keyboard (two pointe

    1084 Broken Keyboard (two pointer) On a broken keyboard, ...

  • LeetCode991 broken-calculator

    题目 991 broken-calculator 题目描述 On a broken calculator that...

  • Linux添加sudoer

    Linux添加sudoer Linux是个多用户的操作系统,很多时候需要多人协作管理 过程 添加新用户: 添加su...

  • Mac上传文件到aws ec2 instance

    mac上使用ec2 实例确实比较简洁: 使用scp上传文件到ec2 instance上: 1. 在ec2 inst...

  • AWS EC2云服务器实例的创建和XShell远程连接

    本想在EC2上部署一套RocketMQ,然后就开始捣鼓EC2。 一、什么是EC2 Amazon Elastic C...

  • Broken

    最近咪蒙好像因为要离婚把自己搞得很丧。 其实我不知道离婚这点破事为什么会在很多人生命中成为天大的event,我见过...

  • Broken

    我只有一把吉他。 我找不到你。 我也许是迷失了,辨不清方向。已经很久了。我想回家来。 太阳在天上,我们在哪呢? 我...

网友评论

      本文标题:【fixed】EC2 broken sudoer file

      本文链接:https://www.haomeiwen.com/subject/bagrvftx.html