首页 > 其他分享 >论.bashrc和.bash_profile的区别

论.bashrc和.bash_profile的区别

时间:2023-02-13 18:36:22浏览次数:46  
标签:profile tmp openssh server bashrc 主机 目录 bash

背景

今天在使用堡垒机连接后端主机的时候发现无法使用xftp打开后端主机的/tmp目录,但是用ssh命令行登陆可以列出/tmp目录,折腾了快一天了才发现问题原因,原来是自己的基础不牢,以下记述具体过程。

怀疑jumpserver有问题

查看jumpserver日志也没看到有相关的报错日志,而且其他主机都正常就这一台不正常,应该不是jumpserver有问题

怀疑主机目录权限

因为在/tmp目录创建的一个软链接文件,怀疑是软软件文件对应的真实目录没权限打开,于将真实目录的权限设为755,发现还是不行。

怀疑主机目录有特殊权限

对比其他主机的/tmp目录,发现多了个点 image.png 怀疑selinux搞和鬼,但是selinux已经关了,干脆将/tmp目录重建,重新授权

rm -rf /tmp
chmod -R 1777 /tmp

发现还是不能打开。

ssh交互式连接也没法使用任何命令

连接完就卡住(后来发现其实不是卡住,是需要你交互) image.png 然后使用root用户再交互式连接发现可以连接,那应该是用户有问题了,想将普通用户删除再重新建,删除的时候又提示sftp-server应用在占用,又怀疑是sftp-server应用是不是有问题,其他主机没有这个应用在运行。

怀疑普通用户有问题

将用户删除,重新增加

userdel -r harmony
useradd harmony
passwd harmony xxx 

卸载sftp-server软件

[root@oracle_10_10_10_111 ~]# rpm -qf /usr/libexec/openssh/sftp-server
openssh-server-7.4p1-22.el7_9.x86_64
yum remove -y openssh-server-7.4p1-22.el7_9.x86_64

将openssh-server给卸载了发现openssh也不能用了,只能再装openssh,装完openssh后再重启,发现还是打不开。

回顾之前操作

普通使用交互式远程连接不能使用任何命令,是不是环境变量有问题,不过如果环境变量有问题应该是会报错,他没有任何报错。

确认问题原因

联想到环境变量就联想到普通用户的bashrc和bash_profile,查看一下bashrc和bash_profile和其他的作对比,发现也没什么不一样,就是bashrc多了一个命令 image.png 将这个命令注释掉,果然可以打开了。

疑问点

为什么注释了就可以,后来发现其实原来交互式连接不是卡住,是等待你输入,而我一直没有输入,并且xftp上他是没法输入的所以一直提示超时。 仔细对比了两个文件的区别 image.png 意思,需要执行一次的放在.bash_profile,而交互式的命令放在.bashrc,而我之前没有了解透彻,将sudo su - root写在.bashrc导致他一直在等待我输入,我却以为是卡住了,所以将sudo su - root放在.bash_profile就好了。

标签:profile,tmp,openssh,server,bashrc,主机,目录,bash
From: https://blog.51cto.com/riverxyz/6054569

相关文章

  • 【SpringBoot】条件装配 @profile
    profile使用说明:@profile注解的作用是指定类或方法在特定的Profile环境生效,任何@Component或@Configuration注解的类都可以使用@Profile注解。在使用DI来依赖注入的......
  • linux 基础(6)简单认识 bash
    shell和bash是什么?shell是一种应用程序,在这个程序里输入文字指令,系统就会做出响应的操作。这个“壳程序”是我们使用系统各种功能的接口,学会了shell就是学会操作li......
  • 分享一些超有用的BASH命令
    调出CMD界面(Win+R,输入cmd,回车)    1.查看所有该电脑连接过的WIFI密码信息for/f"skip=9tokens=1,2delims=:"%iin('netshwlanshowprofiles')do@echo......
  • 让 MSYS2 Bash 像 Git Bash 一样显示 Git 分支名称
    GitforWindows的Bash有一个很实用的功能,如果当前目录处于Git仓库中,那么命令行中会显示当前Git分支的名称(见下图)。然而原版的MSYS2Bash没有这个功能(见下图),不......
  • [Postgres Bash] Wait for database
    Serverwaitfordatabasegetready#Fromhttps://docs.docker.com/compose/startup-order/#!/bin/sh#wait-for-postgres.shset-ehost="$1"shift#Logi......
  • Go Linux bash环境下 字符串strings.Trim截取无效
    result:="40%"iflen(result)>0{fmt.Println("result:",result)numStr:=strings.TrimSpace(strings.Trim(result,"%"))fmt......
  • Bash 终端命令常用快捷键
    Bash(GNUBourne-AgainShell)是许多Linux发行版的默认Shell[1]。还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同。本文主要介......
  • ftrace中的Max Stack Tracer和Function_Profiler
    (1)MaxStackTracer的使用这个tracer记录内核函数的堆栈使用情况,需要使能CONFIG_STACK_TRACER,用户可以使用如下命令打开该tracer:#echo1>/proc/sys/kernel/stack......
  • 学习bash反弹shell过程中所想到的
       bash-i>&/dev/tcp/ip/port0>&1   在这一句命令中,主要包含两个问题:“>&”和“/dev/tcp/ip/port”。1. /dev/tcp/ip/port  /dev目录下存放这设备文......
  • Linux创建文件报错:/bin/bash^M: bad interpreter
    在使用Linux创建好文件shell文件之后,发生了这样一个错误:/bin/bash^M:badinterpreter查找资料后发现:在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即......