Разрешения локального каталога 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 $ 

Как была смонтирована файловая система? Что это за файловая система?
— Раман Sailopal

Все это в одной файловой системе ext4 - моей / домашней файловой системе. Это упомянуто в посте
— нетикрас

2
Пожалуйста, не размещайте изображения текста. И, пожалуйста, показывайте только актуальную информацию. По крайней мере, вы можете удалить неправильные команды! Это очень трудно следовать тому, как вы это показываете.
— Тердон

мне редактировать пост?
— Нетикрас

2
А как насчет возможности поврежденной файловой системы и трудности чтения inode? Dmesg сообщает что-нибудь?
— Раман Sailopal

Ответы:


17

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

chmod -R a+X ./deploy_dir

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


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

1

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

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


Обновил вопрос. Атрибуты все те же, что и у 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.


Привет, зеленая галочка означает, что пользователь, задавший вопрос, пометил ответ как "принятый". Поэтому мы можем по крайней мере , предположить , что разрешения были в состоянии быть изменены с помощью 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

Ах, верно! Извините за шум ...
— Давино,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.