首頁  >  文章  >  運維  >  linux權限指令是什麼

linux權限指令是什麼

青灯夜游
青灯夜游原創
2021-07-26 17:06:2734046瀏覽

linux權限指令:1、chgrp指令,用來修改檔案和目錄的所屬群組;2、chown指令,用來修改檔案和目錄的擁有者和所屬群組;3、chmod指令,可以修改檔案或目錄的權限;4、umask指令,可以令新建檔案和目錄擁有預設權限。

linux權限指令是什麼

本教學操作環境:CentOS 6系統、Dell G3電腦。

Linux chgrp指令:修改檔案和目錄的所屬群組

#chgrp 指令用於修改檔案(或目錄)的所屬群組。

為了方便初學者記憶,可以將 chgrp 理解為是 "change group" 的縮寫。

chgrp 指令的用法很簡單,其基本格式為:

[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)
  • #-R(注意是大寫)選項長作用於變更目錄的所屬群組,表示更改連同子目錄中所有檔案的所屬群組資訊。

使用此指令需要注意的一點是,要被改變的群組名稱必須是真實存在的,否則指令無法正確執行,會提示 "invaild group name"。

舉個例子,當以root 身分登入Linux 系統時,主目錄中會存在一個名為install.log 的文件,我們可以使用以下方法修改此文件的所屬群組:

[root@localhost ~]# groupadd group1
#新建用于测试的群组 group1
[root@localhost ~]# chgrp group1 install.log
#修改install.log文件的所属组为group1
[root@localhost ~]# ll install.log
-rw-r--r--. 1 root group1 78495 Nov 17 05:54 install.log
#修改生效
[root@localhost ~]# chgrp testgroup install.log
chgrp: invaild group name 'testgroup'

可以看到,在具有group1 群組的前提下,我們成功修改了install.log 檔案的所屬群組,但當我們再次試圖將所屬群組修改為testgroup 時,命令執行失敗,就是因為系統的/etc/ group 檔案中,沒有testgroup 群組。

Linux chown指令:修改檔案和目錄的擁有者和所屬群組

chown 指令,可以認為是"change owner" 的縮寫,主要用於修改檔案(或目錄)的擁有者,除此之外,這個指令也可以修改檔案(或目錄)的所屬群組。

當只需要修改擁有者時,可使用下列chown 指令的基本格式:

[root@localhost ~]# chown [-R] 所有者 文件或目录
  • -R(注意大寫)選項表示連同子目錄中的所有文件,都會更改所有者。

如果需要同時變更擁有者和所屬群組,chown 指令的基本格式為:

[root@localhost ~]# chown [-R] 所有者:所属组 文件或目录

注意,在chown 指令中,擁有者和所屬群組中間也可以使用點(.),但會產生一個問題,如果使用者在設定帳號時加入了小數點(例如zhangsan.temp),就會造成系統誤判。因此,建議大家使用冒號連接所有者和所屬群組。

當然,chown 指令也支援單純的修改檔案或目錄的所屬群組,例如chown :group install.log 就表示修改install.log 檔案的所屬群組,但修改所屬群組通常使用chgrp 指令,因此並不推薦大家使用chown 指令。

另外要注意的一點是,使用chown 指令修改檔案或目錄的擁有者(或所屬者)時,要保證使用者使用者(或使用者群組)存在,否則該指令無法正確執行,會提示"invalid user" 或"invaild group"。

【範例1】

其實,修改檔案的擁有者,更多時候是為了得到更高的權限,舉一個實例:

[root@localhost ~]# touch file
#由root用户创建file文件
[root@localhost ~]# ll file
-rw-r--r--. 1 root root 0 Apr 17 05:12 file
#文件的所有者是root,普通用户user对这个文件拥有只读权限
[root@localhost ~]# chown user file
#修改文件的所有者
[root@localhost ~]# ll file
-rw-r--r--. 1 user root 0 Apr 17 05:12 file
#所有者变成了user用户,这时user用户对这个文件就拥有了读、写权限

可以看到,透過修改file 檔案的擁有者,user 使用者從其他人身份(只對此檔案有讀取權限)轉變成了擁有者身份,對此檔案擁有讀取和寫入權限。

【範例2】

Linux 系統中,使用者等級權限的分割是非常清楚的,root 使用者擁有最高權限,可以修改任何檔案的權限,而一般使用者只能修改自己檔案的權限(擁有者是自己的檔案),例如:

