ll指令的顯示的信息為(當前目錄下只有nameservice1一個目錄):
drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1
上述信息分別表示:權限(drwxr-xr-x 3)、所屬用戶(hdfs)和組(hdfs)、大小(4096)、時間(4月 14 16:19)、名稱(nameservice1)。
權限中的字母一共有10位數:
其中,第1位有兩種選擇:-表示是文件,d表示是目錄。此處是d,表示nameservice1是目錄;
第2位到第4位rwx表示的是所有者(所屬用戶hdfs)的權限;
第5位到第7位r-x表示的是組(hdfs)的權限;
第8位到第10位r-x表示的是其他人(other)的權限;
另外,
r 表示文件可以被讀(read)
w 表示文件可以被寫(write)
x 表示文件可以被執行(如果它是程序的話)
- 表示相應的權限還沒有被授予
1.修改文件的權限
查看當前文件文件temp的權限信息:
ll | grep temp
-rw-rw-r-- 1 root root 4405 3月 17 11:50 temp
修改文件權限的指令:
chmod o+w temp
表示給文件temp授予其他人寫權限,現在查看temp的權限信息:
-rw-rw-rw- 1 root root 4405 3月 17 11:50 temp
我們發現第9位多出了一個w。
其中參數表示的意義為:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被讀(read)
w 表示文件可以被寫(write)
x 表示文件可以被執行(如果它是程序的話)
其中:rwx也可以用數字來代替
r ------------4
w ------------2
x ------------1
- ------------0 行動:
+ 表示添加權限
- 表示刪除權限
= 表示使之成為唯一的權限 當大家都明白了上面的東西之后,那么我們常見的以下的一些權限就很容易都明白了:
-rw------- (600) 只有所有者才有讀和寫的權限
-rw-r--r-- (644) 只有所有者才有讀和寫的權限,組群和其他人只有讀的權限
-rwx------ (700) 只有所有者才有讀,寫,執行的權限
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的權限,組群和其他人只有讀和執行的權限
-rwx--x--x (711) 只有所有者才有讀,寫,執行的權限,組群和其他人只有執行的權限
-rw-rw-rw- (666) 每個人都有讀寫的權限
-rwxrwxrwx (777) 每個人都有讀寫和執行的權限
2.修改目錄的所有者和群組
將目錄的所有者修改為root:root(第一個root表示組,第二個root表示用戶)。 該指令需要在root權限下使用。
chown -R root:root nameservice1
此時再執行ll,顯示結果為:
drwxr-xr-x 3 root root 4096 4月 14 16:19 nameservice1
將目錄換成文件的名字就可以修改文件的所有者了,例如:
chown -R root:root test.txt
只改變文件或目錄的所有者
chown -R owner: test.txt
只改變文件或目錄的群組
chown -R :group test.txt
