ターミナルからディレクトリにcdしたいのですが、アクセスが拒否され、Sudo cd (directory)
と入力すると、sudoがcdコマンドをサポートしていないというエラーが返されます。 Sudo gnome-terminal
を使用してルート権限で新しいターミナルウィンドウを起動できますが、同じ非ルートターミナルウィンドウから使用できるソリューションが必要です。 cdコマンドにsudoとの互換性を持たせる方法はありますか?
cd
をSudo
と直接使用することはできないと思います。 Sudo
はSudo ls
などの実行可能ファイルを呼び出すことができますが、cd
はシェルの組み込みコマンドです。つまり、ls
(/bin/ls
)の実行可能スクリプトを含むファイルはありますが、cd
のファイルはないため、cd
をSudo
と共に使用することはできません。
確かに、次のコマンドを実行できます。
Sudo sh -c "cd somedirectory"
技術的には、起動したサブシェルの現在のディレクトリを変更します。問題は、サブシェルがすぐに終了し、メインシェルのディレクトリが変更されないことです。
主な問題は、ディレクトリにcd
できない場合、現在のアカウントでその中のシェルを実行できないことです。
回避策は、この権限を持つユーザーアカウントに切り替えることです。もちろん、ルートが最も簡単な選択です。
Sudo sh -c "cd somedirectory; sh"