У меня был файл с 644 ( -rw-r--r--
) и я хотел изменить его на 664 ( -rw-rw-r--
) после запуска:
sudo chmod -664 my_file
права доступа к файлу были установлены на 000 ( ----------
).
Попытка изменить разрешения на что-либо отличное от 000, похоже, не работает. Что мне здесь не хватает?
command-line
permissions
chmod
illgoforit
источник
источник
-
перед 644? Попробуйsudo chmod 644 my_file
.-644
удалит права.Ответы:
Вы используете
-664
, просто используйте664
вместо этого. И никогда не используйте,sudo
когда вам это не нужно. Если это ваш файл, вам не нужноsudo
:Когда вы запускаете
chmod
с-
перед режимом, вы удалите этот режим. Смотритеman chmod
(выделение мое):Числа:
Таким образом, файл с
777
разрешениями означает, что каждый имеет право делать все три, поскольку 1 + 2 + 4 = 7, и, следовательно, установка разрешений на 7 означает разрешение на чтение, запись и выполнение.Если вы начинаете с файла, режим которого
777
:А теперь запустите
chmod -644
, вы удалите биты644
и получите файл, режим которого133
:Это связано с тем, что вы удалили 6 (чтение (4) + запись (2)) из разрешений владельца, оставив только 1 (выполнить) набор и 4 (чтение) из группы и другие разрешения. В результате получается файл с правами только для execute (1) для владельца, а для записи - для остальных и оставляющих (4, 1 и 3) разрешения на запись и выполнение.
Поскольку ваш файл предположительно имел разрешения по умолчанию для новых файлов, поэтому
644
при запускеchmod -644 my_file
вы удалили все установленные биты разрешений и получили файл без каких-либо разрешений.источник