Я обновил Ubuntu PC с 10.04 до 12.04.
Проблема в том, что все домашние права были недопустимы.
Итак, я сделал следующее:
sudo chown -R james:james /home/james/*
sudo chown -R james:james /home/james/.*
sudo chown -R htpc:htpc /home/htpc/*
sudo chown -R htpc:htpc /home/htpc/.*
Но вы получите все файлы в обеих папках либо в james: james, либо в htpc: htpc, в зависимости от того, каким образом вы запускаете команды.
Как стать связанный и как я могу его исправить?
В соответствии с запросом:
james@htpc:~$ ls -l /home
total 8
drwxr-xr-x 41 james james 4096 May 20 19:32 htpc
drwxr-xr-x 31 james james 4096 May 20 20:04 james
james@htpc:~$ ls -l /home/htpc
total 236
drwxr-xr-x 4 james james 4096 Nov 25 13:19 Desktop
drwxr-xr-x 2 james james 4096 Mar 13 2011 Documents
drwxr-xr-x 5 james james 4096 Dec 22 2010 Downloads
-rw-r--r-- 1 james james 179 Nov 18 2010 examples.desktop
-rwxr-xr-x 1 james james 85 Dec 27 2010 goback
-rw-r--r-- 1 james james 425 Nov 28 2010 modelines
drwxr-xr-x 5 james james 4096 Dec 27 2010 Music
drwxr-xr-x 22 james james 4096 Oct 29 2012 Pictures
drwxr-xr-x 2 james james 4096 Nov 18 2010 Public
drwxr-xr-x 2 james james 4096 Nov 18 2010 Templates
-rwxr-xr-x 1 james james 251 Dec 27 2010 testmode
drwxr-xr-x 2 james james 4096 Dec 23 2010 Videos
-rwxr-xr-x 1 james james 190672 Nov 6 2010 winetricks
james@htpc:~$
Каждая папка содержит файл с именем ... Этот файл отличается тем, что указывает на каталог, содержащий текущий рабочий каталог. Например:
$ pwd
/path/to/dir
$ cd ..
$ pwd
/path/to
Поскольку вы указали .* в качестве аргумента, оболочка расширяет его для каждого файла, начинающегося с «.», Включая ... Это означает, что ваша операция выполнялась во всем текущем рабочем каталоге, а также в родительском каталоге (/home). Поскольку вы указали рекурсивный, вы изменили каждый файл и каталог в своей папке /home на все, что вы указали. Фактически, вы, возможно, изменили владельца каждого отдельного файла в вашей системе. Я бы рекомендовал запустить ls -l /, чтобы проверить, произошло ли это - если это произойдет, вы, вероятно, столкнетесь с проблемами.
Я использую это на своих компьютерах EC2 для исправления прав на домашнюю папку.
#fix home directories
cd /home/
for i in *; do
useradd $i
chown -R $i:$i /home/$i
done
Если вы делаете -R, вам не нужно использовать дикие карты. Просто выслушивайте верхний уровень, оставив остальных в покое. И как говорили другие. * Matches ..