Permisos octals UNIX


Submit solution

Points: 10
Time limit: 5.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C#, Go, Java

Donats els permisos d'un fitxer en format octal, tradueix-los a format caràcters.

La primera xifra octal indica els permisos especials: setuid, setgid i sticky. La segona xifra octal indica els permisos rwx per a l'usuari propietari del fitxer. La tercera xifra octal indica els permisos rwx per als usuaris del grup propietari del fitxer. La quarta xifra octal indica els permisos rwx per a la resta d'usuaris.

Per exemple, el nombre octal 4765 indica que els permisos especials són 4, el d'usuari 7, el de grup 6 i per als altres 5. Això es tradueix en uns permisos rwsrw-r-x

Per a traduir el permisos octals en els permisos rwx corresponents, cal passar cada xifra a binari.

Per als permisos d'usuari, grup i altres, un 0 en la primera i segona xifra binària siginifica que el permisos de lectura i espcriptura, respectivament, no es concedeixen, i un 1 que sí es concedeixen. Per al permís d'execució, un 0 significa que no es concedeix, i un 1 que sí es concedeix. A més a més, si es concedeix el permís d'execució i també i hi ha un 1 en la xifra binària especial corresponent, aleshores s'aplica el permís especial.

usuari:
    r: lectura
    w: escriptura
    x: execució
    s: setuid
    S: setuid però no execució

grup:
    r: lectura
    w: escriptura
    x: execució
    s: setuid
    S: setuid però no execució
altres
    r: lectura
    w: escriptura
    x: execució
    t: sticky
    T: sticky però no execució

Input Format

La entrada consisteix en un nombre octal P indicant els permisos.

Constraints

0 \<= P \<= 7777

Output Format

S'imprimiran els permisos en format caràcter.

Test Case 1

Input
0
Output
---------

Test Case 2

Input
6
Output
------rw-

Test Case 3

Input
764
Output
rwxrw-r--

Test Case 4

Input
1000
Output
--------T

Test Case 5

Input
1001
Output
--------t

Test Case 6

Input
1552
Output
r-xr-x-wT

Test Case 7

Input
1553
Output
r-xr-x-wt

Test Case 8

Input
2040
Output
---r-S---

Test Case 9

Input
2050
Output
---r-s---

Test Case 10

Input
2451
Output
r--r-s--x

Test Case 11

Input
3032
Output
----ws-wT

Test Case 12

Input
3766
Output
rwxrwSrwT

Test Case 13

Input
4000
Output
--S------

Test Case 14

Input
4100
Output
--s------

Test Case 15

Input
4765
Output
rwsrw-r-x

Test Case 16

Input
5766
Output
rwsrw-rwT

Test Case 17

Input
6774
Output
rwsrwsr--

Test Case 18

Input
7000
Output
--S--S--T

Test Case 19

Input
7111
Output
--s--s--t

Test Case 20

Input
7776
Output
rwsrwsrwT

Test Case 21

Input
7777
Output
rwsrwsrwt

Authorship: Gerard Falcó

CC BY-NC-SA 4.0