apt-get пытается получить доступ к ~/.config/git/

apt-get пытается получить доступ к ~/.config/git/

При установке новых пакетов с помощью менеджера пакетов я получаю ошибку разрешений, показанную ниже. Это происходит, потому что /homeмонтируется с другого сервера, однако почему вообще происходит apt-get попытка доступа ?~/.config/git

(base) blk6@gho:~/$ sudo apt-get install libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  libssl-doc
The following NEW packages will be installed:
  libssl-dev
0 upgraded, 1 newly installed, 0 to remove and 57 not upgraded.
Need to get 1,566 kB of archives.
After this operation, 7,846 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.5 [1,566 kB]
Fetched 1,566 kB in 3s (507 kB/s)       
warning: unable to access '/home/Users/blk6/.config/git/attributes': Permission denied
warning: unable to access '/home/Users/blk6/.config/git/ignore': Permission denied
Selecting previously unselected package libssl-dev:amd64.
(Reading database ... 219434 files and directories currently installed.)
Preparing to unpack .../libssl-dev_1.1.1-1ubuntu2.1~18.04.5_amd64.deb ...
Unpacking libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
Setting up libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
warning: unable to access '/home/Users/blk6/.config/git/ignore': Permission denied

решение1

Я понятия не имею, почему ваш менеджер пакетов пытается вызвать git, но вы можете попробовать использоватьstraceУтилита для выяснения того, что происходит. Strace отслеживает системные вызовы, включая попытки открытия файлов или выполнения программ.

Чтобы исследовать вашу конкретную проблему, я бы попытался выяснить, какие команды выполняются ( -e execve) apt-getи их ответвленные дочерние процессы ( -f):

sudo strace -f -e execve apt-get install ...

Если вы удалите -e execveопцию, фильтр не будет применен, что приведет к длинному выводу. Чтобы заставить strace записать свой вывод в файл, вы можете использовать опцию -o file.txtперед командой (например, strace -f -o file.txt apt install ...).

Вы также можете использовать -e execve -e fileдля отслеживания как выполнения команд, так и попыток открытия или чтения файлов. Затем найдите вызов команды git и найдите строки выше этого вызова. Возможно, это покажет имя скрипта, из которого была вызвана команда.

Если этого все еще недостаточно, вы можете рассмотреть сканирование конфигурации apt в /etc/apt/. Возможно, вы настроили его на вызов какого-то хука. Пример поиска вызовов git:

grep -nre git /etc/apt

Если совпадений нет, вывод будет пустым, в противном случае отобразится файл, номер строки и ее содержимое.

Связанный контент