非ルートの疑問符としてのLinuxローカルディレクトリの権限


8

さて、それは新しいものです。ストレージデバイスに障害があり、リモートストレージ(SAN、NAS)に障害があるようなケースを見たことがありますが、マウント許可によって引き起こされる同様の問題を見たことがあると思います。しかし、これが私のホームディレクトリと同じファイルシステムで起こっているのを見るのは初めてです...

私はそれについて非常に興味があります...どのような許可がここで蹴られていますか?確かにマウントされません(同じext4ファイルシステム上にあります)。SELinuxではなく、ACLではありません。じゃあ何???

このディレクトリがどのように作成されたか思い出せません。何らかのソフトウェアによって作成された可能性があります。

私にとって最も奇妙な部分は、ディレクトリがその親の情報を見ることが許可されていないことです(最後のコマンド)...

Linux Mint Sarah

user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace
user01@MyPC ~/somedirectory $ ls -ld ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27  2016 ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ sudo file ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:: directory
user01@MyPC ~/somedirectory $ sudo ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
viso 4
drwxr-xr-x 3 user01 user01 4096 Rgs 27  2016 workspace
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937216     Links: 3
Access: (0644/drw-r--r--)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
 Birth: -
user01@MyPC ~/somedirectory $ sudo getfacl ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
# file: deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
# owner: user01
# group: user01
user::rw-
group::r--
other::r--

user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937216     Links: 3
Access: (0644/drw-r--r--)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
 Birth: -
user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
stat: nepavyksta patikrinti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937217     Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:58:46.845727190 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2016-12-02 13:56:08.298109826 +0200
 Birth: -
user01@MyPC ~/somedirectory $ stat .
  File: '.'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3278479     Links: 23
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 09:46:22.102269130 +0300
Modify: 2017-09-20 17:33:04.564009275 +0300
Change: 2017-09-20 17:33:04.564009275 +0300
 Birth: -
user01@MyPC ~/somedirectory $ ll ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/.': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/..': Permission denied
viso 0
d????????? ? ? ? ?            ? ./
d????????? ? ? ? ?            ? ../
d????????? ? ? ? ?            ? workspace/
user01@MyPC ~/somedirectory $ 

属性:

user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace
user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace/directory2
user01@MyPC ~/somedirectory $ 

ファイルシステムはどのようにマウントされていますか?それはどのタイプのファイルシステムですか?
Raman Sailopal 2017

これはすべて同じext4ファイルシステム、つまり/ homeファイルシステム上にあります。それはポストで言及されています
netikras

2
テキストの画像を投稿しないでください。また、関連情報のみを表示してください。少なくとも、間違ったコマンドを削除することができます!これを示す方法をたどることは非常に困難です。
terdon

投稿を編集しますか?
netikras 2017

2
ファイルシステムが破損したり、iノードの読み取りが困難になったりする可能性はありますか?dmesgは何かを報告しますか?
ラマンサイロパル2017

回答:


17

ファイルについては、アクセス許可を確認するのに十分です。それらをlsするには、フォルダーを読み取って実行する必要があります。

chmod -R a+X ./deploy_dir

大文字の実行のみをフォルダー(および実行ビットが既に設定されているファイル)に設定します。


5
私はかつて同じような問題に半日を費やしました、それは見逃しがちです!
HoD

7

ファイルの権限を読み取るには、そのファイルを呼び出す必要がありstat(2)、それを含むディレクトリ(パス内のすべてのディレクトリ)に対する実行/アクセス権限が必要です。これは実際には、ファイル名を受け取る他のすべてのシステムコールと同じです。ただし、ディレクトリーの内容(ファイル名のリスト)を読み取るには、ディレクトリーに対する読み取りアクセスのみが必要です。

サンプルスニペットでは:

~/somedirectory $ ls -l .../bin/D\:
ls: negaliu pasiekti '.../bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace

lsを呼び出そうとしたstat(".../bin/D:/workspace")ところ、エラーが発生し、不満が出ました。一部のシステムでは、readdir/ getdents呼び出しから部分的な情報をファイル名とともに取得でき、を使用する必要はありませんstat。このworkspaceように、ディレクトリであることが示されています。

ここでは、どのユーザーにもXビットがないことがわかります。

~/somedirectory $ ls -ld .../bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27  2016 .../bin/D:

rootになると、完全なリストが表示されます。これは、rootになると許可ビットが完全に無視されるためです。


あなたはおそらく同じことをすることができますが、LC_ALL=C代わりにあなたの環境にエクスポートされましたか?
CVn 2017

1

ファイル属性を確認するには、ディレクトリを読み取る権限が必要です。これが不可能な場合は、疑問符が表示されます。

そのユーザーが情報を読み取れない理由については、ディレクトリの属性(.../D:/.上記)を確認してください。別の考えられる原因は、アクセスモードとは異なる理由でディレクトリが削除されているか、アクセスできない(ネットワークファイルシステム、古いハンドルなど)場合です。


質問を更新しました。属性はすべてD:\、その子、その親ant my〜/と同じです。ディレクトリ。
netikras 2017

そして、このディレクトリは数か月前から存在しています。それはどこにも消えていません。それは私がrootでない限り私は中に入ることができないとはっきり言っています:/それはフラッピングメディアやファイルハンドルではうまくいかないと思います
netikras

問題を引き起こす属性がある場合は、すべての親ディレクトリもチェックしてみてください(親からルートまでll失敗しuser01たかどうかを確認してください)。出力を投稿する必要はありません。結果を教えてください。
Ned64

1
ディレクトリをtarで圧縮し、それを別のサーバーにscpして、同じlsテストを行いました。結果は同じです
netikras

2
あなたはxフラグを立てないので、HoDは正しいです。乱雑な出力ではそれを見たことがありませんでした。straceそれをあなたに言っただろう。あまりにも。
Ned64 2017

0

今日、私は非常によく似た問題を抱えており、同様の症状がありました。許可と所有権のフィールドに疑問符があり、root / sudoを使用しても、これを変更することはできませんでした。次に、この特定のディレクトリが実際にはWindowsファイル共有のディレクトリへのマウントポイントであることを思い出しました。これは、数週間前に(Samba / CIFSがプロジェクトに適しているかどうかを確認するためのトライアルセッションで)セットアップしたもので、どうやらその間にアンマウントされました。mount.cifsコマンドを再発行し、ネットワークのWindows部分の資格情報を入力した後、「ls」はディレクトリの通常の権限と所有権情報を報告しました。症状はあなたの症状とまったく同じように見えたので、同様の状況にあるのではないかと思います。「D:」は非常にWindows風に見えます。


こんにちは、緑色のチェックマークは、質問をしたユーザーが回答を「承認済み」としてマークしたことを意味します。したがって、少なくともchmodを使用して権限変更できたと想定できます。このディレクトリは、ユーザーのホームディレクトリ(~)の下にあります。さらに、このような問題はリモートストレージのマウントの問題が原因である可能性があることをすでに認識しています。
sourcejedi

また、statコマンドはこれを確認します。Deviceフィールドとstat .sudo statのフィールドを比較します。/deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:ファイル: './deploy_dir/liferay-portal-6.1.1-ce -ga2 / tomcat-7.0.27 / bin / D: '`。同じです。この出力は、それらが同じファイルシステム上にあることの良い証拠です。
sourcejedi

ああ、そうです!ご
迷惑をおかけ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.