[root@localhost ~]# cd /home/user
#进入user用户的家目录
[root@localhost user]# touch test
#由root用户新建文件test
[root@localhost user]# ll test
-rw-r--r--. 1 root root 0 Apr 17 05:37 test
#文件所有者和所属组都是root用户
[root@localhost user]# su - user
#切换为user用户
[user@localhost ~]$ chmod 755 test
chmod:更改"test"的权限:不允许的操作 #user用户不能修改test文件的权限
[user@localhost ~]$ exit
#退回到root身份
[root@localhost user]# chown user test
#由root用户把test文件的所有者改为user用户
[root@localhost user]# su - user
#切换为user用户
[user@localhost ~]$ chmod 755 test
#user用户由于是test文件的所有者,所以可以修改文件的权限
[user@localhost ~]$ ll test
-rwxr-xr-x. 1 user root 0 Apr 17 05:37 test
#查看权限

可以看到,user 使用者無權更改所有者為root 使用者檔案的權限,只有普通使用者是這個檔案的擁有者,才可以修改檔案的權限。

【範例3】

[root@localhost ~]# chown user:group file
[root@localhost ~]# ll file
-rw-r--r--. 1 user group 0 Apr 17 05:12 file

chmod指令:修改檔案或目錄的權限

chmod 指令設定檔權限的方式有2 種,分別可以使用數字或符號來進行權限的變更。

1、chmod指令使用數字修改檔案權限

Linux 系統中,檔案的基本權限由9 個字元組成,以rwxrw-r-x 為例,我們可以使用數字來代表各個權限,各個權限與數字的對應關係如下:

r --> 4

##w --> 2

#x --> 1

由於這9 個字元分屬3 類用戶,因此每種用戶身份包含3 個權限(r、w、x),透過將3 個權限對應的數字累加,最終得到的值即可作為每種使用者所擁有的權限。

拿rwxrw-r-x 來說,擁有者、所屬群組和其他人分別對應的權限值為:

擁有者= rwx = 4 2 1 = 7

所屬群組= rw- = 4 2 = 6

其他人= r-x = 4 1 = 5

所以,此權限對應的權限值就是765。

使用数字修改文件权限的 chmod 命令基本格式为:

[root@localhost ~]# chmod [-R] 权限值 文件名
  • -R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。

例如,使用如下命令,即可完成对 .bashrc 目录文件的权限修改:

[root@localhost ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 Sep 22 2004 .bashrc
[root@localhost ~]# chmod 777 .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc

再举个例子,通常我们以 Vim 编辑 Shell 文件批处理文件后,文件权限通常是 rw-rw-r--(644),那么,如果要将该文件变成可执行文件,并且不让其他人修改此文件,则只需将此文件的权限该为 rwxr-xr-x(755)即可。

2、chmod命令使用字母修改文件权限

既然文件的基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx),chmod 命令中用 u、g、o 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使用 r、w、x 分别表示读、写、执行权限。

使用字母修改文件权限的 chmod 命令,其基本格式如下图所示。

linux權限指令是什麼

例如,如果我们要设定 .bashrc 文件的权限为 rwxr-xr-x,则可执行如下命令:

[root@localhost ~]# chmod u=rwx,go=rx .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc

再举个例子,如果想要增加 .bashrc 文件的每种用户都可做写操作的权限,可以使用如下命令:

[root@localhost ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc
[root@localhost ~]# chmod a+w .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc

umask命令:令新建文件和目录拥有默认权限

Linux 通过使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的。

那么,我们如何得知 umask 默认权限的值呢?直接通过 umask 命令即可:

[root@localhost ~]# umask
0022
#root用户默认是0022,普通用户默认是 0002

umask默认权限的修改方法

umask 权限值可以通过如下命令直接修改:

[root@localhost ~]# umask 002
[root@localhost ~]# umask
0002
[root@localhost ~]# umask 033
[root@localhost ~]# umask
0033

不过,这种方式修改的 umask 只是临时有效,一旦重启或重新登陆系统,就会失效。如果想让修改永久生效,则需要修改对应的环境变量配置文件 /etc/profile。例如:

[root@localhost ~]# vim /etc/profile
...省略部分内容...
if [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; then
    umask 002
    #如果UID大于199(普通用户),则使用此umask值
else
    umask 022
    #如果UID小于199(超级用户),则使用此umask值
fi
…省略部分内容…

这是一段 Shell 脚本程序,不懂也没关系,大家只需要知道,普通用户的 umask 由 if 语句的第一段定义,而超级用户 root 的 umask 值由 else 语句定义即可。 修改此文件,则 umask 值就会永久生效。

相关推荐:《Linux视频教程

以上是linux權限指令是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn