Linux-權限篇chmod chgrp chown

權限篇 chmod chgrp chown

chmod 777 文件名
chgrp 用戶名 文件名 -R
chown 用戶名 文件名 -R

-R表示遞歸目錄下所有文件

一、修改文件所屬組羣——chgrp

修改文件所屬組羣很簡單-chgrp命令,就是change group的縮寫(我們可以利用這些來記憶命令)
語法:chgrp 組羣 文件名/目錄
舉例:

[root@redhat ~]# groupadd groupa
[root@redhat ~]# groupadd groupb
[root@redhat ~]# useradd   -g groupa zgz
[root@redhat ~]# su - zgz
[zgz@redhat ~]$ touch filea
[zgz@redhat ~]$ touch fileb
[zgz@redhat ~]$ ls -l
total 8
-rw-r--r--  1 zgz groupa 0 Sep 26 05:48 filea
-rw-r--r--  1 zgz groupa 0 Sep 26 05:50 fileb
          --
[root@redhat zgz]# chgrp  groupb filea      --改變filea所屬羣組
[root@redhat zgz]# ls -l
total 8
-rw-r--r--  1 zgz groupb 0 Sep 26 05:48 filea
-rw-r--r--  1 zgz groupa 0 Sep 26 05:50 fileb

二、修改文件擁有者——chown

修改組羣的命令使chgrp,即change group,那麼修改文件擁有者的命令自然就是chown,即change owner。chown功能很多,不僅僅能更改文件擁有者,還可以修改文件所屬組羣。如果需要將某一目錄下的所有文件都改變其擁有者,可以使用-R參數。 語法如下:
chown [-R] 賬號名稱 文件/目錄
chown [-R] 賬號名稱:組羣 文件/目錄
舉例:

[root@redhat zgz]# ls -l
total 20
-rw-r--r--  1 zgz groupb    0 Sep 26 05:48 filea
-rw-r--r--  1 zgz groupa    3 Sep 26 05:59 fileb
drwxr-xr-x  2 zgz groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chown myy fileb --修改fileb的擁有者爲myy
[root@redhat zgz]# ls -l
total 20
-rw-r--r--  1 zgz groupb    0 Sep 26 05:48 filea
-rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
drwxr-xr-x  2 zgz groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chown myy:groupa filea --修改filea的擁有者爲myy,並且同
[root@redhat zgz]# ls -l時修改組羣爲groupa
total 20
-rw-r--r--  1 myy groupa    0 Sep 26 05:48 filea
-rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
drwxr-xr-x  2 zgz groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chown -R myy  zgzdir                同時改變其下所有文件擁有者
total 20
-rw-r--r--  1 myy groupa    0 Sep 26 05:48 filea
-rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
drwxr-xr-x  2 myy groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# cd zgzdir/
[root@redhat zgzdir]# ls -l
total 8
-rw-r--r--  1 myy groupa 0 Sep 26 06:07 filec
-rw-r--r--  1 myy groupa 0 Sep 26 06:07 filed

三、改變文件權限——chmod

1.用數字來改變文件權限

我們已經瞭解了-rw-r–r-- 所表示含義,linux爲每一個權限分配一個固定的數字:

  • r: 4(讀權限)

  • w: 2(寫權限)

  • x: 1(執行權限)
    我們再將這些數字相加,就得到每一組的權限值,例如
    -rw-r–r-- 1 myy groupa 0 Sep 26 06:07 filed
    第一組(user):rw- = 4+2+0 = 6
    第二組(group):r-- = 4+0+0 = 4
    第三組(others):r-- = 4+0+0 = 4
    那麼644就是fileb權限的數字表示值。
    如果我們想改變某一個文件的權限,首先需要將權限轉化爲數字組合,例如我們想得到-rwxrw-r–,那麼就應該得到數字組合:[4+2+1] ,[4+2+0],[4+0+0]=764,然後再用chmod命令去修改
    chmod語法:
    ** chmod xyz 文件/目錄 **
    舉例:

    [root@redhat zgzdir]# ls -l
    total 8
    -rw-r--r--  1 myy groupa 0 Sep 26 06:07 filec
    -rw-r--r--  1 myy groupa 0 Sep 26 06:07 filed
    [root@redhat zgzdir]# chmod 777 filec--將filec的權限改變爲777
    [root@redhat zgzdir]# ls -l
    total 8
    -rwxrwxrwx  1 myy groupa 0 Sep 26 06:07 filec
    -rw-r--r--  1 myy groupa 0 Sep 26 06:07 filed
    [root@redhat zgzdir]# chmod 750 filed--將filed的權限改變爲750
    [root@redhat zgzdir]# ls -l
    total 8
    -rwxrwxrwx  1 myy groupa 0 Sep 26 06:07 filec
    -rwxr-x---  1 myy groupa 0 Sep 26 06:07 filed
    
