получение владельца папки с командой if

Я хочу, чтобы люди могли случайно удалять критические файлы системы в моем сценарии, кто-нибудь знает, как использовать инструкцию, чтобы узнать, есть ли владелец папки?

  • Объединение двух файлов и уникальное в новом файле
  • grepping переменная и добавление 1 к ней
  • Анализ паролей Apache для исключения диапазонов IP-адресов
  • Как перебирать переменную, пропуская одно из значений?
  • Простой сценарий оболочки с арифметической проблемой ... ** дает мне проблемы
  • Разделить файлы с помощью awk и сгенерировать результаты в другом каталоге
  • Получить полный каталог $ file
  • Распаковать в папку
  • 2 Solutions collect form web for “получение владельца папки с командой if”

    find . -prune -user "$(id -u)" 

    Будет печать . если текущий каталог принадлежит вам.

    Вы можете:

     find . -prune -user "$(id -u)" -exec some command \; 

    Или:

     if [ -n "$(find . -prune -user "$(id -u)")" ]; then some command fi 

    Чтобы выполнить some command только если текущий каталог принадлежит вам.

    Чтобы получить идентификатор владельца текущего каталога, POSIXly, вы можете выполнить:

     ownerid=$(LC_ALL=C ls -lnd . | awk '{print $3}') 

    Или, с установкой stat zsh :

     stat -H stat . && ownerid=$stat[uid] 

    Или с GNU find :

     ownerid=$(find . -prune -printf %U) 

    Или с GNU stat :

     ownerid=$(stat -c %u .) 

    Или, со stat BSD:

     ownerid=$(stat -f %u .) 

    Как только у вас есть этот $ownerid , вы можете сравнить его с эффективным идентификатором пользователя процесса вашей оболочки, который вы можете получить с помощью "$(id -u)" . Как правило, лучше работать с идентификаторами пользователей, чем имена пользователей, поскольку их количество может быть более одного имени пользователя на идентификатор пользователя в базе данных учетной записи (и это избавляет от необходимости запрашивать эту пользовательскую базу данных).

    Чего ждать? Чтобы люди не могли удалять критические системные файлы, не позволяйте им входить в систему под учетной записью root и не создавать свой скрипт setuid.

    Если вы пытаетесь помочь людям управлять файлами, которые им не принадлежат, узнайте о разрешениях групп и используйте подходящую настройку. (Я не могу сказать больше, потому что не знаю, что вы делаете.)

    Если права root действительно необходимы (чтобы обычные пользователи могли управлять системными журналами, например), используйте «белый список»: ваш скрипт должен управлять только файлами, которые соответствуют определенным критериям. В противном случае, кто знает, какой важный ресурс вы забудете защитить?

    Interesting Posts

    Bash завершает дополнительное пространство при добавлении каталога файлов

    Как определить, как монтируются каталоги / файловые системы?

    Использование BASH против ASH для Synology

    Есть ли альтернатива / dev / pts на Mac OSX?

    Замените длинную строку командой sed: слишком длинная ошибка списка аргументов

    Zip не сжимает файлы при застегивании

    Очередь дисциплины для каждого интерфейса, что происходит с интерфейсами с использованием того же устройства?

    Удалите все файлы с префиксом, кроме одного из самых больших

    Как я могу проверить наличие цвета в моей Linux-коробке?

    Solaris tar: «Не удалось создать символическую ссылку: не каталог»

    Новый массив RAID не будет автоматически собираться, что приведет к проблемам с загрузкой

    Невозможно смонтировать файловую систему под luks. Устройство не существует

    Как пропустить первый аргумент в скрипте

    ActiveMQ не запускается на Ubuntu 14.04

    Как исправить unix, чтобы я мог использовать клавиши со стрелками в терминале?

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