Это было бы ошибкой или ограничением в bash
. Так или иначе, bash
закрывает дескриптор файла 63, который был концом чтения канала который echo
пишет в перед выполнением fgrep
.
zsh
или ksh93
не имейте того ограничения.
В этом самом случае Вам не нужны два процесса так или иначе:
ff() { fgrep -f "$1" < /etc/group; }
В общем случае можно или использовать другую оболочку или работать вокруг bash
ограничение с:
ff() { sh -c 'cat /etc/group | fgrep -f "$1"' sh "$1";}
Или:
ff() { cat /etc/group | fgrep -f /dev/fd/3;} 3<"$1"
Я подозреваю, что это связано с тем, что точка монтирования принадлежит пользователю root. Такое случалось со мной в среде Crouton Ubuntu Chromebook. Проверьте владельца и права доступа к каталогу монтирования.
Я нашел ответ.Это проблема аутентификации UDisks PolicyKit , вероятно, вызванная обновлением.
Подсказкой был вопрос о , требующей аутентификации для установки . Нам нужно только обратить это вспять.
Вам необходимо создать файл в /etc/polkit-1/localauthority/50-local.d/
под названием udisks.pkla
со следующим содержанием:
[Storage Permissions]
Identity=unix-user:*
Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.filesystem-mount-system
ResultAny=yes
ResultInactive=yes
ResultActive=yes
(Обратите внимание, / etc / polkit-1 / localauthority
и его дочерние элементы доступны только для root, поэтому использование sudo
может потребовать слепого доступа к файловой системе; или просто используйте sudo vim
или sudo bash
и перейдите туда внутри редактора или оболочки.)