É possível exibir um arquivo, com base no UID numérico, para um usuário que ainda não existe?

19

Por exemplo, para gerenciar uma partição de disco para outro sistema em que o usuário existe. Sei que posso simplesmente criar um usuário temporariamente, mas acho essa pergunta interessante.

glarry
fonte

Respostas:

22

Sim, você pode chownobter um UID numérico que não possui um usuário correspondente.

DopeGhoti
fonte
Eu testei antes de perguntar: chown \#1005 fileretorna chown: invalid user: ‘#1005’.
glarry
5
Não use um octóforo; não é um número. Basta usar o número, por exemplo sudo chown 1005 /path/to/file.
DopeGhoti 18/01/19
De acordo com essa lógica, sudoacha que é um número. Além disso, ele pensa que grupos de dígitos que não começam com um sinal numérico não são números. :)
glarry
1
Eu tentei chown 1005 filepela primeira vez . Não funcionou, por um motivo não relacionado, mas eu culpei o sinal numérico ausente. Você precisa pelo menos usar ./file, aparentemente para que o chown seja capaz de dizer qual dos dois é o usuário. Só para você (leitor) saber.
glarry
2
@glarry Eu não preciso usar ./. O nome do arquivo é realmente file?
Hauke ​​Laging
11

chown UID:GID fileName pode ser feito com números ou nome de usuário ou nome de grupo

ex: chown 1000:1000 dirnameé válido

pode ser necessário redefinir a permissão do diretório com, chmod 755por exemplo, depois de fazê-lo para obter acesso a ele

Dicas

  • Você pode verificar o ID do usuário com id someUsername
  • Você pode verificar o ID do grupo com gid someUsername
  • Você pode alterar as permissões apenas em diretórios com find someLocation -type d -exec chown 1000:1000 {} \;
Philippe Gachoud
fonte
Usando variáveis chown -R $HOST_USER_ID:$HOST_GROUP_ID /usr/bin/mariadb/install/datame dá um erro chown: invalid spec: '1000:'sous `Lubuntu 16/04
Stephane
Eu poderia solucionar o problema executando dois comandos distintoschown -R $HOST_USER_ID /usr/bin/mariadb/install/data; chgrp -R $HOST_GROUP_ID /usr/bin/mariadb/install/data;
Stephane
@Stephane seu UID e GID deve ser o número do grupo / id você quer mudança, e é setado em /etc/groupe /etc/passwdou quer por outro sistema como o LDAP, você pode se referir a comandos como gentent ter mais informações sobre sobre isso.
Philippe Gachoud 24/01