chown -R user: user. * меняет права назад: это правильное поведение?

У меня возникли большие проблемы при изменении разрешения папки myfolder, находящейся в /. Я дал команду

sudo chown -R luca:luca /myfolder/.*

Я намеревался изменить владельца всех скрытых файлов в /myfolder.

К сожалению, я понял, что также было изменено право собственности на /, что, конечно, оставило меня со сломанной системой. Я думаю, что это произошло потому, что .. соответствует .*, но все еще кажется мне странным.

Является ли изменение родительского каталога правильным поведением или я должен подать отчет об ошибке?

Если это была моя ошибка в использовании chown, каковы наилучшие методы, чтобы предотвратить изменение владельца системных папок и файлы?

8
задан 5 July 2013 в 16:14

2 ответа

Помните, что командная строка раскрывается (интерпретируется) оболочкой перед выполнением

sudo chown -R luca:luca /myfolder/.*

интерпретируется сначала как:

sudo chown -R luca:luca /myfolder/.  /myfolder/.. /myfolder/.adobe  /myfolder/.bash_history

обратите внимание на /myfolder/.. в вашей команде строка

chown -R luca:luca /myfolder/.. эквивалентна chown -R luca:luca /
, что делает «чоун» бегом «назад»

Используйте echo /myfolder/.*, когда вы используете «*» для проверки. [ 1111]

0
ответ дан 5 July 2013 в 16:14

Ну. Командная строка от имени root очень мощная. Прочитайте некоторые из этих классик. И да, .* в соответствии с .. - это именно то, что предназначено. Точка не особенный персонаж. Это соглашение. По соглашению, файлы, которые начинаются с точки, скрываются от представления по умолчанию при перечислении каталога - ни меньше, ни больше. По соглашению, индекс, ведущий к текущему каталогу, получает имя ., а индекс, ведущий к родительскому каталогу, получает имя ...

Что вы должны были сделать, это

chown -R luca:luca /myfolder

Я упоминал, что нет ничего особенного в именах файлов, которые начинаются с точки? Рекурсивный chown так не считает.

Прямо сейчас вы можете восстановить некоторые функции, изменив владельца обратно на root. В долгосрочной перспективе вам, вероятно, придется переустановить систему.

Как правило:

  1. Избегайте работы от имени root.
  2. Если вы работаете как root, прочитайте каждую команду дважды, прежде чем нажать Enter.
  3. Если вы не уверены в расширении, попробуйте сначала с помощью «безопасной» команды (например, echo .*).
  4. Не работайте как root.
  5. Существует много задач, которые можно безопасно выполнить с помощью графического интерфейса (ваша задача - пример такой задачи).
  6. Я упоминал, что вам следует избегать использования учетной записи root?
0
ответ дан 5 July 2013 в 16:14

Другие вопросы по тегам:

Похожие вопросы: