How to Create a Password Protected ZIP File in Linux

ZIP is a very popular compression and file packaging utility for Unix-like operating systems as well as Windows. While perusing through the zip man page, I discovered some useful options for protecting zip archives.

Read Also: How to Password Protect a Vim File in Linux

In this post, I will show you how to create a password protected zip file on the terminal in Linux. This will help you learn a practical way of encrypting and decrypting contents of zip archive files.

First install zip utility in your Linux distribution using the package manger as shown.

$ sudo yum install zip    [On CentOS/RHEL]
$ sudo dnf install zip    [On Fedora 22+]
$ sudo apt install zip    [On Debian/Ubuntu]

How to Create Password Protected ZIP in Linux

Once installed, you can use the zip command with -p flag to create a password protected zip archive called ccat-command.zip from the directory of files called ccat-1.1.0 as follows.

$ zip -p pass123 ccat-command.zip ccat-1.1.0/
Create Password Protected Zip File
Create Password Protected Zip File

However, the above method is absolutely insecure, because here the password is provided as clear-text on the command line. Secondly, it will also be stored in the history file (e.g ~.bash_history for bash), meaning another user with access to your account (more especially root user) will easily see the password.

Therefore, try to always use the -e flag, it shows a prompt allowing you to enter a hidden password as shown.

$ zip -e ccat-command.zip ccat-1.1.0/
Create Password Protect Zip Archive
Create Password Protect Zip Archive

How to Unzip Password Protected ZIP in Linux

To unzip and decrypt the content of the archive file called ccat-command.zip, use the unzip program and provide the password you entered above.

$ unzip ccat-command.zip
Decrypt ZIP Archive
Decrypt ZIP Archive

That’s It! In this post, I described how to create a password protected zip file on the terminal in Linux. If you have any queries, or other useful related tip/tricks to share, use the comment form below ping us.

If you read this far, tweet to the author to show them you care. Tweet a thanks
Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

25 thoughts on “How to Create a Password Protected ZIP File in Linux”

  1. It doesn’t work under cygwin, windows opens up the zip file without asking for a password. No protection whatsoever.

    Reply
  2. Hello Aaron,

    I thought it would be helpful to mention zip --help since there are different flags for the different versions & distros, but I believe --help is universal.

    For instance, my system / zip gives me -e for encryption and ~20 other flags, but not -p or -P so I know not to bother with them.

    Thanks for the article & excuse to play with something new. 8)

    Reply
    • @Prabhat,

      In our case, the same command worked perfectly on Ubuntu distro, may be some options differ in different Linux distros…

      Reply
  3. It doesn’t work option -e with your written method. Right syntax is:

    # zip -e ccat-command.zip ccat-1.1.0/*
    

    Do not forget about "*" at the end of line! Without "*" zip makes an archive including all files and folder above ccat-1.1.0 folder.

    Reply
      • Something strange, maybe I caught the bug yesterday. Now, it is working! But only when the folder ccat-1.1.0 doesn’t include other folder inside. If it has folders with files and so on, you must use option -r (“recursive”).

        This way:

        $ zip -e -r ccat-command.zip ccat-1.1.0/
        

        Do not work under root user! Without "#".

        Sorry for my false warning before!
        Thank you for your article!

        Reply

Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.