Comando de cópia do Linux

1

Por exemplo, eu tenho dois usuários A e B e A tem privilégios de administrador.

Estou logado como B e quero saber como posso copiar /etc/sudoers no diretório base B em um único comando e depois que /etc/sudoers for copiado, ele deve ser de propriedade do usuário B por padrão, sem usar chmod , chown .

Espero ter me esclarecido.

    
por Adrian George 13.08.2013 / 14:07

2 respostas

2

Se você não quiser usar chown ou chmod , você pode usar um dos seguintes métodos (em qualquer caso, você precisa ter privilégios de root para ler /etc/sudoers file):

sudo cat /etc/sudoers > ~/sudoers

ou:

touch ~/sudoers
sudo cp /etc/sudoers ~/sudoers

Em ambos os casos, após a criação do arquivo ~/sources , pertence ao usuário atual.

    
por Radu Rădeanu 13.08.2013 / 14:49
2

O arquivo /etc/sudoers não pode ser lido por outro usuário, mas root ou usuários com o grupo root .

ls -l /etc/sudoers
-r--r-----. 1 root root 669 Jun 28  2012 /etc/sudoers

Ou seja, se o usuário B não tiver privilégios administrativos, será impossível para ele ler (copiar menos) os arquivos sudoers . Isso ocorre por design, por motivos óbvios de segurança, pois o hash das senhas para elevar para sudo está lá.

Para evitar cp de preservar os atributos, você pode usar a opção --no-preserve= :

sudo cp --no-preserve=ownership /etc/sudoers .

O problema é que ele assumirá a propriedade do usuário que está executando o comando (nesse caso, root ), portanto, a propriedade permanecerá a mesma, mas funcionará com outros arquivos que não t tem a permissão estrita.

$ ls -l /etc/vdpau_wrapper.cfg 
-rw-r--r-- 1 root root 51 May  5 19:19 /etc/vdpau_wrapper.cfg
$ cp --no-preserve=ownership /etc/vdpau_wrapper.cfg .
$ ls -l vdpau_wrapper.cfg 
-rw-r--r-- 1 braiam braiam 51 Aug 13 09:28 vdpau_wrapper.cfg
    
por Braiam 13.08.2013 / 14:14