anyディレクトリのbashでcd folder_name/
を試みると、このエラーが発生します。
-bash: cd: folder_name/: Permission denied
実行許可はすべてのフォルダーに与えられるため、問題ではないようです。例えば。 Desktop/
出力での統計の実行:
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: -
その他の関連情報:
mkdir
は正常に実行されますが、cd
を新しいフォルダーに入れることはできません。rmdir
は正常に実行されます。だから、誰が問題が何であるかを伝えることができますか?
前もって感謝します。
編集:type -a cd
は次の出力を示します。
cd is a function
cd ()
{
echo "-bash: cd: $1: Permission denied"
}
cd is a Shell builtin
いたずらの被害者は、おそらく同僚やあなたのマシンにアクセスできる誰かによって行われたでしょう。
type -a cd
のように、Bash関数は元のシェル組み込みコマンドをシャドウすることができます。どこかで宣言されている可能性のある関数が最初に見つかったことを示しています。
cd is a function
cd ()
{
echo "-bash: cd: $1: Permission denied"
}
cd is a Shell builtin
この出力から、誰かがcd
と呼ばれるシェル関数を宣言したことがわかります。これは、現在シェル組み込みコマンドcd
を隠しています。場合によっては、このような何かがコマンドの汎用性を高めたり、追加の機能を実装するのに役立つかもしれませんが、この場合は悪意を持って行われました(私の推測)。これは、システム上のいくつかの場所で実行できます。
/etc/bash.bashrc
/etc/profile
/etc/profile.d/
の任意のファイル/etc/environment
~/.bashrc
~/.profile
~/.bash_aliases
これを見つける可能性のある方法の1つは、/etc/
および/home/
で再帰grep
検索を実行することです。
grep -r 'bash: cd: $1: Permission denied' /home/*
Sudo grep -r 'bash: cd: $1: Permission denied' /etc/*
次のような出力が得られる可能性があります。
$ grep -r 'bash: cd: $1: Permission denied' /home/*
/home/videonauth/.bashrc: echo "-bash: cd: $1: Permission denied"
この例では、行または関数は~/.bashrc
にあるようで、grep
出力を導くパスで見ることができます。全体がどれだけ十分に隠されているかによって、結果が得られる場合と得られない場合があります。このような関数宣言を非表示にする方法は他にもありますが、簡単に見つけることはできません。