Awa*_*hti 5 permissions bash directory cd-command
每当我cd folder_name/在任何目录上尝试bash 时,它都会出现此错误:
-bash: cd: folder_name/: Permission denied
执行权限授予所有文件夹,因此这似乎不是问题。例如在Desktop/输出上运行 stat :
File: 'Desktop/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 807h/2055d Inode: 13107232 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 1000/caffeine) Gid: ( 1000/caffeine)
Access: 2017-12-07 14:39:42.715820915 +0500
Modify: 2017-12-06 01:16:13.985722935 +0500
Change: 2017-12-06 01:16:13.985722935 +0500
Birth: -
Run Code Online (Sandbox Code Playgroud)
其他一些可能相关的信息:
mkdir正常执行,但我无法cd进入新文件夹。rmdir 正常执行。那么谁能说出问题是什么?
提前致谢。
编辑:
type -a cd显示以下输出:
cd is a function
cd ()
{
echo "-bash: cd: $1: Permission denied"
}
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)
您可能是恶作剧的受害者,恶作剧可能是由您的同事或有权访问您的计算机的人完成的。
Bash 函数可以隐藏原始 shell 内置命令,正如您所看到的那样type -a cd。它向您表明它首先找到了一个可能在某处声明的函数。
cd is a function
cd ()
{
echo "-bash: cd: $1: Permission denied"
}
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)
从这个输出中,您可以看到有人在某个地方声明了一个 shell 函数,名为cdwhichshadows now the shellbuilt-in command cd。在某些情况下,这样的事情可能有助于使命令更加通用或实现额外的功能,但在这种情况下,这是出于恶意(我的猜测)。这可以在系统上的几个地方完成:
/etc/bash.bashrc/etc/profile/etc/profile.d//etc/environment~/.bashrc~/.profile~/.bash_aliases找到这个的一种可能方法是grep在/etc/和 in 中进行递归搜索/home/:
grep -r 'bash: cd: $1: Permission denied' /home/*
sudo grep -r 'bash: cd: $1: Permission denied' /etc/*
Run Code Online (Sandbox Code Playgroud)
这可能会产生这样的输出:
$ grep -r 'bash: cd: $1: Permission denied' /home/*
/home/videonauth/.bashrc: echo "-bash: cd: $1: Permission denied"
Run Code Online (Sandbox Code Playgroud)
在此示例中,您似乎可以~/.bashrc通过引导输出的路径看到该行或函数grep。这可能会或可能不会产生结果,具体取决于整个事物隐藏的程度。还有其他方法可以隐藏此类函数声明,但可能不太容易找到。