根目录执行chmod -R 777 / 的补救方法

根目录执行chmod -R 777 / 的补救方法

大家好,又见面了,我是全栈君。

根目录执行chmod -R 777 / 的补救方法
执行后千万不要退出当前窗口!!!
在自己的虚拟机上设置某个站的权限的时候,原来应该是chmod -R 777 ./ 结果少按了个点,执行了chmod -R 777 / 因为执行时间超出自己的预想范围赶紧按下CTRL+C,可惜晚了,看下了/etc目录下的东西,全部都是777状态,立马开另一个终端尝试登陆,已经登录不上了!
原先执行的窗口还可以操作,于是找资料看看有没有解决方法,要是在机房生产机犯这样低级的错误,总不能重装吧。linux没这么脆弱。
ssh登录不上,应该跟passwd、group、shadow、ssh这几个文件扯上关系而已,开了另一台linux查看权限,并在错误的机器上修改成对应的权限:
cd /etc
chmod 644 passwd group shadow
chmod 400 gshadow
cd ssh
chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key
chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub
chmod 640 sshd_config
然后尝试ssh登录,ok正常,不过没办法切换成root用户
su –
root “su: cannot set groups: “
因为su必须有s权限才能预读取root的相关配置:
chmod u+s which su
完成之后就可以进去系统慢慢折腾了。
找一台linux系统(尽量越干净越好),把系统的权限导出,然后再导入到本机。
在好的机器上执行
getfacl -R / > ./linux.chmod.bak
然后通过ftp或者rz命令上传到要修复的机子上
执行:
setfacl –restore=/root/linux.chmod.bak
执行这个后需要重启机器才会替换权限(真够麻烦,要是线上机器怎么可以随便重启,实际上这个时候机器是可以正常访问,只是安全方面没保证)
执行前,写个脚本让它在开机后执行,万一替换的脚本有问题,至少还能登录ssh。没错,就是把上面的命令写成脚本放在放在rc.local里面延迟执行。我放在/root/下
cat sshtmp.sh
#———-start———-
sleep 300
cd /etc
chmod 644 passwd group shadow
chmod 400 gshadow
cd ssh
chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key
chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub
chmod 640 sshd_config
chmod u+s which su
#—————–end———-
放到开机启动
echo ‘/root/sh/sshtmp.sh &’ >>/etc/rc.local
然后reboot 吧。
重启后如果能正常登录系统,可以先把sshtmp.sh 的进程kill掉,并去掉/etc/rc.local里面脚本。然后查看权限有没有正常。

转载于:https://blog.51cto.com/chaochang/2054415

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107808.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • qtcpsocket write_c文件读写

    qtcpsocket write_c文件读写QTcpSocket的读写函数一般是异步的,即write函数执行后,其实不一定会把数据写入socket,可能要等到事件循环(main函数的returna.exec())才会写入。如果需要立即写入,要执行QTcpSocket的flush函数。QTcpSocket的读函数也类似,我们定义一个槽函数voidslot_readyRead响应信号readyRead,槽函数中,能够读取的数据,也只有这

    2025年10月15日
    5
  • 电脑怎么连接信捷plc_信捷plc怎么连接电脑

    电脑怎么连接信捷plc_信捷plc怎么连接电脑1、 以XC系列为例,需要专用的信捷PLC下载线2、 打开PLC编程软件,把串口线连接PC和PLC。,并查看端口:我的电脑—》设备管理—》串口(端口),以端口5为例3、 连接PLC:选项—》软件串口设置,选择实际的串口,默认是modbus通信,点击检测,会自动搜索波特率校验位之类的,直到找到和PLC配置相同参数说明连接成功…

    2022年10月9日
    4
  • 音乐标签修改器——Mp3tag

    音乐标签修改器——Mp3tagMp3tag用于编辑音频文件元数据:批量标签编辑、在线数据库查询、根据标签信息重命名文件

    2022年7月25日
    13
  • 360 c语言 笔试,奇虎360校招的笔试真题「建议收藏」

    360 c语言 笔试,奇虎360校招的笔试真题「建议收藏」选择题有45个?好像是,三道简答题,简答题:1、设计一个课程表(包括目标人群、核心功能、特色设计);2、说ATM的缺点,改进方法;3、如何让李开复等互联网大牌关注你的微薄?选择题记得不是很清楚,大概是这样的:1、数字推理:1,4,5,6,7,9,11,()2、安卓系统是什么语言开发的?c,c++,java,**3、HTML5不包含的技术?选项有JS、java、*、*4、12个鸡蛋,有一个重量与其他…

    2022年7月14日
    36
  • centos7安装python3.7_python软件安装步骤

    centos7安装python3.7_python软件安装步骤Centos7安装Python3.8详细教程Centos7安装Python3.8详细教程安装编译相关工具下载python安装包编译安装python创建软连接更改yum配置Centos7安装Python3.8详细教程安装编译相关工具yum-ygroupinstall”Developmenttools”yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-d

    2022年9月24日
    2
  • 基于Spring Cloud项目实战

    (2018年10月2日,从git上移到这里)通过案例学习了基于Springcloud进行web微服务项目的开发,干货很多。Springcloud体系提供了完整的微服务开发的解决方案,整合了多个优秀组件,能够很好的帮助我们提高开发效率。在此做以下总结。SpringCloud简介SpringCloud是一个基于SpringBoot实现的微服务架构开发工具。它…

    2022年4月6日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号