ls -laの「s」と「S」の違いは何ですか?

ls -laの「s」と「S」の違いは何ですか?

Iを使用すると、ls -la多くの属性が印刷されます。このような:

-rwSrwSr-- 1 www-data www-data   45 2012-01-04 05:17 README

恥ずかしいことに、各属性が何を意味するのか正確にはわからないことを認めなければなりません。たとえば、S文字列のbigとはどういう意味ですか-rwSrwSr--?以下は何ですか1?私は他の人について全体的に理解しています。

答え1

コマンド文書はlsこれらの質問に答えます。ほとんどのUnixバリアントでは、lsマニュアルページ(man lsまたはオンライン)を見つけてください。 Linuxでは、情報文書(info ls)を見つけるか、オンライン

手紙には次の内容がs記載されています。設定値(または列に応じてsetgid)ビットがセットされます。実行可能ファイルにsetuidセットがある場合は、実行可能ファイルを所有するユーザー(プログラムを呼び出したユーザーではない)として実行されます。この文字はsこの文字を置き換えますx。ファイルはsetuidですが、実行可能ではない可能性があります。これはで表示されますS。ここで大文字は、Sファイルが実行可能でなければ setuid ビットが (ほぼ常に) 役に立たないため、この設定が間違っている可能性があることを示します。

いつ目次setuid(またはsetgid)権限を使用すると、ディレクトリに作成されたすべてのファイルは、ディレクトリの所有者(またはグループ)と一致するユーザー(またはグループ)によって所有されます。

許可の後の番号はハードリンク計算。ハードリンクはファイルのパス(つまり名前)です。ほとんどのファイルには単一のパスがありますが、lnこのコマンドを使用するとより多くのファイルを作成できます。 (これはシンボリックリンクとは異なります。シンボリックリンクは「ああ、実際にはこのファイルは別の場所にあります。<location>に移動します」と言います。)ディレクトリにはN + 2つのハードリンクがあります。ここで、Nはサブディレクトリの数です。親ディレクトリ、独自のディレクトリ(エントリを介して.)、および各サブディレクトリ(エントリを介して..)からアクセスできます。

答え2

によると info coreutils ls(これはまさにあなたが持っているものではないかもしれません):


setuid または setgid ビットと対応する実行可能ビットが設定されている場合は `s' です。


setuidまたはsetgidビットが設定されているが対応する実行可能ビットが設定されていない場合は「S」です。

権限部分の後の数字はハードリンクの数です。

答え3

(希望的にはより簡単に)という用語はこれを意味します。ディレクトリはsetgidです。ここで作成されたすべてのファイルは、そのフォルダを所有するグループが所有します。

ただし、このグループではそのフォルダを実行できないため、大文字のSとして表示されます。これは通常、setgidで終わるディレクトリを作成したときに発生します。

うーん。

答え4

また考慮マスク、シェル設定は、フルアクセスを取得するためにファイルを作成するときにこの値を減算します(ファイルの場合は666、ディレクトリの場合は777)。

標準行動設定値/設定親ディレクトリから子ディレクトリに伝播されます。

ディレクトリに対する「S」権限は、次のコマンドシーケンス(check umask 077、...)を使用して取得できます。

~/test$ id
uid=1004(dsuser) gid=100(users) 
~/test$ 
~/test$ umask
0002
~/test$ 
~/test$ mkdir aaa
~/test$ ls -l
total 4
drwxrwxr-x 2 dsuser users 4096 Nov  5 14:57 aaa
~/test$ chmod g+s aaa
~/test$ ls -l
total 4
drwxrwsr-x 2 dsuser users 4096 Nov  5 14:57 aaa
~/test$ cd aaa
~/test/aaa$ 
~/test/aaa$ mkdir bbb
~/test/aaa$ ls -l
total 4
drwxrwsr-x 2 dsuser users 4096 Nov  5 14:58 bbb
~/test/aaa$ 


~/test/aaa$ umask 077
~/test/aaa$ 
~/test/aaa$ mkdir ccc
~/test/aaa$

 
~/test/aaa$ ls -l

total 8
drwxrwsr-x 2 dsuser users 4096 Nov  5 14:58 bbb
drwx--S--- 2 dsuser users 4096 Nov  5 14:59 ccc




関連情報