The internet is changing. And to know where it's going, it's useful to know where it's been. Early internet servers were maintained by small groups or companies, and permission to make an account was restricted to a select few system administrators. Admins wrote content to public_html directories, and the world would read them. Then, as internet companies changed and technology progressed, the ability to write content expanded to allow anyone to become a creator.
The programmatic way to change the permissions of a directory or file is through a function called chmod. The name is an abbreviation of change mode. To change the permission of files (sometimes called modes) on your directory, you need to give the function a numeric code. The chmod numerical format accepts up to four digits, where the three rightmost digits define permissions for the file owner, the group, and others.
# |
Sum |
rwx |
Permission |
7 |
4(r) + 2(w) + 1(x) |
rwx |
read, write and execute |
6 |
4(r) + 2(w) |
rw- |
read and write |
5 |
4(r) + 1(x) |
r-x |
read and execute |
4 |
4(r) |
r-- |
read only |
3 |
2(w) + 1(x) |
-wx |
write and execute |
2 |
2(w) |
-w- |
write only |
1 |
1(x) |
--x |
execute only |
0 |
0 |
--- |
none |
Let's say you had a file on your server that you wanted private, then you could change the permissions to 700, meaning that you (the owner) have read, write, and execute permission (4+2+1); hopefully, because it's your file. If you wanted a group to also view it but not modify it, you might change it to 644 (you still have read/write access, but the group has read access only). You get the idea.
In Web 1.0, most of us were passive consumers in this era, and so files only needed 644 permissions. If you forgot to change the permissions of your file, then it wouldn't show up on the early internet. With Web 2.0, the social web—Facebook, Instagram, Twitter—allowed people to create their own content, and that content became the lifeblood of the big platforms. But we don't own the content, cannot modify it (looking at you: Twitter), and certainly are not allowed to execute programs on third-party servers.
As we usher in a new era of Web3, decentralized servers allow anyone to write to the blockchain. A new permissionless platform means that you or I could deploy a smart contract that executes a set of actions according to pre-defined conditions. Anyone — meaning owner, group, or other — can execute.
Several recent definitions of Web3 make the case that internet history has transitioned from the ability to read (Web1) and write (Web2), to now own (Web3). However, this analogy is incomplete. Ownership is possible today in our Web2-centric world, where we can buy digital goods using credit and debit cards. Ownership isn't the biggest revolution in Web3; execution is.
Ownership is possible because anyone can access a permissionless server (read), send a set of instructions like smart contracts underlying NFTs (write), and reap the benefits when those instructions are carried out (execute).
Chmod 777 indeed.