Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Sudo cdおよびsudo llコマンドエラー

Sudo cdおよびsudo llコマンドエラー

  

最近、友人からsudo cdおよびsudo llログインコマンドに次のプロンプトが表示される理由が聞かれました。

sudo:ll:コマンドが見つかりませんsudo:cd:コマンドが見つかりません


sudo lsなどの他のコマンドを実行しても問題なく動作します。


一言で言えば、sudoはシステムに付属のコマンドしか実行できず、他のプログラムは実行できないということです。 ll、cdなどはシェルによってもたらされます。

sudoはユーザのパーミッションを強化するためのプログラムですlinuxでsoduと入力するとパーミッションを強化することになりますシェルはコマンドパーサですsudo cdはシェルに組み込まれているため間違っています。システム内ではなく、sudoはコマンドでシステムを実行できますが、システム内のソフトウェアでコマンドを使用することはできません。

cdはシェルの内部コマンドです。いわゆるシェルは対話型アプリケーションです。シェルが外部コマンドを実行すると、fork /execを介して子プロセスをフォークしてからプログラムを実行します。 Sudoは、他の誰かの特権を使ってプロセスをフォークしてプログラムを実行することを意味します。また、cdは内部コマンドです。つまり、forkプロセスではなく、シェルによって直接実行されます。もちろん、現在のプロセスのプロセスのパーミッションをアップグレードすることはできません(実際には可能ですが、プログラミング時にコードに書き込まれてからコンパイルされ、私たちのシェルにはこの関数がありません、そうでなければそれほど危険ではありません)。さらに、sudoコマンドを設定したい場合は、visudoを使用してrootユーザで設定することができます。

Copyright © Windowsの知識 All Rights Reserved