Разрешения локального каталога Linux в виде вопросительных знаков для пользователей без полномочий root

Вы можете поставить ловушку DEBUG и затем проверить переменную BASH_COMMAND. Добавьте это в начало сценария:

log() {
    case "$1" in
        python\ *)
            ;&
        pkill\ *)
            printf "%s\n" "$*"
            ;;
    esac
}

trap 'log "$BASH_COMMAND"' DEBUG

Код читабелен; он просто проверяет, начинается ли первый аргумент с python или pkill, и печатает его, если это так. А ловушка использует BASH_COMMAND (который содержит команду, которая будет выполнена) в качестве первого аргумента.

$ bash foo.sh dev
python ascript.py
python: can't open file 'ascript.py': [Errno 2] No such file or directory
$ bash foo.sh prod
It doesn't look like you're running me as root. This probably won't work. Press any key to continue.

pkill -f nginx
foo.sh: line 32: nginx: command not found

Обратите внимание, что хотя в case используются глобы, вы можете с тем же успехом сделать:

if [[ $1 =~ python|nginx ]]
then
    printf "%s" "$*"
fi

И использовать регулярные выражения.

9
19.06.2020, 00:02
2 ответа

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

1
20.08.2021, 11:32

Мое решение:

$ sudo mount -v | grep mount_point

Это показывает смонтированные файловые системы точки монтирования _и показывает, что моя точка монтирования все еще смонтирована, хотя ничего не отображается.

$ umount -f mount_point

Права доступа и права доступа к каталогу теперь отображаются правильно.

0
09.09.2021, 13:56

Теги

Похожие вопросы