Ubuntu 16.04.6 LTS
Estranho no começo, mas acho que reduzi meu problema a uma questão de permissões e como o asterisco (*) é interpretado na linha de comando por causa disso.
Eu estava analisando originalmente os arquivos de log do apache, mas recriei a pergunta da seguinte maneira.
Dois usuários: usuário1 e usuário2
O usuário2 possui a pasta em questão, com as seguintes permissões:
user2@server-01:~$ ls -lahd myFolder/
drwxrwx--- 2 user2 user2 4.0K Aug 28 13:22 myFolder/
A pasta contém vários arquivos, nomeados com uma convenção de nomenclatura que pode ser seguida. ie
user2@server-01:~/myFolder$ ls -l
total 0
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_1
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_2
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_3
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_4
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_5
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_1
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_2
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_3
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_4
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 def_5
Se eu quiser apenas analisar ou listar os arquivos 'abc' na pasta, é claro que podemos fazer isso (como usuário2):
user2@server-01:~/myFolder$ ls -l abc*
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_1
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_2
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_3
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_4
-rw-rw-r-- 1 user2 user2 0 Aug 28 13:24 abc_5
Agora, o usuário do usuário1 está configurado da seguinte maneira (observe que ele é um sudoer):
user1@server-01:~$ id
uid=1004(user1) gid=1004(user1) groups=1004(user1),27(sudo)
Obviamente, nosso usuário1 não poderá listar o conteúdo myFolder
, a menos que preceda o comando com sudo
. Como isso:
user1@server-01:~$ ls /home/user2/myFolder
ls: cannot open directory '/home/user2/myFolder': Permission denied
user1@server-01:~$ sudo ls /home/user2/myFolder
abc_1 abc_2 abc_3 abc_4 abc_5 def_1 def_2 def_3 def_4 def_5
Finalmente, minha pergunta é como o usuário1 lista apenas os arquivos 'abc', porque o comando sudo, as permissões de diretório ou algo relacionado à segurança não está interpretando o asterisco no comando abaixo, da maneira normal?
user1@server-01:~$ sudo ls /home/user2/myFolder/abc_*
ls: cannot access '/home/user2/myFolder/abc_*': No such file or directory
Ou estou entendendo completamente a situação?
fonte
Respostas:
Excelente explicação aqui: https://unix.stackexchange.com/questions/101847/cannot-expand-asterisk-without-proper-permission
Vamos precisar chamar o shell com sudo e passar o comando inteiro com a bandeira -c
fonte