Existe uma maneira de mostrar as permissões para um arquivo sem usar 'ls'

1

Isso é tudo - apenas imaginando se há outra maneira de descobrir as permissões para um arquivo sem fazer um ls -l para ver a sequência de valores lá.

Até onde eu sei, não há nenhuma opção show em chmod .

    
por jimm-cl 12.05.2016 / 22:49

4 respostas

4

Além de stat (específico do Linux), existem ferramentas que permitem fazer isso como um efeito colateral. O programa tar , por exemplo, pode fazer isso:

tar cf - filename | tar tvf -

Por exemplo

$ tar cf - foo |tar tvf -
rwxr-xr-x 1021/1021     18 Jan 13 21:40 2016 foo

Usando o "-" especial, como se fosse razoavelmente portátil (funciona com AIX , HPUX , Solaris , Linux e FreeBSD ).

O termo "razoavelmente portátil" aplica-se a

  • disponibilidade
  • formato idêntico

Existem alguns comentários sobre stat versus portability. Aqui está uma saída de GNU coreutils stat :

$ stat foo
  File: 'foo'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 784564      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: ( 1001/     tom)   Gid: (  100/   users)
Access: 2016-05-12 19:03:54.773503477 -0400
Modify: 2016-05-12 19:03:54.773503477 -0400
Change: 2016-05-12 19:03:54.773503477 -0400
 Birth: -

e saída do stat do BSD (OSX):

$ stat foo
16777221 61893362 -rwxr-xr-x 1 tom wheel 0 0 "May 12 19:03:54 2016" "May 12 19:03:54 2016" "May 12 19:04:59 2016" "May 12 19:03:54 2016" 4096 0 0 foo

E aqui está um exemplo de saída de AIX istat (parece diferente para mim):

$ istat foo
Inode 3166649 on device 32768/13        File
Protection: rwxr-xr-x   
Owner: 1021(dickey)             Group: 1021(dickey)
Link count:   1         Length 18 bytes

Last updated:   Wed Jan 13 21:40:30 UTC 2016
Last modified:  Wed Jan 13 21:40:30 UTC 2016
Last accessed:  Wed Jan 13 21:40:20 UTC 2016
    
por 12.05.2016 / 23:05
1

Isto é mais específico do Linux e obscuro (precisará das ferramentas ACL instaladas), mas o comando getfacl mostrará uma saída semelhante a esta, mesmo que não haja ACLs configuradas em um arquivo:

[root@mymachine ~#] getfacl my_file.txt
#file: my_file.txt
#owner: root
#group: root
user::rw-
group::r--
other::r--
    
por 12.05.2016 / 23:16
1

Suponho que o AIX tenha um perl de algum tipo.

perl -e 'printf "%03o\n", (stat( $ARGV[0] ))[2] & 07777' /etc/hosts

A função stat retorna todos os tipos de metadados interessantes sobre o arquivo escolhido. Aqui, estou usando apenas o terceiro elemento ( [2] contando de zero), o que é principalmente permissões. O printf "%03o\n" gera o valor das permissões em octal (por exemplo, 644 , 1644 ou 007 ) com três ou quatro caracteres no resultado.

    
por 12.05.2016 / 23:42
0

Você pode usar stat , como em stat <filename> .

    
por 12.05.2016 / 22:50