Como posso saber por que tenho permissões para ler um arquivo? [fechadas]

0

Veja o que acabei de notar na minha conta do SSH do CentOS:

saída de estatísticas
$ stat /dev/kvm   
  File: '/dev/kvm'
  Size: 0               Blocks: 0          IO Block: 4096   character special file
Device: 5h/5d   Inode: 39768216    Links: 1     Device type: a,e8
Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-07-12 13:50:33.015216048 +0200
Modify: 2014-07-12 13:50:33.015216048 +0200
Change: 2014-07-12 13:50:33.015216048 +0200
id info
$ id
uid=502(jacek) gid=502(jacek) groups=502(jacek)
saída strace
$ strace -e open cat /dev/kvm
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib64/libc.so.6", O_RDONLY)      = 3
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/dev/kvm", O_RDONLY)              = 3
cat: /dev/kvmopen("/usr/share/locale/locale.alias", O_RDONLY) = 4
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
: Invalid argument
informações da ACL
$ getfacl /dev/kvm
getfacl: Removing leading '/' from absolute path names
# file: dev/kvm
# owner: root
# group: root
user::rw-
group::rw-
other::rw-

Por que open teve sucesso aqui? Quais mecanismos diferentes da ACL podem ser usados para dizer se um usuário pode abrir um arquivo ou não? Quais são os comandos que posso usar para consultá-los?

    
por d33tah 12.07.2014 / 14:14

1 resposta

2

O que estou perdendo? /dev/kvm é legível por todos (e gravável) como você pode ver pelas permissões:

user::rw-
group::rw-
other::rw-

Não há motivo para você não conseguir lê-lo. Você está se referindo a outra coisa?

    
por 12.07.2014 / 15:03