『無慾則無求』Linux常用命令 — 23、基本權限命令

  • chmod命令
  • chown命令
  • chgrp命令

1、chmod命令

修改權限的命令chmod,其基本信息如下。

  • 命令名稱:chmod。
  • 英文原意:change file mode bits。
  • 所在路徑:/bin/chmod。
  • 執行權限:所有用戶。
  • 功能描述:修改文件的權限模式。
命令格式
[root@localhost ~ ] # chmod [選項] 權限模式 文件名
選項:
-R:遞歸設置權限,也就是給子目錄中的所有文件設定權限

2、權限模式

chmod命令的權限模式的格式是[ugoa][+-=][perms],也就是[用戶身份][賦予方式][權限]的格式,我們來解釋一下。

(1)用戶身份。

  • u:代表所有者(user)。
  • g:代表所屬組(group)。
  • o:代表其他人(other)。
  • a:代表全部身份(all)。

(2)賦予方式。

  • +:加入權限。
  • -:減去權限。
  • =:設置權限。

(3)權限。

  • r:讀取權限(read)。
  • w:寫權限(write)。
  • x:執行權限(execute)。
abc文件
[root@192 ~]# ll
-rw-r--r--. 1 root root   0 12月 29 21:41 abc

1.給abc文件的所有者添加執行權限。
[root@192 ~]# chmod u+x abc 
[root@192 ~]# ll
-rwxr--r--. 1 root root     0 12月 29 21:41 abc

2.同時給多個身份賦予權限,之間用逗號隔開。
[root@192 ~]# chmod g+w,o+w abc 
[root@192 ~]# ll
-rwxrw-rw-. 1 root root     0 12月 29 21:41 abc

3.直接給對應的身份賦予想要的權限,用=[root@192 ~]# chmod u=rwx,g=rwx,o=rwx abc 
[root@192 ~]# ll
-rwxrwxrwx. 1 root root     0 12月 29 21:41 abc

3、數字權限

數字權限的賦予方式是最簡單的,但是不如之前的字母權限好記、直觀。
我們來看看這些數字權限的含義。

  • 4:代表“r”權限。
  • 2:代表“w”權限。
  • 1:代表“x”權限。

說明:
rwx代表讀寫執行的權限,我們把1代表有權限,0代表沒有權限,則111帶便三個權限都有,把111看成一個二進制數,轉義成十進制就是7,101則爲5,以此類推。

4、文件常用權限

數字權限的賦予方式更加簡單,但是需要用戶對這幾個數字更加熟悉。其實常用權限也並不多,只有如下幾個。

  • 644:這是文件的基本權限,代表所有者擁有讀、寫權限,而所屬組和其他人擁有隻讀權限。(文件的標準權限就是這個權限)
  • 755:這是文件的執行權限和目錄的基本權限,代表所有者擁有讀、寫和執行權限,而所屬組和其他人擁有讀和執行權限。
  • 777:這是最大權限。在實際的生產服務器中,要盡力避免給文件或目錄賦予這樣的權限,這會造成一定的安全隱患。(代表所有人都擁有對該文件的最大權限,實際工作中不可這麼設置。)

5、chown命令

chown命令是修改文件和目錄的所有者和所屬組的命令,其基本信息如下。

  • 命令名稱:chown。
  • 英文原意:change file owner and group。
  • 所在路徑:/bin/chown。
  • 執行權限:所有用戶。
  • 功能描述:修改文件和目錄的所有者和所屬組。
命令格式
[root@localhost ~ ] # chown [選項] 所有者:所屬組 文件或目錄
選項:
-R:遞歸設置權限,也就是給子目錄中的所有文件設置權限

注意:在新安裝的Linux系統中,是有大量的系統用戶的,但是這些系統用戶是不能登陸的,能登陸的用戶只有root用戶。

演示:登陸用戶爲root

1.文件的所有者爲用戶,所以需要先創建一個普通用戶user1。
[root@192 ~]# useradd user1
[root@192 ~]# passwd user1
更改用戶 user1 的密碼 。
新的 密碼:
無效的密碼: 過於簡單化/系統化
無效的密碼: 過於簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
# 上面兩個命令就是添加用戶和給用戶設置密碼。
# 此時是root用戶,如果是普通用戶修改自己的密碼,就需要符合密碼複雜度原則。

2.查看abc文件的擁有者和所屬組
[root@192 ~]#  ls -l abc
-rwxrwxrwx. 1 root root 0 12月 29 21:41 abc

3.修改abc文件的擁有者爲user1
[root@192 ~]# chown user1 abc
[root@192 ~]#  ls -l abc
-rwxrwxrwx. 1 user1 root 0 12月 29 21:41 abc

注意:在chown命令的描述中,是可以修改擁有者和用戶組的`change file owner and group`。所以通過chown命令是可以同時修改文件的擁有者和用戶組。

[root@192 ~]#  ls -l abc
-rwxrwxrwx. 1 user1 user1 0 12月 29 21:41 abc
[root@192 ~]# chown root:root abc
[root@192 ~]#  ls -l abc
-rwxrwxrwx. 1 root root 0 12月 29 21:41 abc

chown命令中擁有者和所屬組之間用:或.分隔都可以。

6、chgrp命令

chgrp是修改文件和目錄的所屬組的命令,其基本信息如下。

  • 命令名稱:chgrp。
  • 英文原意:change group ownership。
  • 所在路徑:/bin/chgrp。
  • 執行權限:所有用戶。
  • 功能描述:修改文件和目錄的所屬組。
同上邊chown命令

1.查看abc文件的擁有者和所屬組
[root@192 ~]#  ls -l abc
-rwxrwxrwx. 1 root root 0 12月 29 21:41 abc

2.修改abc文件的所屬組
[root@192 ~]# chgrp user1 abc
[root@192 ~]#  ls -l abc
-rwxrwxrwx. 1 root user1 0 12月 29 21:41 abc

注意:
在chown命令的演示中,只創建了user1用戶,並沒有創建user1組。但此時系統中是有user1組的。在Linux系統中,如果你添加了一個用戶,系統會默認生成一個同名的組(user1組),作爲這個用戶的初始組,所以不用在單獨創建user1的用戶組了。這與windows系統是有區別的。

7、總結

  • 1.普通用戶可以修改所有者是自己的文件的權限。

    [user1@192 ~]$ touch test
    [user1@192 ~]$ ls
    test
    [user1@192 ~]$ chmod 755 test
    [user1@192 ~]$ ls -l
    -rwxr-xr-x. 1 user1 user1 0 12月 30 00:49 test
    

    如果修改文件爲其他擁護者的權限時,只有root用戶可以。

  • 2.普通用戶不能修改文件的所有者,哪怕自己是這個文件的所有者也不行。

    [user1@localhost ~ ] $ chown user2 test
    chown:正在更改"test"的所有者:不允許的操作
    

    只有超級用戶才能修改文件的所有者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章