Czy istnieje konwerter internetowy między wersją rwx a wersją ósemkową?


27

Nigdy nie mogę zapamiętać co jest konwersja z czegoś podobnego rw-r--r--do 644. Czy istnieje prosty konwerter internetowy między 2?


To tylko liczba ósemkowa z cyframi binarnymi odwzorowanymi na rwxrwxrwx (użytkownik, grupa, inne).
Keith

można to łatwo obliczyć ręcznie. lub mogą być wyświetlane przez stat -c...
fromnaboo

Odpowiedzi:


26

Ta strona zapewnia interaktywny sposób sprawdzania, jakie bity uprawnień są ustawione, gdy różne bity są ustawiane / wyłączane.

„Kalkulator” wygląda następująco:

  ss # 1


5
Nawiasem mówiąc, dostałem to od Googlinga za „narzędzie ósmych uprawnień do plików”. Google jest zawsze doskonałym pierwszym miejscem do sprawdzenia, gdy masz pytanie.
J. Taylor

2
Pst, próbowałem wyszukać, ale nie mogłem znaleźć właściwego hasła. Przepraszam, że tak bardzo ci przeszkadzam ... i daję ci przedstawiciela.
Darryl Hein

3
Darryl - Nie przeszkadzałeś mi. Staram się pomóc ci łatwiej znaleźć odpowiedzi na pytania na własną rękę, aby gdy nadejdzie czas, że masz pytanie, na które nikt nie jest w stanie odpowiedzieć, możesz odpowiedzieć sam.
J. Taylor

3
Link jest teraz zerwany, dlatego generalnie odradzamy odpowiedzi tylko na link, ale ciężko jest krytykować, gdy pytanie zadaje link
Michael Mrozek

3
Link nie jest już uszkodzony.

11

Dlaczego w ogóle potrzebujesz liczby ósemkowej?

Zawsze używam:

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 

ugo (a) jest łatwy do zapamiętania. Możesz jednak pomylić o: = właściciel? o: = inny? ale czym byłbyś, gdyby o = właściciel? u: = użytkownik, a więc o = inny.

Niektóre polecenia, takie jak tylko uprawnienia numeryczne. Okej, nie jest trudno obliczyć, jeśli pamiętasz dwie sekwencje: ugo + rwx.

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

Tak, bardzo sztuczny.

Jeśli chodzi o s i SI, należy zapoznać się z instrukcją. Może następnym razem google. :)


8

Octal jest używany do uprawnień, ponieważ jest to łatwa konwersja. Każda grupa rwxtworzy jedną cyfrę ósemkową. Wszystko, co musisz zapamiętać, to pierwsze 3 moce 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

Podoba mi się ten kalkulator uprawnień:
http://file-permissions.ninja


Zazwyczaj oznaczałbym to jako odpowiedź tylko z linkiem, ale ponieważ OP wyraźnie poprosił o stronę internetową, pozwolę jej przejść. Należy jednak pamiętać, że odpowiedzi tylko do linków są często odradzane.
HalosGhost

Ta witryna nie działa teraz. W konsoli widzę błędy „403”.
Ryan

4

Jest to zdecydowanie najwygodniejszy i poza tym, jak sądzę, dokładnie to, o co prosiłeś pierwotnie:

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

Jest w pełni interaktywny, chociaż nie można edytować ciągu „-rx -------”, ale można użyć ósemki lub pól wyboru. Wykonanie jednej z nich powoduje aktualizację drugiej.

Moje ulubione narzędzie do tego

Z tej samej strony:

Tryb numeryczny (absolutny):

Od jednej do czterech cyfr ósemkowych Przyjmuje się, że wszelkie pominięte cyfry są zerami wiodącymi.

Pierwsza cyfra = wybiera atrybuty dla ustawionego ID użytkownika (4) i ustawionego identyfikatora grupy (2) i zapisz obraz tekstowy (1) Druga cyfra = uprawnienia dla użytkownika, który jest właścicielem pliku: odczyt (4), zapis (2) , i wykonaj (1) Trzecia cyfra = uprawnienia dla innych użytkowników w grupie plików: read (4), write (2) i execute (1) Czwarta cyfra = uprawnienia dla innych użytkowników NIE w grupie plików: read ( 4), napisz (2) i uruchom (1)

Wartość ósemkowa (0–7) jest obliczana poprzez zsumowanie wartości dla każdej cyfry Użytkownik (rwx) = 4 + 2 + 1 = 7 Grupa (rx) = 4 + 1 = 5 Świat (rx) = 4 + 1 = 5 tryb chmod = 0755


4

Mam ten mały alias, który możesz umieścić w swoim .bashrc (lub odpowiedniku).

ZASTRZEŻENIE: Nie jestem autorem scenariusza i nie jestem pewien, kto go napisał ... ale proponuje mu / ją za to.

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
Wielkie dzięki za to, @nico - tutaj jest ten sam kod przekonwertowany jako perl-one-liner i użyty w 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");'wydrukuje „ 776”. Twoje zdrowie!
sdaau
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.