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

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

  • У меня есть команда, не найденная ошибка в моем скрипте оболочки, когда я запускаю код
  • ip изменяется от динамического к статическому и обратно
  • помощь для создания сценария оболочки для печати буднего дня и выходных
  • загружать файлы в gdrive с помощью инструмента, но в скрипте
  • сохранение одного и того же имени файла
  • Портативный способ настройки исполняемого файла, вызванного скриптом
  • Печатать строку несколько раз
  • сценарий bash, который печатает использование процессора, дисковое пространство, использование ram
  • 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" 
    Linux и Unix - лучшая ОС в мире.