chowning каждый домашний пользователь себе рекурсивно

Хорошо, поэтому у меня около 100 каталогов в моей домашней папке, каждая из которых принадлежит самому домашнему пользователю. Иногда мне приходится вручную заменять некоторые файлы как root, поэтому разрешения нарушаются, а некоторые файлы больше не принадлежат этому пользователю. Чтобы исправить это, мне всегда нужно использовать следующую команду в домашнем каталоге:

chown -R user:user user/ 

Теперь я смотрю на некоторые ярлыки, потому что я не могу сделать это для всех 100 пользователей.

Мне интересно, что будет сделано:

 chown -R *:* * 

  • Как я должен rsync-файлы в / var / www, если я хочу, чтобы они принадлежали www-data?
  • Как предоставить права пользователя на изменение прав собственности на файлы / каталоги в каталоге
  • NFS экспортирует all_squash, anonuid, anongid, сопоставляя все клиенты клиентов с владельцем на сервере (работающем), все еще нуждающимся в возможностях для чтения на сервере?
  • Все файлы вне / home / userabc принадлежат root?
  • Использование chown $ USER: $ USER внутри сценария bash
  • chown / dev по ошибке
  • Если chown может изменять группы, почему был создан chgrp?
  • Я хочу изменить разрешения для всех папок / файлов, исключая некоторые из них
  • 2 Solutions collect form web for “chowning каждый домашний пользователь себе рекурсивно”

    Полный ответ был бы

    1) Открыть файл, например vi chown_homedirs

    2) Вставьте следующий код

     #!/bin/bash cd /home && for h in * do chown -R "$h:$h" "$h"; done 

    3) Сохраните файл

    4) chmod +x chown_homedirs

    5) запустить ./chown_homedirs

    ПРИМЕЧАНИЕ. Если в каталогах пользователей есть пробелы, вам всегда нужно указывать расширение. Если вы не укажете, что расширение может потерпеть неудачу и привести вас к неожиданным результатам.

    Вы можете использовать stat, чтобы получить права пользователя и группы на файл, а затем использовать их для обновления файлов, что-то вроде

     #!/bin/bash cd /home for file in * do user=$(stat -c %U "$file") group=$(stat -c %G "$file") echo chown -R "$user":"$group" "$file" done 

    Это касается ситуации, когда каталог owner / group / не является одинаковым. Очевидно, удалите эхо, если вы проверите тесты для вас.

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