This document is a WORK IN PROGRESS.
This is just a quick personal cheat sheet: treat its contents with caution!
pCloud¶
pCloud is a cloud storage that provides access to all your digital content including images, video, audio, documents, etc.
pCloud Console Client (pcldoudcc
) is the console line interface tool used to access pCloud from
your terminal. This is the application that will be detailed here.
Reference(s)
Table of contents¶
Install¶
TODO
$ sudo apt-get install cmake zlib1g-dev libboost-system-dev libboost-program-options-dev libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git mkdir console-client
$ git clone https://github.com/pcloudcom/console-client.git ./console-client/
$ cd ./console-client/pCloudCC/
$ cd lib/pclsync/
$ make clean
$ make fs
$ cd ../mbedtls/
$ cmake .
$ make clean
$ make
$ cd ../..
$ cmake .
$ make
$ sudo make install
$ sudo ldconfig
$ pcloudcc -u username -p
TODO
TODO
TODO
Install with AUR:
TODO
TODO
TODO
Config¶
-
Create a dedicated pCloud user:
-
For any user who will have to use the pcloud mount point:
-
Connect a first time:
From now on, only
$ pcloudcc -u <username>
will be needed for thepcloud
user. Indeed, the password has been saved in the/home/pcloud/.pcloud
directory, thanks to the-s
option). -
Create a mount point:
$ sudo mkdir /path/to/mount/point/for/pcloud $ sudo chown pcloud:pcloud /path/to/mount/point/for/pcloud $ sudo chmod og=rwx,o=x /path/to/mount/point/for/pcloud $ sudo chmod g+s /path/to/mount/point/for/pcloud # set setgid bit for files/dirs under /path/to/mount/point/for/pcloud to inherit group rights
-
Create a systemd service:
$ sudo vi /usr/lib/systemd/system/pcloud.service > [Install] > WantedBy=multi-user.target > > [Unit] > After=network.target > Description=pCloud Console Client systemd service > > [Service] > ExecStart=/bin/pcloudcc -d -u username -m /path/to/mount/point/for/pcloud # or `/usr/local/bin/pcloudcc` if you build it yourself > User=plcoud > Group=plcoud $ sudo systemctl daemon-reload $ sudo systemctl enable pcloud.service $ sudo systemctl start pcloud.service $ sudo systemctl status pcloud.service $ sudo journalctl -u pcloud.service
Use¶
-
Print help:
$ pcloudcc -h pCloud console client v.2.0.1 Allowed options: -h [ --help ] produce help message -u [ --username ] arg pCloud account name -p [ --password ] Ask pCloud account password -c [ --crypto ] Ask crypto password -y [ --passascrypto ] arg Use user password as crypto password also. -d [ --daemonize ] Daemonize the process. -o [ --commands ] Parent stays alive and processes commands. -m [ --mountpoint ] arg Mount point where drive to be mounted. -k [ --commands_only ] Daemon already started pass only commands -n [ --newuser ] Switch if this is a new user to be registered. -s [ --savepassword ] Save password in database.
Tips and tricks¶
Custom FUSE options¶
pCloudCC is based on FUSE (fusermount3).
At the moment (06/2023), if you want to specify your own FUSE option, e.g. by adding the
allow_other
option (see https://github.com/pcloudcom/console-client/issues/56), then you'll
have to patch the code base and (re)build pCloudCC :
$ git clone https://github.com/pcloudcom/console-client.git ./console-client/
$ cd ./console-client
$ vi pCloudCC/lib/pclsync/pfs.c
> ...
> #if defined(P_OS_LINUX)
> fuse_opt_add_arg(&args, "argv");
> fuse_opt_add_arg(&args, "-oauto_unmount");
+ > fuse_opt_add_arg(&args, "-oallow_other");
> ...
$ sudo vi /etc/fuse.conf
> # The file /etc/fuse.conf allows for the following parameters:
> #
> # user_allow_other - Using the allow_other mount option works fine as root, in
> # order to have it work as user you need user_allow_other in /etc/fuse.conf as
> # well. (This option allows users to use the allow_other option.) You need
> # allow_other if you want users other than the owner to access a mounted fuse.
> # This option must appear on a line by itself. There is no value, just the
> # presence of the option.
>
~ > user_allow_other
>
>
> # mount_max = n - this option sets the maximum number of mounts.
> # Currently (2014) it must be typed exactly as shown
> # (with a single space before and after the equals sign).
>
> #mount_max = 1000
Then (re)build pCloudCC (e.g. like described in the install section for apt
users.
Troubleshooting¶
Error libpcloudcc_lib.so: cannot open shared object file
¶
If you build pCloudCC yourself, and you encounter the error libpcloudcc_lib.so: cannot open shared
object file
when runnging pcloudcc
, then: https://stackoverflow.com/a/17892806.
If this cheat sheet has been useful to you, then please consider leaving a star here.