Linux 文件系统权限
文件的一般权限
文件详细信息
使用命令
ll
或
ls -l
查看
文件权限构成
权限针对三类对象定义
owner :所有者,缩写 ugroup :所属组,缩写 gother :其他人,缩写 o
访问者三种权限
组成模式分析
文件与目录权限含义
chmod命令
作用
chmod(change mode)
:修改文件或目录的权限
格式
# 格式1chmod [选项] [ugoa][+-=][rwx] 文件或目录...# 格式2chmod [选项] nnn 文件或目录...
参数
-R :递归修改指定目录下所有文件、子目录的权限ugoa :表示权限设置所针对的用户类别,可以是其中字母中的一个或组合, u(user) 表示文件或目录的属主 ( 所有者 ) ; g(group) 表示属组内的用户; o(others) 表示其他用户; a(all) 表示所有用户 ( 即u+g+o)+ 或 - 或 = :表示设置权限的操作动作, + 代表添加; - 代表取消; = 表示只赋予给定的权限,并取消原有的权限。rwx :用字符形式表示的所设置的权限,可以是其中一个字母或组合nnn :用数字表示的权限
chown命令
作用
修改文件或目录的所有者和属组
格式
修改文件或目录的所属者
chown -参数 所有者:所属组 文件名或目录名# 参数-R递归设置
特殊权限
概述
在
Linux
系统中,用户对文件或目录的访问权限除了
r
、
w
、
x
三种一般权限外,还有
SET
UID(SUID)
、
SET GID(SGID)
、
Sticky Bit(
粘滞位
)
三种特殊权限,用于对文件或目录进行更加灵活方
便的访问控制。
SUID
权限的含义:是为了让一般用户在执行某些程序的时候, 在程序的运行期间, 暂时获得该程
序文件所属者的权限。
SUID权限
使用场景
例如:
student
用户要更改自己的密码
student
在执行
passwd
修改自己的密码时, 其修改的密码, 最终是需要保存到
/etc/shadow
这
个文件中, 而这个文件的权限是
---------
,它的拥有者是
root
,也只有
root
可以
“
强制
”
存
储, 其他用户连看都不行
可偏偏
student
去执行
passwd
(
/usr/bin/passwd)
,却可以更新自己的密码
这就是因为有
s
权限的存在,当
s
权限在拥有者的权限位上时, 即如
-rwsr-xr-x
这样时, 称为
SUID
。
SUID
即
Set UID
,
UID
指的是拥有者的的
ID
, 而这个程序
(/usr/bin/passwd)
的拥有者
为(
root)
。
[root@server ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 32648 8月 10 2021 /usr/bin/passwd
SGID 权限
SGID
可以用在两个方面:
文件: 如果
SGID
设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将
会变成该程序文件的所属组。
目录:如 果
SGID
是设置在
A
目录上, 则在
A
目录内所建立的文件或目录的所属组, 将会是此
A
目录的所属组
设置特殊权限
为文件或目录添加三种特殊权限同样可以通过
chmod
命令来实施
,
使用
“u±s”
、
“g±s”
、
“o±t”
的字符权
限模式分别用于添加和移除
SUID
、
GUID
、
sticky
权限。
若使用数字形式的权限模式
,
可采用
“nnnn”
格式的四位八进制数字表示,其中:后面三位是一般权限的数字表示,前面第一位则是特殊权限的标志数字:
0——表示不设置特殊权限1——表示只设置sticky2——表示只设置GUID权限3——表示只设置SGID和sticky权限4——表示只设置SUID权限5——表示只设置SUID和sticky权限6——表示只设置SUID和SGID7——表示同时设置SUID、GUID、sticky3种权限
ACL 权限
作用
给指定的用户指定目录分配指定的权限。
ACL权限管理命令
查看ACL权限
格式
getfacl 文件名
设定ACL权限
格式
setfacl - 参数 文件名
参数
-m :设定 ACL 权限给用户设定 ACL 权限: setfacl -m u: 用户名 : 权限 指定文件名给用户组设定 ACL 权限: setfacl -m g: 组名 : 权限 指定文件名-x :删除指定的 ACL 权限;-b :删除所有的 ACL 权限;-d :设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;-k :删除默认 ACL 权限;-R :递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效
删除acl权限
# 删除指定用户的 ACL 权限
setfacl -x u:用户名 文件名
# 删除指定用户组的 ACL 权限
setfacl -x g:组名 文件名
# 删除文件的所有 ACL 权限
setfacl -b 文件名
权限掩码umask
新建文件权限与umask关系
在
Linux
系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权
限,该默认权限与
umask
值有关
新建文件的默认权限
=0666-umask
值
(减去)
新建目录的默认权限
=0777-umask
值
查看默认umask值
[root@server ~]# umask
0022
修改默认umask
[root@server ~]# umask 000 # 临时修改
配置网络
概念
网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口,一般是指计算机的网络接
口即网卡设备
从
RHEL7
开始引入了一种新的
“
一致网络设备命名
”
的方式为网络接口命名,该方式可以根据固件、
设备拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号,
如
:
en——
表示以太网
(Ethernet)
wl
表示无线局域网
(wlan)
ww
表示无线广域网
(wwan)
;
接下来的字符根据设备类型或位置选择,如
:
o——
表示内置
(onboard)
于主板上的集成设备
(
即集成网卡
)
及索引号
;
s——
表示是插在可以热拔插的插槽上的独立设备及索引号
;
x——
表示基于
MAC
地址命名的设备
;
p——
表示
PCI
插槽的物理位置及编号。
注意:一个网络接口,可以有多个网络连接,但同一时间只能有一个网络连接处于活动状态。
方法
nmcli命令
作用:
nmcli,可以实现创建,显示,编辑,删除,激活和停用网络连接以及控制和显示网络设备状态等
查看网卡信息
[root@server ~]# nmcli c sh
[root@server ~]# nmcli c show # 全写为:nmcli connection show
[root@server ~]# nmcli con show ens160 # 查看指定网卡的详细信息,q键退出
[root@server ~]# nmcli dev status # 查看已有设备的连接状态
[root@server ~]# nmcli dev show # 看所有网络设备详情,q键退出
激活和关闭网络连接
[root@server ~]# nmcli c up 网卡名 # 激活,也是重启网卡的一种方法
[root@server ~]# nmcli c down 网卡名 # 关闭
添加网络连接
# 例:添加网络连接ens161
[root@server ~]# nmcli c add type ethernet ifname ens160 con-name ens161
autoconnect yes ip4 192.168.48.135/24 gw4 192.168.48.2
连接 "ens161" (37bc8e79-92ea-4c01-a4af-1dfd7c687014) 已成功添加。
[root@server ~]# nmcli c up ens161 # 不能在xshell操作,否则ssh连接断掉
[root@server ~]# nmcli c show
[root@server ~]# nmcli c up ens160
设置静态IP
[root@server ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses
'192.168.48.134/24' ipv4.gateway '192.168.48.2' ipv4.dns '114.114.114.114'
[root@server ~]# nmcli c up ens160
[root@server ~]# ip a
# ipv4.method manual:手动获取
增加ip地址
[root@server ~]# nmcli c mod ens160 +ipv4.addresses 192.168.48.136/24
[root@server ~]# nmcli c up ens160
[root@server ~]# ip a
删除网络连接
# 删除上例的ens161
[root@server ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 0f83fcfd-bc6d-3866-b82b-fc4b09df2068 ethernet ens160
ens161 37bc8e79-92ea-4c01-a4af-1dfd7c687014 ethernet --
[root@server ~]# nmcli c del ens161
成功删除连接 "ens161" (37bc8e79-92ea-4c01-a4af-1dfd7c687014)。
[root@server ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 0f83fcfd-bc6d-3866-b82b-fc4b09df2068 ethernet ens160
修改配置文件
# 设置静态IP
[root@server ~]# cd /etc/NetworkManager/system-connections
[root@server system-connections]# ls
ens160.nmconnection
[root@server system-connections]# vim ens160.nmconnection
[connection]
id=ens160
uuid=d97d603d-5bb5-3d11-bfeb-11fbc8cb867d
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1682493359
[ethernet]
[ipv4]
address1=192.168.48.134/24,192.168.48.2
dns=114.114.114.114;
method=manual
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
[root@server ~]# nmcli c reload
[root@server ~]# nmcli c up ens160
# 会话和网卡的关系:一个网卡可以有多个会话,但是一个时刻只能连接到一个会话
可视化配置