Как изменить владельца (права пользователя) на директорию в Linux?

Ответ

Чтобы изменить владельца (owner) и/или группу (group) директории в Linux, используется команда chown (change owner).

Базовый синтаксис:

chown [опции] новый_владелец[:новая_группа] путь_к_директории

Ключевые опции:

  • -R – рекурсивное изменение для всех файлов и поддиректорий внутри.
  • --from=текущий_владелец:текущая_группа – изменить права только у объектов с определёнными текущими владельцем и группой.

Практические примеры:

  1. Сменить владельца директории на пользователя appuser:
    sudo chown appuser /var/www/myapp
  2. Сменить владельца и группу одновременно:
    sudo chown appuser:appgroup /var/www/myapp
  3. Рекурсивно сменить владельца для всей директории и её содержимого:
    sudo chown -R appuser:appgroup /var/www/myapp
  4. Сменить только группу (используя chgrp или chown):
    sudo chown :appgroup /var/www/myapp
    # Или
    sudo chgrp appgroup /var/www/myapp

Важные замечания:

  • Для смены владельца обычно требуются права суперпользователя (sudo).
  • Перед изменением проверьте текущие права с помощью ls -ld:
    ls -ld /var/www/myapp
    # drwxr-xr-x 5 root root 4096 ... /var/www/myapp
  • Некорректное изменение владельца системных директорий может нарушить работу ОС или приложений.

Ответ 18+ 🔞

Э, слушай, а вот эта ваша команда chown — это вообще пиздец как удобно, когда нужно кому-то права на папку отдать. Представь, ты поставил какой-нибудь сервис, а он, манда с ушами, работать не хочет, потому что файлы принадлежат руту, а запускается от appuser. Вот тут-то она и пригодится.

Как этим пользоваться, блядь:

chown [опции] новый_владелец[:новая_группа] путь_к_директории

Что там за опции полезные:

  • -R – это вообще волшебная штука. Она рекурсивно всё проебёт внутри папки, все подпапки и файлы. Без неё поменяется только сама директория, а внутри всё останется как было — доверия ебать ноль к такому результату.
  • --from=... – хитрая жопа. Меняет права только у того, что сейчас принадлежит указанному владельцу. Удобно, если в куче файлов накосячили и нужно поправить только свои косяки.

Ну и примеры, чтобы совсем понятно было:

  1. Просто отдать папку myapp юзеру appuser:

    sudo chown appuser /var/www/myapp

    Без sudo тут, скорее всего, не выйдет, если ты не рут. Система тебе сразу: «чё ты себе позволяешь, полупидор?».

  2. Владельца и группу поменять разом — красота:

    sudo chown appuser:appgroup /var/www/myapp

    Двоеточие — это магия. Слева владелец, справа группа.

  3. А вот это уже серьёзно — залезть внутрь и всё переделать:

    sudo chown -R appuser:appgroup /var/www/myapp

    Это -R — овердохуища важная опция. Запустишь без неё — будешь потом чесать репу, почему скрипты внутри папки не работают.

  4. Если нужно поменять только группу (владелец пусть остаётся):

    sudo chown :appgroup /var/www/myapp
    # Или вот так, по-старинке
    sudo chgrp appgroup /var/www/myapp

    Оба варианта рабочие, выбирай какой больше нравится.

А теперь, чувак, самое главное — не наебнись:

  • sudo — это почти всегда обязательно. Без него система тебя пошлёт нахуй, если ты не в корневой папке.
  • Сначала посмотри, что там вообще творится. Не тычь команды вслепую.
    ls -ld /var/www/myapp
    # drwxr-xr-x 5 root root 4096 ... /var/www/myapp

    Видишь root root? Вот это текущий владелец и группа. После chown тут будет твой appuser.

  • И главное — не лезь в системные директории типа /etc, /bin или /usr без чёткого понимания, зачем. Можешь так систему угробить, что потом только переустанавливать. Это не шутки, ёпта.