andreafrancia / trash-cli

Command line interface to the freedesktop.org trashcan.
GNU General Public License v2.0
3.58k stars 179 forks source link

PermissionError: [Errno 13] Permission denied: '/proc/filesystems' #283

Closed babaric-dev closed 10 months ago

babaric-dev commented 1 year ago

When I use trash-empty or trash-rm, this error appears:

Traceback (most recent call last):
  File "/usr/local/bin/trash-rm", line 5, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/trashcli/rm.py", line 102, in main
    cmd.run(sys.argv, os.getuid())
  File "/usr/local/lib/python3.10/dist-packages/trashcli/rm.py", line 69, in run
    for event, args in scanner.scan_trash_dirs(self.environ, uid):
  File "/usr/local/lib/python3.10/dist-packages/trashcli/trash_dirs_scanner.py", line 82, in scan_trash_dirs
    for volume in self.volumes_listing.list_volumes(environ):
  File "/usr/local/lib/python3.10/dist-packages/trashcli/list_mount_points.py", line 18, in os_mount_points
    fstypes += set([p.fstype for p in psutil.disk_partitions()])
  File "/usr/lib/python3/dist-packages/psutil/__init__.py", line 2021, in disk_partitions
    ret = _psplatform.disk_partitions(all)
  File "/usr/lib/python3/dist-packages/psutil/_pslinux.py", line 1275, in disk_partitions
    with open_text("%s/filesystems" % procfs_path) as f:
  File "/usr/lib/python3/dist-packages/psutil/_common.py", line 725, in open_text
    return open(fname, "rt", **kwargs)
PermissionError: [Errno 13] Permission denied: '/proc/filesystems'

even when files are successfully removed

andreafrancia commented 1 year ago

There is something unexpected in your system configuration.

Please try also these commands and share the output:

babaric-dev commented 1 year ago

It seems to be an issue of psutil. I reported it and they already fixed it.

babaric-dev commented 1 year ago

Inside list_mount_points.py, adding all=True when calling psutil.disk_partitions will fix the issue. Are there any side effects? If not, please use my suggestion.

andreafrancia commented 10 months ago

I used all=True

mizzunet commented 3 weeks ago

I'm facing similar issue on Android 13 with Termux

❯ trash-empty                                                               Traceback (most recent call last):                                            File "/data/data/com.termux/files/usr/bin/trash-empty", line 5, in <module>                                                                               sys.exit(main())                                                                     ^^^^^^                                                           File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/empty/main.py", line 35, in main                                              return empty_cmd.run_cmd(sys.argv[1:], os.environ, os.getuid())                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^           File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/empty/empty_cmd.py", line 75, in run_cmd                                      return self.empty_action.run_action(args)                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                 File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/empty/empty_action.py", line 68, in run_action                                delete_pass = self.guard.ask_the_user(args.interactive,                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                   File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/empty/guard.py", line 21, in ask_the_user                                     return self._interactive(trash_dirs)                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                      File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/empty/guard.py", line 27, in _interactive                                     trash_dirs_list = list(trash_dirs)  # type: Iterable[TrashDir]                                ^^^^^^^^^^^^^^^^                                        File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/list/trash_dir_selector.py", line 33, in select                               for dir in self.current_user_dirs.scan_trash_dirs(environ, uid):          File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/trash_dirs_scanner.py", line 81, in scan_trash_dirs                           for volume in self.volumes_listing.list_volumes(environ):                 File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/trashcli/fstab/mount_points_listing.py", line 47, in os_mount_points                   fstypes += set([p.fstype for p in psutil.disk_partitions()])                                                  ^^^^^^^^^^^^^^^^^^^^^^^^                File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/psutil/__init__.py", line 2052, in disk_partitions                                     return _psplatform.disk_partitions(all)                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                   File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/psutil/_pslinux.py", line 1338, in disk_partitions                                     with open_text("%s/filesystems" % procfs_path) as f:                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                            File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/psutil/_common.py", line 813, in open_text                                             fobj = open(                                                                       ^^^^^                                                            PermissionError: [Errno 13] Permission denied: '/proc/filesystems'

Version: 0.24.5.26

andreafrancia commented 3 weeks ago

@mizzunet please report a proper bug report opening a new issue, following the instruction and providigin all the relevant information.