「ls -al」の結果、「+ 3」はどういう意味ですか?


9

誤って、マウントされたボリュームに移動して入力するとll(のエイリアスls -laF

:/media/username/DATA$ ll
total 153
drwxrwxrwx  1 username username  8192 Sep  1 20:32 ./
drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../
drwxrwxrwx  1 username username 12288 Jul 26 22:29 documents/
drwxrwxrwx  1 username username 16384 Sep  2 02:01 downloads/

私はこの興味深い部分を持っています: drwxr-x---+ 3

私はその部分を理解しdrwxr-x---ていますが、他の部分+ 3は何を意味していますか?

PS:私はUbuntu 16.04 x86を使用しています


1
権限文字列と所有者名の間の数に興味があるということですか?
バイトコマンダー

4
部分のためにls -l出力を説明、参照askubuntu.com/q/710905askubuntu.com/q/517229またはunix.stackexchange.com/q/103114してください。
バイトコマンダー

回答:


14

+通常の許可ビットの後は、ファイル/ディレクトリに対して特別な許可が有効であることを示します。特別な権限はPOSIX ACL(アクセス制御リスト)です。

を使用してACLルールを設定しsetfacl、すでに設定されているルールをで表示できますgetfacl

例:

% ls -l foo.sh
-rwxrwxr-x 1 foobar foobar 206 Aug 28 02:08 foo.sh

% setfacl -m u:spamegg:x foo.sh

% ls -l foo.sh                
-rwxrwxr-x+ 1 foobar foobar 206 Aug 28 02:08 foo.sh

% getfacl foo.sh
# file: foo.sh
# owner: foobar
# group: foobar
user::rwx
user:spamegg:--x
group::rwx
mask::rwx
other::r-x

チェックman getfaclman setfaclて、より多くのアイデアを得ます。

余談です.+、の代わりが表示されている場合、それはSELINUXコンテキストに対応しています。


そして、3+はファイルが持っているハードリンクの数を示します。ハードリンクはファイルの名前(正確にはファイルのiノード)であるため、ハードリンクの数はファイルの名前の数を示します。

あなたの場合、エントリは次のとおりです。

drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../

これは、現在のディレクトリ(/media/username/DATA)の親ディレクトリ用なので../media/usernameディレクトリを指します。

Linuxでは、すべてのディレクトリに少なくとも2つのハードリンクがあり、1つは.(現在のディレクトリ、それ自体へのリンク)用であり、もう1つは親ディレクトリのエントリ(名前とiノードのマッピング)です。これはUnixから継承されました。

のハードリンク数は3です/media/username。つまり、/media/usernameサブディレクトリが1つあることを意味します(デフォルトでは2に加えて..、サブディレクトリのエントリに1 )。サブディレクトリが2つある場合、両方のサブディレクトリ..が親にマッピングされるため、ハードリンク数は4になります。


また確認してくださいman ls


1
これはディレクトリなので、リンク数はサブディレクトリの数に2を加えたものです。
Kevin

@Kevin詳細な説明を追加。
heemayl

7

+権限文字列の最後にあるは、ACL(アクセス制御リスト)権限を示します。それが許可する権限と、どのユーザーに

getfacl ../

というより

getfacl /media/$USER

私の場合:

$ getfacl /media/zanna
getfacl: Removing leading '/' from absolute path names
# file: media/zanna
# owner: root
# group: root
user::rwx
user:zanna:r-x
group::---
mask::r-x
other::---

これは、所有者とグループ、次に名前のない「ユーザー」(所有者)グループと世界(その他)のアクセス許可と、ユーザーzannaの追加エントリを示しています。「マスク」は、グループおよび指定されたユーザーの有効な権限を制限します。

ACLは、単一のユーザーまたはグループに権限を設定できるようにする従来のLinux権限システムの拡張機能であり、より細かく制御できます。rootがこのマウントポイントを所有するセキュリティ上の理由とACL権限の使用について詳しくは/mediaこの投稿をご覧ください。

はと3は無関係+です。ファイルへのハードリンクの数を示します。


2
+ただし、これは、従来の権限設定に加えて、このエントリに対してACLがアクティブであることを示すだけです。ただし、これはを説明するものではありません3
バイトコマンダー

2
@ByteCommanderええ、それは私に起こりませんでした、彼らは3について尋ねていました、ありがとう!
Zanna
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.