Что вы подразумеваете под «установить то же самое»? У вас уже есть файл с разрешением -rw-r - r-- и вы хотите установить другой файл с такими же разрешениями? Затем посмотрите, chmodподдерживает ли он --reference: «--reference = RFILE использует режим RFILE вместо значений MODE» - man chmod.
stat -c %a /path/to/fileэто магический трюк, который вам нужен.
fromnaboo
и ответ находится в блоке доступа там выше. Файл, который он использовал в этом примере, имеет другой доступ, чем тот, который указан в вопросе. тот, о котором идет речь, показал бы Доступ: (0644 / -rw-r - r--)
nycynik
65
r=4
w=2
x=1
в каждой группе. Ваш пример: 6 (r + w = 4 + 2) 4 (r = 4) 4 (r = 4).
Полный номер режима разрешений представляет собой 4-значное восьмеричное число, хотя в большинстве случаев вы используете только 3 наименее значащие цифры. Добавьте каждую группу в строку прав доступа, приняв r = 4, w = 2, x = 1. Например:
Теперь иногда вы увидите странную скромную строку, подобную этой:
-rwsr-xr-T
Четвертая цифра перегружена на xбиты в скромной строке. Если вы видите букву, отличную от xэтой, то это означает, что установлен один из этих «специальных» четырехзначных битов, а если буква в нижнем регистре, то xдля этой позиции также устанавливается. Таким образом, перевод для этого:
4 2 1
421421421
-rwsr-xr-T
+ + + -- s+_+T = 4+0+1 = 5
\_/ -- r+w+s = 4+2+1 = 7 (s is lowercase, so 1)
\_/ -- r+_+x = 4+0+1 = 5
\_/ -- r+_+T = 4+0+0 = 4 (T is uppercase, so 0) => 05754
Стандартный способ UNIX показать, что число является восьмеричным, состоит в том, чтобы начать его с нуля. GNU chmodпримет, что режим, который вы задаете, является восьмеричным, но безопаснее всего ставить ноль.
Наконец, если вы видите +в конце скромную строку:
-rwxr-xr-x+
тогда это означает, что файл имеет расширенные разрешения, и вам нужно больше, чем chmod. Посмотрите в setfaclи getfaclкоманды, для начала.
Разрешения - это просто строковое представление двоичного числа.
В 0основном -это буквы, остальные буквы.
основной
Для основных разрешений:
Конвертировать все -и заглавные буквы Sили Tв 0, остальные должны представлять 1.
Полученное двоичное число, построенное таким образом, должно быть напечатано как восьмеричное:
chmod
поддерживает ли он--reference
: «--reference = RFILE использует режим RFILE вместо значений MODE» - man chmod.Ответы:
Пожалуйста, проверьте
stat
вывод:источник
stat -c %a /path/to/file
это магический трюк, который вам нужен.в каждой группе. Ваш пример: 6 (r + w = 4 + 2) 4 (r = 4) 4 (r = 4).
источник
Полный номер режима разрешений представляет собой 4-значное восьмеричное число, хотя в большинстве случаев вы используете только 3 наименее значащие цифры. Добавьте каждую группу в строку прав доступа, приняв r = 4, w = 2, x = 1. Например:
Теперь иногда вы увидите странную скромную строку, подобную этой:
Четвертая цифра перегружена на
x
биты в скромной строке. Если вы видите букву, отличную отx
этой, то это означает, что установлен один из этих «специальных» четырехзначных битов, а если буква в нижнем регистре, тоx
для этой позиции также устанавливается. Таким образом, перевод для этого:Стандартный способ UNIX показать, что число является восьмеричным, состоит в том, чтобы начать его с нуля. GNU
chmod
примет, что режим, который вы задаете, является восьмеричным, но безопаснее всего ставить ноль.Наконец, если вы видите
+
в конце скромную строку:тогда это означает, что файл имеет расширенные разрешения, и вам нужно больше, чем
chmod
. Посмотрите вsetfacl
иgetfacl
команды, для начала.источник
Это может быть просто
источник
Разрешения - это просто строковое представление двоичного числа.
В
0
основном-
это буквы, остальные буквы.основной
Для основных разрешений:
Конвертировать все
-
и заглавные буквыS
илиT
в0
, остальные должны представлять1
.Полученное двоичное число, построенное таким образом, должно быть напечатано как восьмеричное:
В одну строку:
Исправление ошибок и обнаружение других 3 битов
1000
,2000
или4000
требуется еще немного кода:источник
Получить список файлов с их строковыми и шестнадцатеричными значениями разрешений. Помещение% N в конце, чтобы легче было выводить в Excel.
Это найдет все файлы с определенным шестнадцатеричным разрешением.
источник
Для всех одновременных файлов в Dir
Для всех файлов
источник