Разрешения локального каталога Linux как вопросительные знаки для не-root

8

Хорошо, это новый. Я видел подобные случаи с неисправными устройствами хранения, с ошибками в удаленном хранилище (SAN, NAS), я думаю, что я даже видел нечто подобное, вызванное разрешениями на монтирование. Но я впервые вижу, что это происходит в той же файловой системе, что и мой homedir ....

Мне очень любопытно по этому поводу ... Какие ограничения здесь? Определенно не монтирует (я нахожусь на той же файловой системе ext4), не SELinux, не ACL. Тогда что???

Я не помню, как этот каталог был создан. Вероятно, это было создано каким-то программным обеспечением.

Для меня самая странная часть в том, что каталогу даже не разрешено видеть информацию о его или его родителе (последняя команда) ...

Линукс Минт Сара

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 $ 
netikras
источник
Как была смонтирована файловая система? Что это за файловая система?
Раман Sailopal
Все это в одной файловой системе ext4 - моей / домашней файловой системе. Это упомянуто в посте
нетикрас
2
Пожалуйста, не размещайте изображения текста. И, пожалуйста, показывайте только актуальную информацию. По крайней мере, вы можете удалить неправильные команды! Это очень трудно следовать тому, как вы это показываете.
Тердон
мне редактировать пост?
Нетикрас
2
А как насчет возможности поврежденной файловой системы и трудности чтения inode? Dmesg сообщает что-нибудь?
Раман Sailopal

Ответы:

17

Для чтения файлов достаточно проверить права доступа. Вам нужно прочитать И выполнить на папки, чтобы ls их.

chmod -R a+X ./deploy_dir

Заглавная буква X для установки выполнения только для папок (и файлов, в которых уже установлен бит выполнения).

HoD
источник
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, биты прав доступа полностью игнорируются.

ilkkachu
источник
Не могли бы вы сделать то же самое, но LC_ALL=Cвместо этого экспортировать в вашу среду?
CVn
1

Чтобы просмотреть атрибуты файла, нужно иметь право читать каталог. Если это невозможно, будут показаны вопросительные знаки.

По той причине, что этот пользователь не может прочитать информацию, посмотрите на атрибуты каталога ( .../D:/.выше). Другая возможная причина может быть, если каталог был удален или недоступен (например, сетевая файловая система, устаревший дескриптор) по причине, отличной от режимов доступа.

Ned64
источник
Обновил вопрос. Атрибуты все те же, что и у D: \, его потомков, его родительских муравьев my ~ /. каталог.
Нетикрас
И этот каталог был там уже несколько месяцев. Это никуда не исчезает. Это ясно говорит о том, что, если я не root, я не могу зайти внутрь: / Это не будет работать с хлопающими носителями или файловыми дескрипторами, я думаю
netikras
Пожалуйста, попробуйте также проверить все родительские каталоги, если какой-либо из них имеет атрибуты, которые создают проблемы (посмотрите, llне происходит ли сбой, как user01на любом из родителей вплоть до root). Не нужно публиковать результаты, просто сообщите нам результат, пожалуйста.
Нед64
1
Я только что скопировал каталог, скопировал его на другой сервер и провел тот же lsтест. Результат идентичен
нетикрас
2
У вас нет xфлага, поэтому HoD прав. Я не видел этого в твоих беспорядочных выходных. straceсказал бы тебе это. тоже.
Нед64
0

Сегодня у меня была очень похожая проблема с похожими симптомами: вопросительные знаки в полях прав доступа и владения, и даже с root / sudo я не смог ничего изменить. Затем я наконец вспомнил, что этот конкретный каталог фактически являлся точкой подключения к каталогу на общем файловом ресурсе Windows, который я настроил несколько недель назад (в пробном сеансе, чтобы проверить, подходит ли Samba / CIFS для моего проекта) и, по-видимому, тем временем он был размонтирован. После повторного mount.cifsввода команды и ввода моих учетных данных для Windows-части нашей сети команда 'ls' сообщила о нормальных правах доступа и информации о владельце каталога. Поскольку симптомы выглядели точно так же, как у вас, мне интересно, находитесь ли вы в похожей ситуации, в том числе и потому, что «D:» выглядит очень по-Windows.

Davino
источник
Привет, зеленая галочка означает, что пользователь, задавший вопрос, пометил ответ как "принятый". Поэтому мы можем по крайней мере , предположить , что разрешения были в состоянии быть изменены с помощью CHMOD. Этот каталог находится под домашним каталогом пользователей ( ~). Кроме того, они уже знают, что подобные проблемы могут быть вызваны проблемами с удаленным хранилищем.
sourcejedi
Обратите внимание, что statкоманда подтверждает это. Сравните это Deviceполе со stat .статистикой sudo ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D \: файл: './deploy_dir/liferay-portal-6.1.1-ce -ga2 / кот-7.0.27 / бен / D: ''. Это то же самое. Этот вывод является хорошим доказательством того, что они находятся в одной файловой системе.
Sourcejedi
Ах, верно! Извините за шум ...
Давино,