今日经历

血的教训

今天凌晨,服务器突然显示没有lighthouse文件夹路径。退出后就再也登不上去了。

重启、关机什么都不行,等了好一会儿也不行,于是便关闭电脑先睡觉了。

早上一起来就是登录,发现同样的问题,担心是中病毒了,但是有没有中病毒的特征。

而且,它显示“一键自动登录未安装”,我感到有些蹊跷,会不会是系统文件损坏了?

后来尝试各种登录方式,在VNC登录里发现了问题:
grub rescue损坏

网上一搜,全是教你如何重装系统的,看来只能重装了。还好没有什么重要的数据。

再次踩坑

一切重头开始后,我在安装chrome-browser后,它提示我说有些无用的包可以删除,于是我便运行了:
sudo apt-get autoremove

继续安装,结果提示说“你将持有一个损坏的包”:
E: Unable to Correct Problems ‘You have Held Broken Packages'

网上一查,果然,是autoremove惹的祸

开始补救

使用命令vi可以打开vim编辑器

/var/log/apt/history.log中找到autoremove的记录,复制它们,粘贴到docx文档里面进行整排。

首先尝试将括号里面的内容都替换掉(*),结果它并没有如我所愿的,一个 ‘(’ 对应一个 ‘)’ 地替换。我先将逗号替换为换行符,然后开始尝试其他方法。

最终在excel表里面粘贴,然后使用'sudo apt-get install '&A1&' -y'将命令弄好了。

我学到的vim使用方法:
  • a, i, o 可以开启写入
  • 写好后按Esc,接着输入:wq (文件名)

    如果是vi进入的,则需要文件名;如果是vim打开已有文件,则不用。

  • wq!是覆盖写入
  • 如果想清除所有内容,在按Esc后输入"ggdG"
  • 在命令后面加上 -y,就不用自己去输入y来同意继续了

编辑好退出后,就使用chmod +x 文件名进行编译,接着使用./文件名运行即可(亲测这种方式可以运行各种终端命令,但不建议这样使用,因为图中如果出错就难办)

补救失败

本以为可以补救成功,结果在安装过程中提示互相依赖,结果都安装不了。

再次重装

这次使用了vi的方式来一键安装云崽bot,结果…中途真的出错了,还是得一步一步来啊!

安装另一个机器人

之前也出过问题,jieba-fast死活安装不了,无奈尝试通过xftp来传输tar.gz文件,手动安装,结果还是不行。

不过报的错也算有进步,显示没有Python.h的库文件。
解决方法是
sudo apt-get install python-dev
sudo apt-get install python3-dev
然而却有这种错:

The following packages have unmet dependencies:
python3-dev : Depends: python3 (= 3.6.7-1~18.04) but 3.8.2-0ubuntu2 is to be installed
Depends: libpython3-dev (= 3.6.7-1~18.04) but it is not going to be installed
Depends: python3.6-dev (>= 3.6.7-1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

然后我想起来了,我好像遇到过这种问题,去/etc/apt/里找source.list换官方源就行。

官方镜像源
 
    deb http://cn.archive.ubuntu.com/ubuntu focal main restricted
deb http://cn.archive.ubuntu.com/ubuntu focal-updates main restricted

deb http://cn.archive.ubuntu.com/ubuntu focal universe

deb http://cn.archive.ubuntu.com/ubuntu focal-updates universe

deb http://cn.archive.ubuntu.com/ubuntu focal multiverse

deb http://cn.archive.ubuntu.com/ubuntu focal-updates multiverse

deb http://cn.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse


deb http://cn.archive.ubuntu.com/ubuntu focal-security main restricted

deb http://cn.archive.ubuntu.com/ubuntu focal-security universe

deb http://cn.archive.ubuntu.com/ubuntu focal-security multiverse

使用tar.gz文件安装python依赖包

  1. 谷歌搜索该安装包名称,新版的可以在这里面直接下载,旧版的可以在前面的网页中找到项目后,根据它简介中的链接到github项目,然后在release里面找。
  2. 使用tar -xf命令解压。
  3. 输入python setup.py install安装。
  4. 输入pip list查看是否安装成功。

ps:不得不说,xftp传文件巨方便

糟糕的经历——可能又要重装了

出现了sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set的问题
使用susu: Authentication failure了。

终于发现原因了。。。我在给一个文件夹chmod时,不小心chmod 777 / -R了,导致所有文件全部变成了777,于是便无法访问了。

还好,通过腾讯的自动登录,使用用户名root登录上去了

出现过的问题

sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
-----------------------------------------------------
sudo: error in /etc/sudo.conf, line 0 while loading plugin "sudoers_policy"
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
-----------------------------------------------------
su: Authentication failure
-----------------------------------------------------
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

获取root权限后恢复远程连接的操作:

chmod 550 /root
chmod 600 /root/.ssh
chmod 755 /var/empty/sshd
chmod 400 /etc/ssh/*
service sshd restart

普通用户提升权限

sudo vim /etc/passwd,然后找到该用户名,将它后面的数字改为0:0
重启后生效

备份权限

getfacl -pR / > ~/sys_backup.bak

其中p代表采用绝对路径,R代表递归保存/下所有文件,
~/sys_backup.bak表示将生成的系统权限文件保存到用户的sys_backup.bak文件中(后缀名一般就是bak), 路径和文件名都是可以修改的

还原权限:
setfacl --restore=文件名

今日总结

vim

  • a, o, i //开启写入
  • :wq //保存退出,加!就是覆盖
  • ggdG //清除所有内容

文件相关

  • ./是当前目录,而/是根目录

编译命令

  • chmod +x 文件名 //可以编译出在终端运行命令的程序

压缩命令

  • tar -cf 打包后的名字 文件夹名 -C 目标路径 //可以打包文件夹,直接放到本文件夹就可以去掉-C以及后面的内容
    tar -xvf 文件名 -C 目标路径 //解压文件

权限相关

  • chmod 777 文件名 -R //所有人可以读写该文件及其子文件的内容(-R是递归,不能小写)
  • sudo ufw status //查看防火墙状态
  • sudo ufw enable/disable //开关防火墙

python相关

  • python3 -m pip config set global.index-url 源 //换源
  • https://pypi.python.org/simple/ //官网依赖包网址
  • https://pypi.org/project //算是官网吧,可以找project
  • python -m pip install --upgrade pip //更新pip
  • pip3 install -U --upgrade --timeout 10000 包名 //如果出现runtimeerror之类的

SUFE大二在读