2、用字符來改變文件權限

還有一種改變權限的方法,我們已經瞭解到,文件權限分爲三組,分別是user,group,others,那麼我們可以用u,g,o分別代表三組,另外,a(all)代表全部,而權限屬性即可用r,w,x三個字符來表示,那麼請看下面的語法:
chmod u/g/o/a +(加入)/-(除去)/=(設定) r/w/x 文件或者目錄

舉例:
我們想使filed文件得到:u:可讀,可寫,可執行; g,o:可讀,可執行

 [root@redhat zgzdir]# ls -l
  total 8
  -rwxrwxrwx  1 myy groupa 0 Sep 26 06:07 filec
  -rwxr-x---  1 myy groupa 0 Sep 26 06:07 filed
  [root@redhat zgzdir]# chmod u=rwx,go=rx filed--修改filed的文件屬性
  [root@redhat zgzdir]# ls -l
  total 8
  -rwxrwxrwx  1 myy groupa 0 Sep 26 06:07 filec
  -rwxr-xr-x  1 myy groupa 0 Sep 26 06:07 filed

其中g和o也可以用“,”分開來分別設定。
假設目前我不知道各組權限如何,只是想讓所有組都增加“x”權限,那麼我們可以用chmod a+x filename來實現,
舉例:

   [root@redhat zgz]# ls -l
   total 24
   -rw-r--r--  1 myy groupa    0 Sep 26 05:48 filea
   -rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
   -rw-r--r--  1 zgz groupa    0 Sep 26 06:39 fileg
   drwxr-xr-x  2 myy groupa 4096 Sep 26 06:07 zgzdir
   [root@redhat zgz]# chmod a+x filea--修改filea的文件屬性,所有組都增加“x”權限
   [root@redhat zgz]# ls -l
   total 24
   -rwxr-xr-x  1 myy groupa    0 Sep 26 05:48 filea
   -rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
   -rw-r--r--  1 zgz groupa    0 Sep 26 06:39 fileg
   drwxr-xr-x  2 myy groupa 4096 Sep 26 06:07 zgzdir

如果想除去某一權限,可以用“-”來操作,
舉例:

   [root@redhat zgz]# ls -l
   total 24
   -rwxr-xr-x  1 myy groupa    0 Sep 26 05:48 filea
   -rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
   -rw-r--r--  1 zgz groupa    0 Sep 26 06:39 fileg
   drwxr-xr-x  2 myy groupa 4096 Sep 26 06:07 zgzdir
   [root@redhat zgz]# chmod a-x filea-修改filea文件屬性所有組都除去“x”權限
   [root@redhat zgz]# ls -l
   total 24
   -rw-r--r--  1 myy groupa    0 Sep 26 05:48 filea
   -rw-r--r--  1 myy groupa    3 Sep 26 05:59 fileb
   -rw-r--r--  1 zgz groupa    0 Sep 26 06:39 fileg
   drwxr-xr-x  2 myy groupa 4096 Sep 26 06:07 zgzdir
   [root@redhat zgz]#

友情提醒:
chgrp,chown,chmod這些命令默認的情況下只有root有權限執行,大家有時可能會用普通賬戶去修改文件權限,linux會提示你沒有這個權限。因此大家一定要注意當前用戶,例如:

   [zgz@redhat ~]$ chgrp groupb filea
   chgrp: changing group of `filea': Operation not permitted
   --zgz沒有權限來改變‘filea’的組羣
注: 文章來自浩總的guide知識庫 ,在裏面你總可以發現你需要的編程知識,不管是用來準備面試,還是日常鞏固知識,攻克難點都很合適,目前還在持續更新。

地址: https://github.com/wuhaocn/guide-doc.git 覺得不錯的,給個star。

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