GNU/Linux >> Linux の 問題 >  >> Linux

-perm/6000と-perm/u +sの違いを見つけてください。

「ワンライナー」を使用してsetuid実行可能ファイルを見つけようとしています。

私が最初に試した行は次のとおりです。

find / -perm /u+s -type f

次に、似ているが結果が異なる行を見つけました:

find / -perm /6000 -type f

これらは私が知る限り同じように見えますが、最初の結果は2番目の結果ほど多くの結果を示していません(ほとんどの場合、奇妙なグループを持つものが欠落しています)。なぜ、何が違うのですか?

承認された回答:

ほとんどの人は気づいていませんが、Unixのアクセス許可は、実際にはユーザー、グループ、その他(rwx)だけではありません。これらの3つのトライアドは、ユーザー、グループ、およびその他のユーザーがファイルやディレクトリにアクセスできるようにする一般的なアクセス許可です。ただし、ユーザービットの前にあるビットのグループもあります。これらのビットは「特別モード」と呼ばれます。

chmodなどのツールを扱うときに、明示的に設定する必要がないというのは、より簡単な表記法です。 。

$ chmod 644

実際には次と同等です:

$ chmod 0644

ビットのリストは次のとおりです:

ウィキペディアの記事の抜粋:chmod

Flag                Octal value     Purpose
----                -----------     -------
S_ISUID             04000           Set user ID on execution
S_ISGID             02000           Set group ID on execution
S_ISVTX             01000           Sticky bit
S_IRUSR, S_IREAD    00400           Read by owner
S_IWUSR, S_IWRITE   00200           Write by owner
S_IXUSR, S_IEXEC    00100           Execute/search by owner
S_IRGRP             00040           Read by group
S_IWGRP             00020           Write by group
S_IXGRP             00010           Execute/search by group
S_IROTH             00004           Read by others
S_IWOTH             00002           Write by others
S_IXOTH             00001           Execute/search by others

あなたの質問

したがって、最初のコマンドでは、u+sを探しています 、ビット04000になります 。数値表記を使用する場合、ビット04000を要求します AND 02000 。これにより、ユーザーまたはグループのsetuidビットが設定されたファイルが得られます。

参考資料

Unixでの権限をよりよく理解したい人は、chmodに関するウィキペディアのページを読むことを強くお勧めします。 。それは非常に簡単に分解され、忘れたときの優れた参考資料です。

参考資料

  • chmodチュートリアル

Linux
  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. /optと/usr/ localの違いは?

  3. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

  1. プロセスが実行されているフォルダーを見つける方法は?

  2. unix:///var/run/supervisor.sock そのようなファイルはありません

  3. /bin と /usr/bin の違い

  1. Linux:/dev/console 、 /dev/tty 、 /dev/tty0 の違い

  2. /etc/hosts と /etc/resolv.conf の違い

  3. /dev/sda と /dev/sda1 の違い