本節(jié)所講內(nèi)容:
7.1文件的基本權限:r w x (UGO)
7.1.1對于文件與文件夾r w x的不同含義
[root@node-1 ~]# ll /etc/passwd
-rw-r–r– 1 root root 1076 Jan 19 19:40 passwd
: 文件類型
主要文件類型有以下幾種
表示普通文件
d 表示文件夾
c 表示字符型設備文件如鍵盤等
b 表示塊型設備文件如硬盤、光驅等
p 表示命名管道文件
l 表示符號鏈接文件
s 表示socket套接口文件
例:列舉一些文件說明
#ll /dev/sda /bin /etc/passwd /dev/tty0
lrwxrwxrwx. 1 root root 7 May 19 2018 /bin -> usr/bin
brw-rw—- 1 root disk 8, 0 Feb 5 2020 /dev/sda
crw–w—- 1 root tty 4, 0 Feb 5 2020 /dev/tty0
-rw-r–r– 1 root root 1076 May 19 2018 /etc/passwd
1)對文件來講:
r:讀取內(nèi)容
w:寫入內(nèi)容
x:執(zhí)行
2)對文件夾來講:
r:查看目錄里有什么
w:在目錄中刪除、新建、重命名、移動等操作
x:可以進入目錄
7.1.2文件擁有者
UGO:所有者(owner)–用戶組(group)–其它用戶(other)
所有者: 文件所有及創(chuàng)建者
用戶組: 是具有相同權限用戶的邏輯集合,為了管理方便
其它用戶:除了owner與group外的用戶都包含在內(nèi)
7.1.3分解認識權限與用戶
rw- r– r– 1 root root 1076 Jan 19 19:40 passwd
文件類型 文件所有者權限 文件所屬組權限 其他用戶權限 硬鏈接數(shù) 文件擁有者 文件所屬組 文件大小 文件創(chuàng)建時間 文件名
例2: 你以什么用戶身份登錄,那么你創(chuàng)建的文件或目錄,自動成為該文件的所屬主和組
#su – wangtao
$ pwd
/home/wangtao
$ touch aa.txt
$ ll
-rw-rw-r– 1 wangtao wangtao 0 Feb 4 16:12 aa.txt
7.1.4 更改文件的屬主和屬組
改變文件的所屬關系用到命令:
chown:可以用來改變文件(或目錄)的屬主
-R:可以修改目錄擁有者及屬組,包括目錄下的文件
主要格式如下:
chown :wangtao /opt/password –將/opt/password所屬組修改為wangtao這個組
chown wangtao :wangtao /opt/password –將/opt/password修改為wangtao用戶為擁有者,所屬組修改為wangtao這個組
chown -R :wangtao /opt –將/opt文件夾所屬組修改為wangtao這個組
文件所有者一定可以寫文件。 就像root可以對shadow強制寫。 因shadow的擁有者是root
7.1.5修改權限
7.1.5.1 使用字符設定
修改權限用的命令:chmod
作用:修改文件,目錄的權限
語法:chmod [對誰操作] [操作符] [賦于什么權限] 文件名
對誰操作:
u—-> 用戶user,表示文件或目錄的所有者
g—->用戶組group,表示文件或目錄所屬的用戶組
o—->其它用戶others
a—->所有用戶all
操作符:
操作符 #添加某個權限 ;
操作符 – # 減少某個權限 ;
操作符 = #直接給定一個具體權限
權限:r w x
此法是添加或減少權限,也可用數(shù)值表示
使用八進制(0-7)數(shù)字表示權限法
rw- rw- r– 1 wangtao wangtao 0 Feb 4 16:12 aa.txt
數(shù)值:421 421 421
例3:
#chmod g x /opt/passwd
#chmod 644 /opt/passwd
7.1.6有三種權限可以應用:讀取,寫入與執(zhí)行,這些權限對訪問文件和目錄的影響如下:
權限 對文件的影響 對目錄的影響
r(讀取) 可以讀取文件的內(nèi)容 可以列出目錄的內(nèi)容(文件名)
w(寫入) 可以更改文件的內(nèi)容 可以創(chuàng)建或刪除目錄中的任意文件
x(執(zhí)行) 可以作為命令執(zhí)行文件 可以訪問目錄的內(nèi)容(取決于目錄中文件的權限)
7.1.7umask值對權限的影響
文件的默認最大權限:666
文件夾的默認最大權限:777
根據(jù)設置的umask值去掉相關的權限,對于umask值為奇數(shù)時,相應位上減1后再用默認最大權限減去相應的值即可
umask值為偶數(shù)用默認最大權限減去相應的值即可
如:umask=033 則算默認文件的權限是:666-(033-011)=666-022就可以了
umask=044 則算默認文件的權限是:666-(044)=622就可以了
7.2文件的特殊權限:suid sgid sticky和文件擴展權限ACL
7.2.1 文件的特殊權限:suid sgid sticky
1、SUID(set uid設置用戶ID):限定:只能設置在二進制可執(zhí)行程序上面。對目錄設置無效
功能:程序運行時的權限從執(zhí)行者變更成程序所有者的權限
說明:/usr/bin/passwd 具體此權限,這樣普通用戶也可以修改密碼
2、SGID:限定:既可以給二進制可執(zhí)行程序設置,也可以對目錄設置
功能:在設置了SGID權限的目錄下建立文件時,新創(chuàng)建的文件的所屬組會,繼承上級目錄的所屬組
說明:如果想目錄下新建文件繼承上級目錄權限,設置此權限位
3、Stickybit:粘滯位權限是針對目錄的,對文件無效,也叫防刪除位
限定:只作用于目錄
功能:目錄下創(chuàng)建的文件只有root、文件創(chuàng)建者、目錄所有者才能刪除。
說明:/tmp目錄有此權限位,其目錄下的文件也只有root與owner可以刪除
7.2.2 文件擴展權限ACL
擴展ACL :access control list
目的是解決用rwx權限無法解決的權限需求
查看擴展權限:getfacl 文件名
#getfacl /home/wangtao/aa.txt
getfacl: Removing leading \\\’/\\\’ from absolute path names
[root@node-1 ~]# file: home/wangtao/aa.txt
[root@node-1 ~]# owner: wangtao
[root@node-1 ~]# group: wangtao
user::rw-
group::rw-
other::r–
設置擴展權限:setfacl 【參數(shù)】 文件名
-d:增加個默認的擴展訪問權限
-m:新建擴展權限
-R:一定要在-m前面,表示目錄下所有文件
-x:去掉單個權限
例1:
[root@node-1 ~]# setfacl -R -m u:lee:rw- testdirectory/? #-R一定要在-m前面,表示目錄下所有文件
[root@node-1 ~]# setfacl -x u:mk /tmp/a.txt # 去掉單個權限
[root@node-1 ~]# setfacl -b /tmp/a.txt # 去掉所有acl權限
例2:
[root@node-1 ~]# mkdir /opt/test
[root@node-1 ~]# setfacl -m d:u:wangtao:rwx /opt/test
[root@node-1 ~]# getfacl /opt/test
getfacl: Removing leading \\\’/\\\’ from absolute path names
[root@node-1 ~]# file: opt/test
[root@node-1 ~]# owner: root
[root@node-1 ~]# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:wangtao:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@node-1 ~]# touch /opt/test/aa.txt
[root@node-1 ~]# getfacl /opt/test/aa.txt
getfacl: Removing leading \\\’/\\\’ from absolute path names
[root@node-1 ~]# file: opt/test/aa.txt
owner: root
group: root
user::rw-
user:wangtao:rwx #effective:rw-
group::r-x #effective:r–
mask::rw-
other::r–
7.3無法‘刪除’文件之謎–擴展屬性
命令:chattr 設置文件屬性
參數(shù): a 只能追加內(nèi)容 ; i 不能被修改
如果增加屬性則用:
如果去掉屬性則用:-
例:
[root@node-1 ~]# chattr i /opt/passwd 增加不能修改屬性
[root@node-1 ~]#chattr -i /opt/passwd 去掉不能修改屬性
命令:lsattr 設置文件屬性
例:
[root@node-1 ~]#lsattr /opt/passwd
—-i———– /opt/passwd
更多關于云服務器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn