当我无法通过 Filezilla 或 Putty 连接到服务器时,如何更改 /var/ 文件权限

当我无法通过 Filezilla 或 Putty 连接到服务器时,如何更改 /var/ 文件权限

好吧,我是 Linux 新手。我做了一些愚蠢的事情,让我陷入麻烦。

问题是我有一个 AWS 账户,除了我的 PDF 渲染服务之外,其他都运行良好。我发现这与文件权限有关。

因此,我使用了以下命令:

cd /var/

find . -type d -exec chmod 0775 {} \;

find . -type f -exec chmod 0644 {} \;

PDF 渲染问题已解决,但现在我无法使用 Filezilla 或 Putty 连接到我的服务器。

我知道我必须将我的/var文件权限更改为 755。但我不知道在哪里更改它。

我下一步该做什么才能连接到我的服务器?

如果我为现有实例创建一个新的密钥对,那么我可以通过 putty 进行 ssh 吗?

答案1

由于您目前无权访问虚拟机:如果您使用的是 EBS 卷,则可以关闭实例并将磁盘连接到另一个实例。然后,您需要将磁盘安装到目录(例如/recover)并 chroot 到该目录。然后,您可以尝试其他恢复过程。

如果是简单分区,安装应该不会特别困难。(如果您知道如何安装 Arch 或 [Gentoo])(https://wiki.gentoo.org/wiki/Handbook:X86/Installation/Disks) )(可能是/dev/sdb*)。如果涉及到 LVM,情况会变得更加复杂...从和开始ls /dev/sd*mount /dev/partition /recover一个开始...但找一个知道他们在做什么的人可能是个好主意...

一旦在实例中收到提示:如果它正在运行 Amazon 发行版或其他基于 RPM 的发行版,请先使用以下命令将权限重置为 rpm 包中的值:(通过

for p in $(rpm -qa); do rpm --setperms "$p"; done
for p in $(rpm -qa); do rpm --setugids "$p"; done

删除所有文件的组写入权限chmod 644可能会阻止您拥有的任何 FTP 服务器和 OpenSSH 写入用于跟踪会话的 /var 中的文件。(如果权限范围过广(例如所有目录上的 775 权限)可能会危及安全性,OpenSSH 也会变得多疑并拒绝执行操作)

之后,尝试找出故障应用程序需要哪些权限(对于命令行应用程序,您可以检查哪些系统调用因权限问题而失败,truss否则strace,您可能需要设置审核以查看失败的访问尝试)并更改最小权限以使其正常工作。(SELinux 也可能是一个因素,audit2why并且audit2allow可以告诉您涉及哪些策略以及如何修复它们)

答案2

@Gert 谢谢,伙计,你的回答告诉我该如何解决这个问题。好吧,我不会说我的方法是正确的,因为我知道问题到底是什么,这就是我解决问题的方法。你可以采纳这个想法,并根据你的问题去做。

所以我做了以下事情:-

1)创建一个新的AWS实例,例如演示实例。

2)停止原始实例,例如生产实例。

3)现在,将生产量从生产实例中分离出来。

4)将您的生产卷与演示实例连接起来。设备名称将为 /dev/sdf(默认情况下不要更改它)。

5)现在在 putty 中与演示实例创建一个新的连接。

6)现在按照以下命令:-

sudo su (Get Root Privilage)
mkdir /mnt/tmp (Create Directory)
lsblk (To check the disks)
mount /dev/xvdf1 /mnt/tmp (To access the original volume)
cd /mnt/tmp/var/ (Get Into The Var directory Of The original volume)
find . -type d -exec chmod 0755 {} \; (Change Permissions Of The var 
                                       directory,Which was the main problem 
                                       due to which I was Unable To SSH Into 
                                       my server)
umount

7)停止您的演示实例,并从演示实例中分离原始卷。

8)将原始卷与生产实例连接起来,启动原始实例。

9)现在我又能通过 ssh 进入我的服务器了。

谢谢,Gert,多亏了你的回答和驱动器安装解决方案,我才能够解决这个问题。干杯

相关内容