レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

ls -l コマンドで@が表示されたら念のため ls-le を使おう

   

MacOSでターミナルコマンドなどを使うようになり、
ふとした時に目に付くことになる「ls -l」コマンド結果に表示される「@」表示。
Finderからファイルの編集や保存した過去のあるファイルには、
大半はこの「@」表示がされているはずです。
ただ、この「@」の後ろには、実はより重要な「+」マークが隠れています。

 

ls -l コマンドで@が表示されたら念のため ls-le を使おう

なんでこんなことを書こうと思ったかと言うと、
ズルをして「httpd.conf」をGUIエディタで編集しようと、
Finderからアクセス権の追加(MacOSX)を行っていました。

さらに、エディタでファイルを編集して保存します。

そのファイルに対してターミナルから「ls -l」を実行しパーミッションを確認します。

using_ls-le_st01

「@」が表示されたファイル・@は+を隠す

 

「@」が表示されていますので、拡張メタデータが付加されたファイルだと分かります。

拡張メタデータの「@」の情報などは別に気にしなくていいや。
ダウンロードしたファイルにも多くついているから・・・まいっか。

その程度です。

※以下はApacheのソースファイルをダウンロードしたもの「.tar.gz」と、
それを解凍したファイルの例です。
大半に「@」が表示されています。慣れっこになってしまいます。

grant-of-auth_st24

Webダウンロードファイルの実態・Macアクセス権設定と拡張情報

※ちなみにこの状態を回避するには、
解凍前に拡張メタ情報を削除してから解凍します。

 

付加されている拡張メタデータですから、
どんなメタ情報が格納されているのか、名前を確認することで推測はできます。

xattr /private/etc/apache2/httpd.conf

実行した結果が以下になります。
以下のような情報が表示されます。

  • com.apple.FinderInfo
  • com.apple.ResourceFork
  • com.apple.TextEncoding
using_ls-le_st02

拡張メタの確認・@は+を隠す

 

プロモーション

Google or AdMax Promotion (srvpos)

「@」に隠れている「+」の存在

「@」が拡張メタデータという事を一度知ってしまえば、
それから後は、またか。で、特に気にすることもなくなるでしょう。

今回は「httpd.conf」ですので他人とやり取りすることは皆無かもしれません。

でも、このファイルをそのまま誰かにメールで送ったりすると、
ちょっと微妙な事になります。

 

「ls -le」でアクセス権(パーミッション)の確認

普段から「ls -l」を利用していると、
最初の画像ような表示になりますが、

同じファイルに対して「ls -le」と「e」を付けて実行します。

すると、何やら3行が表示されているのが分かります。
「e」を付けたことで、追加の情報が表示されています。

この情報が「拡張ACL」の情報です。

using_ls-le_st03

「-le」で再確認・@は+を隠す

 

本来、拡張ACLが付加されたファイルには「+」が付加されます。

しかし、今は「@」が表示されています。

 

さて、このファイルを誰かに渡し、
受け取った人が悪意はなくとも「ls -le」を実行した場合どうなるでしょうか?

受け取ったファイルが開けないから・・・と、
チェックする場合もあるかもしれません。

ls- le  /private/etc/apache2/httpd.conf

0: user:<userneme> allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
1: group:admin allow read,readattr,readextattr,readsecurity
2: user:macports allow read,readattr,readextattr,readsecurity

※<userneme>:は伏字。

 

少なくとも、送信元の人のMacOSXでは、
ユーザ名で「<userneme>」と「macports」アカウントが存在し、
グループに「admin」が存在していることが分かります。

また、後ろには与えられている権限が並んでいるように見えます。

※Finderから「アクセス権の追加」をしなければ「拡張ACL」は付加されません。

ユーザー名だけでは、パスワードは推測しなければログインはできません。

ですが、このユーザー名が恥ずかしい名前だったり、
バカっぽい名前にしていたら、ちょっと嫌な感じがしないでしょうか。。。

 

拡張メタデータを削除してみる

では拡張メタデータだけを削除してみます。
ここでは「@」を消す手順としています。

一括で削除しますので xattr -c (ファイルパス) で削除します。
次に「ls -le」を実行してみます。

ls- le  /private/etc/apache2/httpd.conf

拡張メタデータが消え「+」表示になりました。

using_ls-le_st04

拡張ACLの「+」表示・@は+を隠す

 

「+」であれば「ls- l」だったとしても、ん?と気づくので、
「何か拡張ACLが付加されている」と気づけます。

恐らく「ls- le」で再チェックするきっかけになります。

using_ls-le_st05

拡張メタ削除後は「+」・@は+を隠す

 

「+」表示で「ls- le」で確認。

ではなく、

「@」表示で「ls- le」で確認。

としておいた方が、より安全かと思います。

 

「+」は「@」で上書きされる

です。

拡張メタデータを保持するデータは「+」が表示されません。

そして「@」が表示されるデータは多くあります。

しかし、本当にチェックする必要があるのは「+」です。

ls- le を利用していれば「@」表示であっても、
拡張ACLデータが付加されている場合は、その情報が併せて表示されます。

どうして「ls- le 」というオプションがあるのか。

きっと、この上書き状態の「@」で、
ACL情報が上書きされ分からなくなるから、それが見れるオプションが必要だった。

そんな気がしませんか?

 

参考

ls(1) Mac OS X Manual Page|developer.apple.com

xattr(1) Mac OS X Manual Page|developer.apple.com


AdMax Promotion

 - MacOS

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。


  関連記事

SafariでApple Developerサイトが開けない?切り捨てられた過去遺産。

初代MacPro。個人的には一番格好いいデザインと存在感のMacだと思っています …