Чи є веб-перетворювач між rwx та восьмирічною версією?


27

Я ніколи не можу згадати , що перетворення від чого - то , як rw-r--r--в 644. Чи є простий веб-перетворювач між двома?


Це просто восьмеричне число, у якому двійкові цифри відображаються на rwxrwxrwx (користувач, група, інше).
Кіт

це можна легко обчислити вручну. або їх можна відобразити до stat -c...
fromnaboo

Відповіді:


26

Цей сайт пропонує інтерактивний спосіб дізнатися, які біти дозволів встановлюються, коли різні біти встановлюються / вимикаються.

"Калькулятор" виглядає приблизно так:

  ss №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: = власника? o: = інше? але що було б u, якщо o = власник? 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


Зазвичай я б позначив це тим, що відповідає лише посиланням, але оскільки ОП явно просив веб-сайт, я дозволю це пройти. Будьте в курсі, хоча відповіді, що стосуються лише посилань, часто не рекомендують.
HalosGhost

Схоже, цей сайт зараз не працює. Я бачу помилки "403" в консолі.
Райан

4

Це, безумовно, найзручніше, і, крім того, я вірю, саме те, про що ви просили спочатку:

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

Він є повністю інтерактивним, хоча ви не можете редагувати рядок "-rx -------", але ви можете вісімкові або прапорці. Здійснюючи або оновлення іншого.

Мій улюблений інструмент саме для цього

З тієї ж сторінки:

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

Від однієї до чотирьох восьмеричних цифр Будь-які опущені цифри вважаються провідними нулями.

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

Октальне (0-7) значення обчислюється шляхом додавання значень для кожної цифри Користувач (rwx) = 4 + 2 + 1 = 7 Група (rx) = 4 + 1 = 5 Світ (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.