Есть ли веб-конвертер между rwx и восьмеричной версией?


27

Я никогда не могу вспомнить , что преобразование от чего - то , как rw-r--r--в 644. Есть ли простой веб-конвертер между 2?


Это просто восьмеричное число с двоичными цифрами, отображаемыми в rwxrwxrwx (пользователь, группа, другое).
Кейт

это можно легко вычислить вручную. или они могут отображаться stat -c...
fromnaboo

Ответы:


26

Этот сайт предоставляет интерактивный способ увидеть, какие биты разрешений установлены, когда различные биты установлены / не установлены.

«Калькулятор» выглядит так:

  сс # 1


5
Кстати, я получил это от Googling за «восьмеричный инструмент для доступа к файлам». Google всегда является отличным первым местом, чтобы проверить, когда у вас есть вопрос.
Дж. Тейлор

2
Pst, я попробовал поиск, но я не смог найти правильный поисковый запрос. Извините, что беспокою вас так много ... и дать вам немного репутации.
Дэррил Хейн

3
Дэррил - Ты меня не беспокоил. Я пытаюсь помочь вам легче найти ответы на вопросы самостоятельно, чтобы, когда придет время, у вас возник вопрос, на который никто не хочет отвечать за вас, вы могли бы ответить на него самостоятельно.
Дж. Тейлор

3
Ссылка теперь не работает, поэтому мы обычно не одобряем ответы только для ссылок, но трудно критиковать, когда вопрос задают для ссылки
Майкл Мрозек

3
Ссылка больше не битая.

11

Зачем вам восьмеричное число в первую очередь?

Я всегда использую:

chmod o+x file   # all + eXecute permissions
chmod g-w file   # group - write perms
chmod u=r file   # user can just read
chmod ug=rw file # user,group = read and write
chmod a+w file   # user,group,others + write 

Уго (а) легко запомнить. Однако вы можете запутать o: = owner? о: = другой? но что будет у вас, если о = владелец? u: = пользователь, следовательно, o = другой.

Некоторые команды любят только числовые разрешения. Хорошо, это не сложно вычислить, если вы помните две последовательности: ugo + rwx.

    r   w   x  | Sum
u   4   2   1  | 7
g   4   -   1  |  5
o   4   2   -  |   6
---------------------
                 756

Да, очень искусственно.

Когда дело доходит до s и SI, необходимо обратиться к руководству. Может быть, Google в следующий раз. :)


8

Octal используется для разрешений, потому что это простое преобразование. Каждая группа rwxобразует одну восьмеричную цифру. Все, что вам нужно запомнить, - это первые 3 степени 2: 4, 2, 1. r= 4, w= 2, x= 1.

rw-r--r--= 110 100 100= 4+2+0 4+0+0 4+0+0=644


5

Мне нравится этот калькулятор разрешений:
http://file-permissions.ninja


Обычно я бы отмечал это как ответ только для ссылок, но, поскольку OP явно запрашивал веб-сайт, я позволю ему пройти. Имейте в виду, что ответы только на ссылки часто не рекомендуется.
HalosGhost

Этот сайт сейчас не работает. Я вижу ошибки "403" в консоли.
Райан

4

Это, безусловно, самое удобное, и, кроме того, я верю, именно то, что вы просили изначально:

http://ss64.com/osx/chmod.html

Он полностью интерактивен, хотя вы не можете редактировать строку "-rx -------", но вы можете использовать восьмеричные или флажки. Делать либо обновляет другой.

Мой любимый инструмент только для этого

С той же страницы:

Числовой (абсолютный) режим:

От одной до четырех восьмеричных цифр Предполагается, что любые пропущенные цифры являются ведущими нулями.

Первая цифра = выбирает атрибуты для заданного идентификатора пользователя (4) и заданного идентификатора группы (2) и сохраняет текстовое изображение (1) Вторая цифра = права доступа для пользователя, которому принадлежит файл: чтение (4), запись (2) и выполнить (1) Третья цифра = разрешения для других пользователей в группе файла: чтение (4), запись (2) и выполнение (1) Четвертая цифра = разрешения для других пользователей, НЕ входящих в группу файла: чтение ( 4) написать (2) и выполнить (1)

Восьмеричное (0-7) значение рассчитывается путем сложения значений для каждой цифры. Пользователь (rwx) = 4 + 2 + 1 = 7 Группа (rx) = 4 + 1 = 5 World (rx) = 4 + 1 = 5 режим chmod = 0755


4

У меня есть этот маленький псевдоним, который вы можете поместить в свой .bashrc (или эквивалентный).

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не являюсь автором сценария, и я не уверен, кто его написал ... но подает ему / ей за это.

alias lsp="ls -l --color | 
      awk '{k=0; for(i=0;i<=8;i++) k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));
      if (k) printf(\" %0o \",k); print}'"

1
Большое спасибо за это, @nico - здесь тот же код, конвертированный как однострочный perl, и используемый в bash: echo 'rwxrwxrw-' | perl -ne 'BEGIN{sub conv{ chomp(my $ins=shift); my $k=0; for(my $i=0;$i<=8;$i++) { my $tmps = ( substr($ins, $i, 1) =~ /[rwx]/ ); $k+= ( $tmps*(2**(8-$i)) ); }; if ($k) { sprintf(" %0o ", $k); } else { "??" ; }; }; } print(conv($_)."\n");'бы вывести " 776". Ура!
sdaau
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.