matteomattei / PySquashfsImage

Python library to read Squashfs image files.
GNU General Public License v3.0
50 stars 20 forks source link

Implement SquashedFile getMode as ls-style string #12

Closed nigels-com closed 5 years ago

nigels-com commented 5 years ago

For listing the permissions of files, links and directories.

Using the slack snap as an example:

$ python2 PySquashfsImage/PySquashfsImage.py slack_14.snap /lib/x86_64-linux-gnu
--------------/lib/x86_64-linux-gnu                              --------------
FOLDER /lib/x86_64-linux-gnu
    drwxr-xr-x libbsd.so.0          <dir>
    -rw-r--r-- libbsd.so.0.8.2      84976
    -rw-r--r-- libdbus-1.so.3       84976
    -rw-r--r-- libdbus-1.so.3.14.6  327216
    -rw-r--r-- libexpat.so.1        327216
    -rw-r--r-- libexpat.so.1.6.0    171056
    -rw-r--r-- libglib-2.0.so.0     171056
    -rw-r--r-- libglib-2.0.so.0.4800.2 1154768
    -rw-r--r-- libjson-c.so.2       1154768
    -rw-r--r-- libjson-c.so.2.0.0   48504
    -rw-r--r-- libkeyutils.so.1     48504
    -rw-r--r-- libkeyutils.so.1.5   18432
    -rw-r--r-- libpcre.so.3         18432
    -rw-r--r-- libpcre.so.3.13.2    460760
    -rw-r--r-- libpng12.so.0        460760
    -rw-r--r-- libpng12.so.0.54.0   156960
    -rw-r--r-- libwrap.so.0         156960
    -rw-r--r-- libwrap.so.0.7.6     39360

In comparison to the mounted filesystem:

$ ls -lah /snap/slack/14/lib/x86_64-linux-gnu/
total 2.4M
drwxr-xr-x 2 root root  441 May 22 12:59 .
drwxr-xr-x 3 root root   39 Sep 18  2018 ..
lrwxrwxrwx 1 root root   15 Jan 28  2016 libbsd.so.0 -> libbsd.so.0.8.2
-rw-r--r-- 1 root root  83K May 22 12:59 libbsd.so.0.8.2
lrwxrwxrwx 1 root root   19 Jan 13  2017 libdbus-1.so.3 -> libdbus-1.so.3.14.6
-rw-r--r-- 1 root root 320K May 22 12:59 libdbus-1.so.3.14.6
lrwxrwxrwx 1 root root   17 Jun 27  2017 libexpat.so.1 -> libexpat.so.1.6.0
-rw-r--r-- 1 root root 168K May 22 12:59 libexpat.so.1.6.0
lrwxrwxrwx 1 root root   23 Sep 18  2018 libglib-2.0.so.0 -> libglib-2.0.so.0.4800.2
-rw-r--r-- 1 root root 1.2M May 22 12:59 libglib-2.0.so.0.4800.2
lrwxrwxrwx 1 root root   18 Jan 13  2015 libjson-c.so.2 -> libjson-c.so.2.0.0
-rw-r--r-- 1 root root  48K May 22 12:59 libjson-c.so.2.0.0
lrwxrwxrwx 1 root root   18 Dec 11  2015 libkeyutils.so.1 -> libkeyutils.so.1.5
-rw-r--r-- 1 root root  18K May 22 12:59 libkeyutils.so.1.5
lrwxrwxrwx 1 root root   17 Mar 25  2016 libpcre.so.3 -> libpcre.so.3.13.2
-rw-r--r-- 1 root root 450K May 22 12:59 libpcre.so.3.13.2
lrwxrwxrwx 1 root root   18 Jul 11  2018 libpng12.so.0 -> libpng12.so.0.54.0
-rw-r--r-- 1 root root 154K May 22 12:59 libpng12.so.0.54.0
lrwxrwxrwx 1 root root   16 Jan 13  2014 libwrap.so.0 -> libwrap.so.0.7.6
-rw-r--r-- 1 root root  39K May 22 12:59 libwrap.so.0.7.6
nigels-com commented 5 years ago

In combination with the symlink improvements:

$ python2 PySquashfsImage/PySquashfsImage.py slack_14.snap /lib/x86_64-linux-gnu
--------------/lib/x86_64-linux-gnu                              --------------
FOLDER /lib/x86_64-linux-gnu
    lrwxrwxrwx libbsd.so.0 -> libbsd.so.0.8.2
    -rw-r--r-- libbsd.so.0.8.2                                                 84976
    lrwxrwxrwx libdbus-1.so.3 -> libdbus-1.so.3.14.6
    -rw-r--r-- libdbus-1.so.3.14.6                                            327216
    lrwxrwxrwx libexpat.so.1 -> libexpat.so.1.6.0
    -rw-r--r-- libexpat.so.1.6.0                                              171056
    lrwxrwxrwx libglib-2.0.so.0 -> libglib-2.0.so.0.4800.2
    -rw-r--r-- libglib-2.0.so.0.4800.2                                       1154768
    lrwxrwxrwx libjson-c.so.2 -> libjson-c.so.2.0.0
    -rw-r--r-- libjson-c.so.2.0.0                                              48504
    lrwxrwxrwx libkeyutils.so.1 -> libkeyutils.so.1.5
    -rw-r--r-- libkeyutils.so.1.5                                              18432
    lrwxrwxrwx libpcre.so.3 -> libpcre.so.3.13.2
    -rw-r--r-- libpcre.so.3.13.2                                              460760
    lrwxrwxrwx libpng12.so.0 -> libpng12.so.0.54.0
    -rw-r--r-- libpng12.so.0.54.0                                             156960
    lrwxrwxrwx libwrap.so.0 -> libwrap.so.0.7.6
    -rw-r--r-- libwrap.so.0.7.6                                                39360
matteomattei commented 5 years ago

Hi @nigels-com if you fix the conflicts I will merge the pull request

nigels-com commented 5 years ago

Sure thing.

nigels-com commented 5 years ago

I added some little fixes for things that came out of a fresh round of testing too.