系统运输
文件权限
在linux上,所有内容都是文件,但取决于文件类型。 在linux系统上,使用不同的字符进行区分,如下所示:
文字
意义
普通文件
d
目录文件
l
链接文件
B
块设备文件
C
字符设备文件
p
管道文件
每个文件都有所有者和所有组,并具有各自的权限。 读取( r )写入( w )执行( x )不用于文件和目录rwx的含义
文件:
r读取文件内容的权限
w修改文件内容的权限
执行x文件内容的权限
目录:
r查看目录中文件的权限
w穿、删除或修改目录下文件的权限
r访问目录的权限
例如以下所示。
lwxrwxrwx.1 root root7feb 719:53 bin-usr/bin
dr-xr-xr-x.3根4096feb712:08引导
文件的特殊权限
SUID
SUID是对二进制文件设置的特殊权限,二进制文件执行者可以临时拥有所有者权限。 (只对具有执行权限的二进制文件有效。 )
命令是chmod u s文件名,用于将所有者权限从rwx更改为rws。 其中x为s表示您具有SUID权限,如果原所有者的权限为rw-,则为rws,其中-为大写s
例如,passwd命令:
[ root @ localhost/] # ll/bin/passwd
- rwsr-xr-x.1 root root 27832 Jan 302014/bin/passwd
SGID
SGID主要实现两个功能。
使执行者暂时拥有属于组的权限(设置具有执行权限的二进制文件) )。
在目录中创建的文件将自动继承更改目录的用户组
命令是chmod g s文件名,用于将所有组的权限从rwx更改为rws。 其中,x变为s表示具有SGID权限,如果原本所有组的权限都是rw-,则为rws,其中-为大写的s
例如:
创建目录test。 所有者和所属组是test。 如果将目录权限设置为777,则其他用户可以在test目录下创建自己的文件。 所有者和所属组是用户自己
如果设置了SGID,则其他用户在test目录下创建的文件所属的组将为test
[ root @ localhost/] # chmod 777/test
[root@localhost /]# ls -l /test
rwxrwxrwx.2 test test6feb 720:36 test
[ root @ localhost/] # su-ldeveloper-c touch/test/a.txt
[root@localhost /]# chmod g s /test
[root@localhost /]# ls -l /test
rwxrwsrwx.2 test test6feb 720:36 test
[ root @ localhost/] # su-ldeveloper-c touch/test/b.txt
[root@localhost /]# ls -l test/
- rw-r---r----1developer developer 0f EB 720:37a.txt
- rw-r---r----1developer test 0f EB 720:37b.txt
SBIT
如果某个目录具有SBIT权限,则只有该目录的所有者才能修改目录中的文件,而其他用户没有删除权限。
命令是chmod o t目录名,文件的他人权限部分的x执行权限被置换为t或者t,如果本来有x执行权限则写为r,如果本来没有x执行权限则写为t。
例如,对于系统的/tmp目录,所有用户都可以在/tmp目录下创建文件,但不能删除其他用户创建的文件。
文件隐藏属性
chattr命令
chattr命令以名为“chattr [参数]文件名”的格式设置文件的隐藏权限。 如果要将某些隐藏功能添加到文件中,则必须在命令后添加“参数”;如果要从文件中删除某些功能,则必须添加“-参数”。 命令参数如下表所示。
例如:
可以操作普通文件来创建、复盖、添加和删除。
[root@localhost ~]# touch aa.txt
[ root @ localhost~] # echohelloaa.txt
[ root @ localhost~] # echohelloaa.txt
[root@localhost ~]# rm -f aa.txt
如果将隐藏权限a添加到一个文件,则只能添加文件,不能复盖或删除文件
[root@localhost ~]# touch bb.txt
[ root @ localhost~] # chattr abb.txt
[ root @ localhost~] # echohellobb.txt
- bash:bb.txt:operationnotpermitted
[ root @ localhost~] # echohellobb.txt
[root@localhost ~]# rm -f bb.txt
RM:cannot remove‘bb.txt’: operationnotpermitted
lsattr命令
lsattr命令由&; #039; lsattr [参数]文件&; #039; 以格式显示文件的隐藏权限。 在linux系统上,必须使用lsattr命令显示文件隐藏权限
[root@localhost ~]# lsattr bb.txt
------a------ bb.txt
[root@localhost ~]# ls -l bb.txt
- rw-r---r----1root root6feb 1011:00bb.txt
文件访问控制列表
上述常规、特殊和隐藏权限的通用性-权限是为特定类型的用户设置的,如果要对指定用户进行单独的权限控制,则必须使用文件访问控制列表( ACL )。 对普通文件或目录设置ACL是指对指定用户或用户组设置文件或目录的操作权限。 如果在目录中设置了ACL,则目录中的文件会继承该ACL。 如果文件包含ACL,则文件不再继承该目录的ACL。
例如:
使用普通用户linuxprobe进入root用户的主目录时,将显示您没有权限
[ Linux probe @ localhost~~ ] $ CD/root
- bash:CD:/root:permission denied
[linuxprobe@localhost ~]$
setfacl命令
setfacl命令用户必须在&; #039; setfacl [参数]文件名&; #039; 格式管理文件的ACL规则。 文件的ACL提供了除所有者、所有组和其他人的读取、写入和执行权限以外的特殊权限控制。 可以使用setfacl命令控制对单个用户或用户组、单个文件或目录的读取、写入和执行权限。 目录必须有-R参数; 对文件使用-m参数; 如果要删除文件的ACL,请使用-b参数。
例如:
设置/root目录的用户权限,以允许普通用户linuxprobe访问/root目录。
[ root @ localhost~] # setfacl-rmu:Linux probe:rwx/root
[ root @ localhost~] # su-Linux probe
lastlog in:mon feb 1011:10:08 CST 2020 on pts/2
[ Linux probe @ localhost~~ ] $ CD/root /
[linuxprobe@localhost root]$ ls
anaconda-ks.CFG bb.txt initial-setup-ks.CFG
要删除ACL权限:
setfacl -b /root
getfacl命令
getfacl命令用户以“getfacl文件名”的格式显示在文件中设置的ACL信息。
[ root @ localhost~] # getfacl/root /
getfacl:removingleading\\\&; quot; /\&; quot; 框架solutepathnames
# file: root/
# owner: root
# group: root
user:r-x
user:linuxprobe:rwx
group:r-x
mask:rwx
other:---
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn