Como altero o proprietário para o usuário atual na pasta e contendo pastas dentro do meu diretório pessoal?
12
Usando sudo nautiluseu criei algumas pastas e quero me livrar da permissão de root nelas. Mas eu tenho muitos e quero fazer isso em um diretório inteiro e em suas pastas contendo.
Então, como permitir leitura / gravação para o usuário atual em todos os arquivos e pastas dentro de um diretório específico que esteja dentro de casa?
Para reverter os danos causados pelo uso, sudo nautilusvocê deve se tornar o proprietário de todos os diretórios (e seu conteúdo) pertencentes à raiz.
Você pode findfazer isso, pois ele possui um teste para localizar apenas arquivos pertencentes a um usuário específico.
Você encontrará todos os diretórios em sua casa pertencentes ao root:
sudo find ~ -type d -user root
Em seguida, você pode repetir o findcomando e adicionar a ação que deseja executar - alterando recursivamente a propriedade de todos os diretórios encontrados e seu conteúdo para o usuário atual:
-user root encontre apenas coisas pertencentes à raiz
-exec execute o seguinte comando no que foi encontrado
sudo chown -R mudar recursivamente o proprietário
$USER o usuário atual
: também altere o grupo para o usuário específico
Mais eficientemente, você pode omitir o -type dpara encontrar arquivos de qualquer tipo pertencentes ao root e também omitir a recursão, assim -Rcomo findfará a recursão atuando em todos os arquivos
Você deve executar o seu findwith sudo( sudo find ...) para inspecionar os rootsubdiretórios proprietários com 0700proteções e tudo sob eles. O mesmo vale para o reparo.
waltinator
"defender contra o que é provável" ou "defender contra o que é possível"? Sua escolha.
waltinator
@ waltinator certeza :) obrigado por mencionar isso para que eu pudesse melhorar. Eu apenas tento não usar sudoaté ser necessário
Zanna
10
Correndo ferramentas GUI, como nautiluscomo rooté considerado nocivo por esta razão, entre outros (funções ocultas, capacidade de fragmentos de programa executado silenciosamente de quem sabe onde, ...).
Você não tem um problema de "permissão", você tem um problema de "propriedade".
Para encontrar todos os arquivos pertencentes a root(realmente pertencentes a mais alguém), faça:
sudo find $HOME \! -user $USER
Para alterar a propriedade de volta para você, você pode
sudo chown -R $(id -u):$(id -g) $HOME
mas isso mudará a propriedade de todos os arquivos dentro e abaixo $HOME
sudo find $HOME \! -user $USER >/tmp/list-of-files
# edit the list of files, and delete file files you don't want to chown
nano /tmp/list-of-files
xargs sudo chown $(id -u):$(id -g) </tmp/list-of-files
Dá a oportunidade de ajustar a lista de arquivos pertencentes a você, que terão sua propriedade alterada para você.
O que você precisa fazer é alterar a propriedade da pasta da raiz do usuário (e grupo) para o outro usuário (e grupo) que você deseja.
Imagine que você deseja trabalhar em / home / randomFolder e que o usuário com o qual você deseja gerenciar a propriedade é vitor-abella , o que você precisa fazer é simplesmente executar isso como root:
find
withsudo
(sudo find ...
) para inspecionar osroot
subdiretórios proprietários com0700
proteções e tudo sob eles. O mesmo vale para o reparo.sudo
até ser necessárioCorrendo ferramentas GUI, como
nautilus
comoroot
é considerado nocivo por esta razão, entre outros (funções ocultas, capacidade de fragmentos de programa executado silenciosamente de quem sabe onde, ...).Você não tem um problema de "permissão", você tem um problema de "propriedade".
Para encontrar todos os arquivos pertencentes a
root
(realmente pertencentes a mais alguém), faça:Para alterar a propriedade de volta para você, você pode
mas isso mudará a propriedade de todos os arquivos dentro e abaixo
$HOME
Dá a oportunidade de ajustar a lista de arquivos pertencentes a você, que terão sua propriedade alterada para você.
fonte
O que você precisa fazer é alterar a propriedade da pasta da raiz do usuário (e grupo) para o outro usuário (e grupo) que você deseja.
Imagine que você deseja trabalhar em / home / randomFolder e que o usuário com o qual você deseja gerenciar a propriedade é vitor-abella , o que você precisa fazer é simplesmente executar isso como root:
Pode demorar um pouco se houver muitos arquivos e subpastas, mas depois disso você deve estar no caminho certo.
Felicidades.
fonte
$(id -u):$(id -g)
, ao invés de pedir OP para imaginar, e$HOME/randomFolder
.