Chmod 644 in linux

Change all files and folders permissions of a directory to 644/755

If someone (@animuson) would be so kind to explain me, why this chmod question is off-topic and all others (14,438 results) here aren’t.

Little late, but this one command will also do the accepted answer in one shot: chmod -R a=r,a+X,u+w /your/path

Good question, doesn’t deserve closing. These should rather be moved to a stackoverflow sub site than closed.

@hugoderhungrige it means go ask it on a Server site like: http://superuser.com 😛 but this question helped me here, thanks.

7 Answers 7

One approach could be using find:

for directories

find /desired_location -type d -print0 | xargs -0 chmod 0755 

for files

find /desired_location -type f -print0 | xargs -0 chmod 0644 

just for someone else like me, this doesn’t work instead try sudo find /your/location -type f -exec chmod 644 <> \; for files and sudo find /your/location -type d -exec chmod 755 <> \; for directories

I ran the original solution and it messed up my permissions on files and directories. watch out! the solution on the comment worked, thanks!

What if I want only the subfolder to be chmod 755 when specifying the desired_location ? Because this also will make the parent folder 755

chmod -R u+rwX,go+rX,go-w /path/to/dir 

to ch ange file mod es -R ecursively by giving:

  • u ser: r ead, w rite and e X ecute permissions,
  • g roup and o ther users: r ead and e X ecute permissions, but not -w rite permission.

Please note that X will make a directory executable, but not a file, unless it’s already searchable/executable.

+X — make a directory or file searchable/executable by everyone if it is already searchable/executable by anyone.

Please check man chmod for more details.

Читайте также:  Linux политика прав доступа

This answer, while neat, does have a problem: a file that is executable before running the command will be executable afterwards. See the answer of @JohnAllsup for a command that does not have this flaw.

The shortest one I could come up with is:

which works on GNU/Linux, and I believe on Posix in general (from my reading of: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html).

  1. Set file/directory to r__r__r__ (0444)
  2. Add w for owner, to get rw_r__r__ (0644)
  3. Set execute for all if a directory (0755 for dir, 0644 for file).

Importantly, the step 1 permission clears all execute bits, so step 3 only adds back execute bits for directories (never files). In addition, all three steps happen before a directory is recursed into (so this is not equivalent to e.g.

chmod -R a=r /foo chmod -R u+w /foo chmod -R a+X /foo 

since the a=r removes x from directories, so then chmod can’t recurse into them.)

Источник

Команда chmod в Linux

Команда chmod в Linux

Команда chmod, команда chown и команда chgrp.

Команда chmod

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».

Синтаксис команды chmod следующий:

chmod разрешения имя_файла

Разрешения можно задавать двумя способами:

Изменение прав доступа командой chmod

Запись прав доступа числом

В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

Число Разрешения Символьное обозначение
0 разрешения отсутствуют
1 x — запуск —x
2 w — изменение -w-
3 x+w — запуск+изменение -wx
4 r — чтение r—
5 r+x — чтение+запуск r-x
6 r+w — чтение+изменение rw-
7 r+w+x — чтение+изменение+запуск rwx
Читайте также:  Linux запуск приложения свернутым

Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 7 6 4 , которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

Команда chmod

В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:

Числовое
обозначение
«rwx»-обозначение Описание
400 -r——— Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены.
644 -rw-r—r— Все пользователи могут читать файл. Владелец может изменять файл.
660 -rw-rw—- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены.
664 -rw-rw-r— Все могут читать файл. Владелец и группа могут изменять.
666 -rw-rw-rw- Все могут читать и изменять файл.
700 -rwx—— Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены.
744 -rwxr—r— Все могут читать файл. Владелец может также изменять и запускать файл.
755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл.
777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл.

Запись прав доступа символами

chmod +x myfile1 chmod g=rw myfile2 chmod u-w myfile3

Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «» и такие символы как, например, «g» или «u».

Читайте также:  Veeam backup установка linux

Общий синтаксис можно записать примерно так:

chmod (владелец)(математическая операция)(разрешения) имя_файла

Обозначения для владельцев файла следующие:

Обозначение Описание
u Владелец-пользователь.
g Группа.
o Все остальные.
a Вообще все.

Математические операции означают следующее:

Оператор Описание
+ Добавляет к текущим правам доступа новое разрешение.
Удаляет из текущих прав доступа определенное разрешение.
= Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми).

В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).

Рекурсивное изменение прав доступа

Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:

И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:

Видео-обзор команды chmod

Команда chown — изменение владельца и группы

Для изменения владельца и группы файла используется команда chown.

Для изменения владельца файла используется следующий синтаксис:

chown новый_владелец имя_файла

Например, установим для файла myfile нового владельца vasya:

Для изменения владельца и группы файла используется следующий синтаксис:

chown новый_владелец:новая_группа имя_файла

Например, установим для файла myfile нового владельца vasya и группу sambashare:

chown vasya:sambashare myfile

Команда chgrp — изменение группы

Есть еще одна команда — chgrp. Она позволяет изменить только группу. Например:

Резюме

В Linux у каждого файла есть права доступа — это разрешения, владелец и группа.

Разрешения задаются для владельца, группы и для всех остальных.

Есть три вида разрешений — r — чтение, w — изменение, x — запуск.

Чтобы изменить разрешения у файла используется команда chmod.

Чтобы изменить владельца или группу используется команда chown.

Чтобы изменить группу используется chgrp.

Источник

Оцените статью
Adblock
detector