Em um sistema com base no RHEL 7.2, tento copiar arquivos para um local montado no smb:
cd /target
cp /tmp/foo .
Isso falha com esta mensagem de erro:
cp: cannot create regular file ‘./foo’: Operation not permitted
Eu posso ver que um arquivo com tamanho de 0 byte foi criado.
Quando eu cat
ou echo Thisisfoobar>foo
isso funciona bem e o arquivo tem o conteúdo que eu quero.
Mas fica ainda mais estranho, quando eu faço isso também funciona:
cd /target
echo Thisisfoobar>foo
cp /tmp/foo .
Eu não tenho a menor idéia de por que isso não funciona. Já executei um strace
em ambas as variantes (uma em que foo
não existe e uma em que foo
existe e é sobrescrita) e comparei a saída, mas não vi diferenças de relevância. As únicas diferenças são handles e filesizes como aqui:
stat("./foo", {st_mode=S_IFREG|0700, st_size=12, ...}) = 0
Não usamos selinux nesta máquina. Antes de executar os comandos mencionados acima eu preciso fazer um sudo adm
(o que efetivamente me dá permissões root-like, isso é uma limitação imposta pelo CyberArk) e deste shell adm eu faço um curto su tu
(ou su - tu
, não faz diferença
Falando de smb: tu
é membro de um grupo que tem permissões para escrever no dispositivo montado em smb, tu
é um membro do Active Directory.
ls -laZ /tmp/foo
produz esta informação:
-rwx------ tu user ? foo
Eu verifiquei a saída dmesg
s enquanto eu executava os comandos e nenhuma entrada foi anexada.
Tags cp permissions smb