Число режима полных полномочий является 4-разрядным восьмеричным числом, хотя большую часть времени, Вы только используете 3 младших значащих цифры. Сложите каждую группу в строке полномочий, беря r=4, w=2, x=1. Например:
421421421
-rwxr-xr--
\_/ -- r+w+x = 4+2+1 = 7
\_/ -- r+_+x = 4+0+1 = 5
\_/ -- r+_+_ = 4+0+0 = 4 => 0754
Теперь, иногда Вы будете видеть нечетный modestring как это:
-rwsr-xr-T
Четвертая цифра перегружается на x
биты в modestring. Если Вы видите букву кроме 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
примет режим, который Вы даете ему, является восьмеричным так или иначе, но является самым безопасным предварительно ожидать нуль.
Наконец, если Вы видите a +
в конце modestring:
-rwxr-xr-x+
затем это означает, что файл расширил полномочия, и Вам будут нужны больше, чем chmod
. Изучите setfacl
и getfacl
команды, для начинающих.
Вы могли использовать Xmlstarlet (иначе xml
) как преобразователь XSLT и запись определенный CSV преобразовывают, как упомянуто здесь https://stackoverflow.com/a/952389/1481060