web-dev-qa-db-ja.com

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

ls -laを実行すると、多くの属性が出力されます。このようなもの:

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

恥ずかしいことに、私は各属性の正確な意味がわからないと告白しなければなりません。たとえば、文字列-rwSrwSr--内のbig Sの意味は何ですか?次の1は何ですか?私は大体他の人を知っています。

70
Eonil

lsコマンドのドキュメントはこれらの質問に答えます。ほとんどのUNIXバリアントでは、lsのマニュアルページ(man lsまたはオンライン)を検索してください。 Linuxでは、Infoドキュメント(info ls)または online を検索します。

文字sは、 setuid (または列に応じてsetgid)ビットが設定されていることを示します。実行可能ファイルがsetuidされると、プログラムを呼び出したユーザーではなく、実行可能ファイルを所有するユーザーとして実行されます。文字sは、文字xを置き換えます。ファイルがsetuidされていても実行可能ではない場合があります。これはSで示されます。大文字のSは、ファイルが実行可能でない場合、setuidビットが(ほとんどの場合)役に立たないため、この設定がおそらく間違っていることを警告します。

directoryにsetuid(またはsetgid)権限がある場合、そのディレクトリに作成されたすべてのファイルは、所有者(またはグループ)のディレクトリ。

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

による info coreutils ls(正確にはあなたの持っているものとは違うかもしれません):

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

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

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

16
Mat

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

ただし、フォルダーはグループによって実行可能ではないため、大文字のSで示されます。これは通常、ディレクトリが作成されており、ディレクトリがsetgidとなる場合です。

うーん。実際に上記のように簡単な英語のように聞こえたかどうかはわかりません。

6
Jag

実行可能ファイルがないためです

s-> 'x'は有効ですS-> 'x'は無効です。

以下の例を参照

$ ls -l

total 0

-rwsrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$ chmod u-x ca

$ ls -l

total 0

-rwSrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$
0
praveen kumar