标志位:-rwsrwxrwxrwx
[root@zl ~]# ll a.txt
-rw-r--r--. 1 root root 0
[root@zl ~]# ./a.sh
-bash: ./a.sh: 权限不够
[root@zl ~]# chmod +s a.sh
[root@zl ~]# ll a.sh
-rwSr-Sr--. 1 root root 25 Jul2 21:18 a.sh
标志位:-rwsrwxrwx
SUID:当一个文件带有suid时,文件默认加上可执行的权限,且所有人临时具有管理员权限来执行;
标志位:drwxrwsrwx
SGID:当一个目录文件带有SGID时,所有用户在此目录下创建文件的属组都是此目录的基本组。
标志位:drwxrwxrwt
当一个目录文件带有sticky时,所有用户在此目录中不能删除属主不是自己的文件;
实际应用:
现有2普通用户redhat和gentoo,想让他们两个都能访问develop文件夹,且双方能够修改彼此创建的文件,但不能删除。
文件的访问控制列表 fileaccesscontrollist
实现目的给普通用户控制访问自己文件规则的权限。
acl添加:
setfacl-mu:用户名:权限文件 #给指定用户添加文件的权限
setfacl-mg:组名:权限文件#给指定组添加文件的权限
eg:
setfacl-mu:zl:wrxzl.out
ll
-rw-rwxr--+ 1 rootroot3217月2 21:58 zl.out
权限后面加上了“+”号
acl查看:
查看文件的访问控制列表使用命令
Getfacl 文件名
[root@zl tmp]# getfacl zl.out
# file: zl.out
# owner: root
# group: root
user::rw-
user:zl:rwx
group::r--
mask::rwx
other::r―
acl的删除
[root@zl tmp]# setfacl -x u:zl zl.out
删除对应用户在该文件上的acl
[root@zl tmp]# getfacl zl.out
# file: zl.out
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r―
删除所有acl:
[root@zl tmp]# setfacl -b zl.out
[root@zl tmp]# ll
[root@zl tmp]# getfacl zl.out
# file: zl.out
# owner: root
# group: root
user::rw-
group::r--
other::r―
注意:此时aclmask已被删除
所谓mask类似子网掩码的效果,有它存在所有acl权限只能小于等于它的权限。
Aclmask设置:
gzip选项文件
gzip压缩文件,且删除源文件
选项
-d解压缩
-n指定压缩比
Zcat在不解压的情况下查看文件内容
压缩文件名后缀:.gz
Bzip2选项压缩目的文件源文件(可多个)
Bzip2选项文件(意为压缩此文件到当前目录)
选项
-d解压缩
-k压缩时保留源文件
Bzcat在不解压时查看压缩包内容
压缩文件后缀名:.bz2
注意:不论是gzip还是bzip2都不支持对文档的压缩
tar选项压缩目的文件源文件(可多个目录)
压缩常用的两种格式:
tar-zcvf MYFILE.tar.gzsource..
z进行gzip压缩
c创建压缩文件
v显示压缩过程
f后跟文件名
tarxf压缩包[-C目的路径]
不添加-c默认为当前目录
Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装;另一种直接获取rpm软件包进行安装。
不论是通过哪种途径安装的软件都有以下4个特点:
1、都具有配置文件,通过设置配置文件来改变程序启动时的运行特征;
2、都具有二进制的程序主体;
3、都自带库文件,供程序体调用;
4、都自带帮助文件,对程序的使用方法进行说明。
软件的安装路径:
除了自行下载源码编译安装的软件可以自定义安装路径之外,rpm包的安装都是按照软件自身预设的安装路径进行的安装。主要有以下几类:
1、/:系统根目录,在此安装的文件通常都是OS在运行时需要调用到的程序;
2、/usr:此目录下的一般情况下是提供基本服务的软件;
3、/usr/local:此目录下一般情况下是用户自行安装的第三方软件;
系统相关:
1、配置文件路径:/etc
2、二进制文件路径:/bin、/sbin
3、库文件路径:/lib
系统提供功能服务相关:
配置文件路径:/etc
二进制文件路径:/usr/bin /usr/sbin
库文件:/usr/lib
第三方软件:
配置文件路径:/usr/local/etc、/usr/local/APP/etc
二进制文件路径:/usr/local/bin/usr/local/sbin
库文件:/usr/local/lib
说明文件主要存放在:/usr/share/man和/usr/local/share/man
Rpm-q
-qa查询本机所有安装过的软件包
-q查询已安装软件包的版本
-ql 列出此安装包生成了那些文件
-qc列出此安装包生成了那些配置文件
-qd列出此安装包生成了那些文档
-qfFILENAME查看文件是由那些安装包产生的
-qi查看软件包信息
安装 rpm �CivhPACKAGENAME
rpm-e卸载软件包
--nodeps忽略依赖关系依赖
升级 rpm-UvhPACKAGENAME 安装过的直接升级;否则直接安装新版本
-FvhPACKAGENAME 只对安装过的软件升级
检验 rpm-VPACKAGENAME检验已经安装过的文件是否被人修复过
注意:rpm的安装查询是基于rpm生成的数据库,数据库的重建一般使用rpm �Crebuilddb和rpm �Cinitdb,前者直接重建后者则是在未检测到当前数据库时才创建;rpm在安装时会产生日志文件,/root/install.log文件中记载了安装记录。
Yum库文件的配置:
通过/etc/yum.conf和/etc/yum.repos.d目录下的、且已.repo结尾的文件进行对yum软件库的设置。
配置文件的具体格式:
[仓库名]
name=字符串#起标示作用
baseurl= {ftp://|http://|file:///}软件库的链接
gpgcheck={0|1} #下载到软件包之后是否进行校验
eg:
[base]
name=Instructor Server Repository
baseurl=ftp://instructor.example.com/pub/Server
gpgcheck=0
yum的常用功能:
软件包安装 yuminstall
软件包升级 yumupdate
软件包安装情况查询
Yumlist
Installed 查询已经安装过的软件包
Available查询在软件库中可安装尚未安装的软件包
PROGRAM 按照具体