Linux новичок здесь, работает над Debian Jessie.

Почему chmod u+w не делает файл доступным для записи для его владельца?

Я бегал:

sudo chmod u+w /var/log/myapp/gunicorn-error.log

Но теперь, если я перечислю разрешения для файла, он все равно не будет доступен для записи:

ls -al /var/log/myapp/
total 52
drwxr-xr-x  2 opuser webapps  4096 Sep  1 11:08 .
drwxr-xr-x 10 root   root     4096 Sep  1 11:24 ..
-rw-r--r--  1 opuser webapps     0 Aug 23 07:11 gunicorn-access.log
-rw-r--r--  1 opuser webapps 38639 Sep  1 11:15 gunicorn-error.log

Что я делаю неправильно?

1 ответ1

1

Ваша представленная команда и связанный с ней вывод выглядят хорошо; не слишком уверен, что вы считаете, что идет не так. Вы просто ввели эту команду chmod символическом режиме:

sudo chmod u+w /var/log/myapp/gunicorn-error.log

И тогда это результат:

-rw-r--r--  1 opuser webapps 38639 Sep  1 11:15 gunicorn-error.log

Слева направо

  • Первый rw- - для пользователя / владельца файла.
  • Следующее r-- указывает права доступа группы.
  • Окончательный r-- это разрешение для других.

Итак, зная это, ваш chmod u+w преуспел, потому что пользователь / владелец имеет права доступа rw- .

Тем не менее, если каким-то образом вы беспокоитесь о группе и других разрешениях, изменение разрешений для пользователя / владельца в символическом режиме не отменяет существующих разрешений для группы и других разрешений.

Если вы как-то хотите установить чтение и запись для пользователя / владельца, но отрицать разрешения для группы и других, вам нужно запустить chmod с настройкой абсолютного (восьмеричного) режима, например:

sudo chmod 600 /var/log/myapp/gunicorn-error.log

Что приведет к таким разрешениям:

-rw-------  1 opuser webapps 38639 Sep  1 11:15 gunicorn-error.log

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .