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


67

Iの場合ls -la、多くの属性が出力されます。このようなもの:

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

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


19
Eonil:質問する必要があるのは恥ずかしいことではありません。結局のところ、それがこのサイトの目的です。そしてRTFMを言う人に関しては、私たちの多くはそうしますが、読みにくいプログラマーが書いたドキュメント(そして私はプログラマー)のページを歩いた後でも、最も簡単な答えを見つけることができません。場合によっては、manページがインストールされていないシステムを使用しています。これらすべての理由、さらに多くの理由で、このようなサイトは天の恵みです。同じ質問をしてくれてありがとう。
アラン

1
すばらしい質問-具体例とともに非常に具体的。
オレ

回答:


49

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

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

ときにディレクトリが(またはsetgid)のアクセス権setuidをしており、そのディレクトリ内に作成されたファイルは、ディレクトリの所有者(またはグループ)に一致するユーザー(またはグループ)によって所有されます。

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


5
OS Xがディレクトリに適用された場合、それは何を意味しますか?たとえば、次を$ ls /Users返しますdrws--S---+ 12 jdoe staff 408 Jul 9 2013 jdoe

4
@jwwそのディレクトリで作成されたファイルは、そのディレクトリを所有するグループに属しますが、とにかくそれはOSXのデフォルトです。参照en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directoriesunix.stackexchange.com/questions/12842/...
「邪悪であることを停止SO-」ジルを

@Gilles、ファイルが「実行可能」ではないと言ったときは?それは実行可能な特権を持っていないか、実行可能なファイルタイプではないということですか?
-ransh

@ransh実行(x)許可を意味します。
ジル 'SO-悪であるのをやめる'

以下の
@Jag

16

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

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

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

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


2
基本的にこれはあなたが得るものですchmod g-x,g+s dir
サンマイ

6

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

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

うーん、それが実際に上記の平易な英語のように聞こえたかどうかはわかりません。


1
この回答は、既存の回答よりも多くまたは異なる情報を提供しません。
jayhendren 16

1
@jayhendrenはい、そうです。ディレクトリについて説明します。それ以外の答えはありません。(Gillesはおそらく彼のコメントを彼の答えに組み込むべきです。)
Sparhawk

0

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

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

$

これが既存の回答に追加するものを説明できますか?
スティーブンキット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.