Это происходит потому, что вы не являетесь владельцем файла. Чтобы получить доступ к файлу, выполните следующие действия.
Откройте терминал и введите:$sudo -s
Введите пароль администратора. Затем сделайте (не забудьте заменить имя пользователя) $cd /home/[username]/.config
$chmod 777 opera
Этот ответ не касается части sudo вашего вопроса, но, с другой стороны, он рассматривает способ уменьшения опасности случайных rm вызовов для любого пользователя.
Вы можете использовать псевдоним rm - rm -I, который
запрашивает подтверждение, как только он удалит каталог или более 3 файлов, если вы не укажете -f, который отменяет предыдущие опции -I.--one-file-system является еще одной возможной защитой от непреднамеренного удаления, которое я использую в моем псевдониме rm.
Чтобы создать такой псевдоним, используйте команда:
alias rm='rm -I --one-file-system'
Вы можете поместить ее в свои ~/.bashrc или даже /etc/bash.bashrc.
$ sudo rm -r /etc/apt/sources.list.d /*
rm: remove all arguments?
Для подтверждения типа yes или его перевод в ваш язык или первую букву любого слова и нажмите Enter. Любой другой вход, в том числе ни один, не прерывает операцию.
sudo предоставляет опцию -k, --reset-timestamp, см. man sudo:
При использовании в сочетании с командой или параметром, который может потребовать пароль, этот параметр приведет к тому, что sudo будет игнорировать пользовательские кешированные учетные данные. В результате sudo предложит ввести пароль (если это требуется политикой безопасности) и не будет обновлять кэшированные учетные данные пользователя.Вы можете написать простую оболочку для тестирования sudo для rm -rf /* и запускать
sudo -k rm -rf /*
вместо этого, например. например:
sudo ()
{
[[ "$*" == "rm -rf /*" ]] && opt="-k";
/usr/bin/sudo $opt "$@"
}
Тестирование с помощью echo a здесь.
$ sudo echo
[sudo] password for dessert:
$ sudo echo
$ sudo echo a
[sudo] password for dessert:
a
$ sudo echo a
[sudo] password for dessert:
a
Если вы хотите каждый раз, когда вы запускаете rm в общем случае, вы можете адаптировать вышеуказанную функцию следующим образом:
sudo ()
{
[[ "$1" == "rm" ]] && opt="-k";
/usr/bin/sudo $opt "$@"
}
Если вы хотите каждый как общие вызовы команд, так и конкретные командные строки Я рекомендую использовать case, например:
sudo ()
{
case "$*" in
rm*) opt="-k" ;;
"mv /home"*) opt="-k" ;;
"ln -s /usr/bin/fish /bin/sh") opt="-k" && echo "Don't you dare!" ;;
*) opt="" ;;
esac;
/usr/bin/sudo $opt "$@"
}
Обратите внимание, что эти подходы не будут работать, если вы запустите sudo с параметрами - возможные решения - [[ "$*" =~ " rm " ]] для проверки строки «rm», окруженной пробелами, или *" rm "*) с case, чтобы поймать любую командную строку, содержащую «rm».
Вы можете установить timestamp_timeout на 0 для определенных команд в /etc/sudoers. Создайте файл visudo -f /etc/sudoers.d/pduck со следующим содержимым:
Cmnd_Alias DANGEROUS = /bin/rm
Defaults!DANGEROUS timestamp_timeout=0
pduck ALL = (ALL:ALL) DANGEROUS
Теперь пользователю pduck всегда задают пароль при запуске sudo rm (независимо от того, какие дополнительные параметры указаны), хотя пользователь является членом группы sudo, а sudo запоминает свой пароль для других команд.
Недостатком является то, что вы не можете легко добавить параметры в строку /bin/rm в файле, чтобы дополнительно ограничить это. Ну ... вы можете, например:
Cmnd_Alias DANGEROUS = /bin/rm -f
, но тогда вы просто получите запрос точно sudo rm -f, а не (снова) для sudo rm -rf, например.
Одним из способов было бы использовать safe-rm. Это будет ТОЛЬКО адресовать использование «rm» и предотвращать запуск определенных версий «rm». Это включает удаление вашей корневой системы, но также может использоваться для предотвращения удаления связанных с системой каталогов, таких как «/ usr /» или «/ var /». Из ссылки:
Предотвращение случайного удаления важных файлов Safe-rm - это средство безопасности, предназначенное для предотвращения случайного удаления важных файлов путем замены /bin/rm на оболочку, которая проверяет данные аргументы против настраиваемый черный список файлов и каталогов, которые никогда не должны удаляться. Пользователи, которые пытаются удалить один из этих защищенных файлов или каталогов, не смогут этого сделать, и вместо этого будут показаны предупреждающее сообщение:$ rm -rf /usr
Skipping /usr
(Защищенные пути могут быть установлены как на уровне сайта, так и на уровне пользователей.) Восстановление важных файлов, которые вы по ошибке может быть довольно сложным. Защитите себя сегодня, установив safe-rm и уменьшите вероятность того, что вам нужно будет обратиться в службу восстановления данных! Этот ответ не касается части sudo вашего вопроса, но, с другой стороны, он рассматривает способ уменьшения опасности случайных rm вызовов для любого пользователя.
Вы можете использовать псевдоним rm - rm -I, который
запрашивает подтверждение, как только он удалит каталог или более 3 файлов, если вы не укажете -f, который отменяет предыдущие опции -I.--one-file-system является еще одной возможной защитой от непреднамеренного удаления, которое я использую в моем псевдониме rm.
Чтобы создать такой псевдоним, используйте команда:
alias rm='rm -I --one-file-system'
Вы можете поместить ее в свои ~/.bashrc или даже /etc/bash.bashrc.
$ sudo rm -r /etc/apt/sources.list.d /*
rm: remove all arguments?
Для подтверждения типа yes или его перевод в ваш язык или первую букву любого слова и нажмите Enter. Любой другой вход, в том числе ни один, не прерывает операцию.
sudo предоставляет опцию -k, --reset-timestamp, см. man sudo:
При использовании в сочетании с командой или параметром, который может потребовать пароль, этот параметр приведет к тому, что sudo будет игнорировать пользовательские кешированные учетные данные. В результате sudo предложит ввести пароль (если это требуется политикой безопасности) и не будет обновлять кэшированные учетные данные пользователя.Вы можете написать простую оболочку для тестирования sudo для rm -rf /* и запускать
sudo -k rm -rf /*
вместо этого, например. например:
sudo ()
{
[[ "$*" == "rm -rf /*" ]] && opt="-k";
/usr/bin/sudo $opt "$@"
}
Тестирование с помощью echo a здесь.
$ sudo echo
[sudo] password for dessert:
$ sudo echo
$ sudo echo a
[sudo] password for dessert:
a
$ sudo echo a
[sudo] password for dessert:
a
Если вы хотите каждый раз, когда вы запускаете rm в общем случае, вы можете адаптировать вышеуказанную функцию следующим образом:
sudo ()
{
[[ "$1" == "rm" ]] && opt="-k";
/usr/bin/sudo $opt "$@"
}
Если вы хотите каждый как общие вызовы команд, так и конкретные командные строки Я рекомендую использовать case, например:
sudo ()
{
case "$*" in
rm*) opt="-k" ;;
"mv /home"*) opt="-k" ;;
"ln -s /usr/bin/fish /bin/sh") opt="-k" && echo "Don't you dare!" ;;
*) opt="" ;;
esac;
/usr/bin/sudo $opt "$@"
}
Обратите внимание, что эти подходы не будут работать, если вы запустите sudo с параметрами - возможные решения - [[ "$*" =~ " rm " ]] для проверки строки «rm», окруженной пробелами, или *" rm "*) с case, чтобы поймать любую командную строку, содержащую «rm».
Вы можете установить timestamp_timeout на 0 для определенных команд в /etc/sudoers. Создайте файл visudo -f /etc/sudoers.d/pduck со следующим содержимым:
Cmnd_Alias DANGEROUS = /bin/rm
Defaults!DANGEROUS timestamp_timeout=0
pduck ALL = (ALL:ALL) DANGEROUS
Теперь пользователю pduck всегда задают пароль при запуске sudo rm (независимо от того, какие дополнительные параметры указаны), хотя пользователь является членом группы sudo, а sudo запоминает свой пароль для других команд.
Недостатком является то, что вы не можете легко добавить параметры в строку /bin/rm в файле, чтобы дополнительно ограничить это. Ну ... вы можете, например:
Cmnd_Alias DANGEROUS = /bin/rm -f
, но тогда вы просто получите запрос точно sudo rm -f, а не (снова) для sudo rm -rf, например.
Одним из способов было бы использовать safe-rm. Это будет ТОЛЬКО адресовать использование «rm» и предотвращать запуск определенных версий «rm». Это включает удаление вашей корневой системы, но также может использоваться для предотвращения удаления связанных с системой каталогов, таких как «/ usr /» или «/ var /». Из ссылки:
Предотвращение случайного удаления важных файлов Safe-rm - это средство безопасности, предназначенное для предотвращения случайного удаления важных файлов путем замены /bin/rm на оболочку, которая проверяет данные аргументы против настраиваемый черный список файлов и каталогов, которые никогда не должны удаляться. Пользователи, которые пытаются удалить один из этих защищенных файлов или каталогов, не смогут этого сделать, и вместо этого будут показаны предупреждающее сообщение:$ rm -rf /usr
Skipping /usr
(Защищенные пути могут быть установлены как на уровне сайта, так и на уровне пользователей.) Восстановление важных файлов, которые вы по ошибке может быть довольно сложным. Защитите себя сегодня, установив safe-rm и уменьшите вероятность того, что вам нужно будет обратиться в службу восстановления данных!