Запись разрешений внутри сценария оболочки

Как проверить, что пользователь имеет право на запись в каталог, имя каталога передается как аргумент командной строки.

2 Solutions collect form web for “Запись разрешений внутри сценария оболочки”

Ответ от @SHW не является хорошей идеей, и в некоторых случаях он возвращает неверные результаты.

Пожалуйста, просто используйте команду test (или это [ alias):

 if [ -w "$dirname" ]; then echo "$dirname is writable" fi 

так как test команда с его -w тестом не будет проверять UNIX permission bits исторических UNIX permission bits а скорее имеет access(2) вызову access(2) для проверки возможности записи.

Преимущество использования access(2) заключается в том, что access также включает в себя влияния ACL , которые отсутствуют, если вы просто проверяете традиционные биты разрешения UNIX.

Простой скрипт, чтобы узнать разрешение на запись

 ls -ld directory | cut -c -10 > temp_perm owner_perm=`cut -c 3 temp_perm` group_perm=`cut -c 6 temp_perm` other_perm=`cut -c 9 temp_perm` [ "$owner_perm" -eq "w" ] && echo "Owner have write permission" [ "$group_perm" -eq "w" ] && echo "Group have write permission" [ "$other_perm" -eq "w" ] && echo "Other have write permission" 
  • Как создать окно GUI, которое показывает выполнение команд Linux?
  • запуск цикла for в сценарии оболочки
  • Сценарий Bash для обработки файла данных эксперимента
  • как копировать файлы, такие как Microsoft Robocopy, в debian?
  • Почему printf выводит больше аргументов, чем ожидалось?
  • Как дублировать каждую строку с помощью команд оболочки?
  • Что делает exec $ SHELL -l?
  • Получить все файлы, кроме файлов в массиве - Bash
  • Shell: выбор доступной программы
  • напечатать IP-адрес с именем интерфейса
  • Как перенаправить стандартный ввод инструкции `while` в файл?
  • Interesting Posts

    Невозможно перечислить большие каталоги с помощью pureftpd

    Как отобразить время сервера внутри Vim

    grep –exclude не исключает мой файл

    Более высокий уровень судо, убивающего PID

    Как добавить существующий обычный раздел в LVM в Linux?

    Как установить аппаратные зависимости в .deb-пакеты?

    использование для эха без аргументов в сценариях оболочки

    Плохая производительность редактирования текста из драйвера Radeon с открытым исходным кодом; должен ли я установить проприетарный драйвер или попытаться исправить это?

    Локальная область DNS vs DNS Virtualbox

    Как удалить текущую строку на экране GNU (эквивалент bash для Ctrl-K)?

    Является ли установка Kali на LiveDVD целесообразным?

    Удалите N-ю строку из каждой строки, соответствующей шаблону

    Как я могу задать ответы на подсказки в этом deb?

    Экран собирается спать, а затем не возвращается

    В цифрах в / proc / <pid> / io включены пейджинг и обмен I / O?

    Linux и Unix - лучшая ОС в мире.