Вы всегда можете искать через файл в другом Способы ...
seq 10000000 >f
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
wc -l f; tail f
... Это странно выглядящая последовательность печати:
10000000
10000001
10000002
10000003
10000004
10000005 f
9999996
9999997
9999998
9999999
10000000
new line!
new line!
new line!
new line!
new line!
, но это вроде глупо.
Более полезный пример может выглядеть следующим образом:
apnd() if shift
then wc -l >&2
printf "$@"
fi <>"$1" >&0
Вы можете назвать это как:
apnd /path/to/file \
"${printf_fmt_string}" \
arbitrary list of strings
, и вы вынудите с количеством файла
строк, написанные на STDERR
Незадолго до того, как произойдет действие Append.
Переключитесь на пользователя, которого хотите использовать для доступа. Сделайте это, прежде чем делать что-либо еще.
Используйте команду [116847]id[116848] для проверки вашего текущего UID и групп. Используйте [116849]id имя пользователя[116850] для проверки конфигурации на диске. Выйдите из системы и снова войдите в систему, если они отличаются, и проверьте еще раз.
Используйте 'ls -l' для проверки целевого каталога. Не забудьте проверить символ сразу после прав доступа. Может быть точка, означающая selinux-контекст, или знак плюс, означающий, что установлены ACL linux.
Используйте 'cd' для входа в каталог.
Выполните необходимые действия с обычными файлами. Используйте [116851]touch[116852] для проверки доступа на запись, [116853]cat[116854] для проверки доступа на чтение.
Проверьте, работает ли все так, как ожидается на уровне приложения (например, используйте браузер для доступа к URL, который должен привести к соответствующему действию, используйте любимый инструмент редактирования, который ранее не работал и т.д.)
Добавьте любую из вышеперечисленных проверок на уровень приложения.
Если какое-либо из действий дает сбой, и вы понятия не имеете почему, проверьте журналы на наличие предупреждений selinux или подобных им. Вы также можете попробовать подготовить [116640]strace.log -o strace.log[116641] к командной строке, а затем проверить strace.log на наличие сообщений [116642]permission denied[116643]. Но это все черная магия, пока вы не узнаете точную причину разрешения [116644] denied[116645].[116310].