linux+shell编程 笔记 3

1、文件的权限

1)用户分组:对于一个文件,可以针对3种不同的用户类型设置不同的访问权限。

OWNER:所有者,创建文件的用户;

GROUP:用户组,指一组相似用户。用户组中的单个用户能够设置其所在的用户组访问该用户文件的权限。

OTHER:其他用户,不在用户组中的用户。

因此,可以从以下3种访问方式来限制访问权限:只允许用户自己访问的;允许一个预先制定的用户组中的用户访问;允许系统中的任何用户访问。

文件的所有者和所属用户组是可以改变的。

chown:改变文件的所有者。

chown将file参数指定的文件的所有者更改为owner参数指定的用户。Owner参数的值必须是在/etc/passwd文件中找到的用户标识或登录名,还可以选择性地指定组。Group参数的值必须是在/etc/group文件中找到的组标识或组名。

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户id;组可以是组名或组id。

chown [选项][所有者][:[组]]文件...

-c:显示更改部分的信息

-f:忽略错误信息

-v:显示详细的处理信息

-R:处理指定目录以及其子目录下的所有文件

1、改变拥有者和群组
   chown xxx:yyy file
   chown xxx:file

2、改变文件群组
   chown :yyy file


chgrp:更改文件或目录的组所有权。

chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户。 

chgrp [选项][组][文件]
1、改变文件的群组属性
chgrp yyy file

2、根据指定文件改变文件的群组属性
chgrp --reference=file1 file2(使file2拥有和file1同样的群组属性)


2、文件权限及其数字表示法

每个文件,文件所有者或超级用户可以设置改文件的可读、可写和可执行权限,分别对应着r、w、x;

属主权限:控制文件所有者的访问权限;

属组权限:控制文件所属用户组中的用户访问文件的权限;

其他用户权限:控制其他所有用户访问该文件的权限;

r、w、x这3套权限赋予用户的不同类型,这样就构成了一个9种类型的权限组。

umask:默认权限设置。(这是个全局的设置)
r—4;w—2;x—1;-(删除权限) —0

值是这样算出来的:把rwx看成二进制,有就表示1,无就表示0,然后转换成十进制就ok了。

chmod:改变文件或目录的权限、属性等。该命令有两种用法:1)包含字母和操作符表达式的文字设定法;2)包含数字的数字设定法。

-c:当发生改变时,报告处理信息;

-f:错误信息不输出;

-R:处理指定目录以及其子目录下的所有文件;

-v:运行时显示详细处理信息;

--reference=<目录或文件>:设置成具有指定目录或者文件具有相同的权限;

权限范围:u(user)、g(group)、o(other)、a(all)

权限代号:r(4)、w(2)、x(1)、-(0)

操作代号:+(增加权限)、-(取消权限)、=(设定指定的唯一权限)

1)文字设定法:

chmod [who][+|-|=][mode] 文件名
实例:
chmod a+x file;增加文件所有用户组可执行权限
chmod ug+w,o-x file;同时修改不同用户权限
chmod a-x file;删除文件权限
chmod u=x file;设置只有可执行权限

2)数字设定法:

必须知道数字表示的属性含义,然后将其相加。数字属性的格式应该为3个从0~7的数值,其顺序是u、g、o。

chmod [mode] 文件名


3、文件的特殊权限
1)s或S(SUID,set user id):

让本来没有相应权限的用户运行这个程序时,可以访问它所没有权限访问的资源,获取程序属主的资源访问权限。由于SUID是在执行程序时起作用,而可执行只对普通文件和目录文件有意义,所以对其他类的文件的SUID位是没有意义的。

内核主要是根据euid(有效用户id)来确定进程对资源的访问权限。一个进程如果没有SUID,则euid=uid。而一旦设置了SUID,则euid变成被运行程序的所有的uid,从而可以突破权限的限制,随意访问。

——————————————————————————————

linux系统中每个进程都有2个ID:分别为用户ID(uid)和有效用户ID(euid),uid一般表示进程的创建者,而euid表示进程对于文件和资源的访问权限。一个用户登录系统时,系统会将UID和EUID都赋值为/etc/passwd文件中的UID,一般情况下2个ID值是相同的。

——————————————————————————————

2)s或S(SGID,set group id)

设置在文件上,作用筒SUID的类似,只不过将文件所有者换成了用户组,该文件就可以任意存取整个用户组所能使用的系统资源。

给文件或目录添加SUID和SGID命令:

chmod u+s filename 设置suid
chmod u-s filename 取消suid
chmod g+s filename 设置sgid
chmod g-s filename 取消suid

3)t或T(Sticky Bit)


4、文件比较

1)comm:比较排序后的文件。

comm会一行一行地比较两个已排序文件的差异,没有指定参数。则会把结果分成3列显示:第1列表示仅在第一个文件中出现过的行;第2列表示仅在第二个文件中出现过的行;第3列表示在第一与第二个文件里都出现的行。

-1:不显示只在第1个文件中出现过的列;

-2:不显示只在第2个文件中出现过的列;

-3:不显示在第1个和第2个文件中出现过的列;


2)diff

 

5、文件系统

1)文件系统和磁盘分区

linux中的基本文件存储单元都是磁盘分区,即将一个或多个硬盘进行逻辑划分,os将每个逻辑分区视为独立的磁盘。linux 将这些磁盘分区做为设备处理,进而通过/dev目录中的特殊文件使用文件I/O机制。
两种设备文件:块设备和字符设备。两种最大的区别是,块设备被缓冲;而字符设备不被缓冲(原因是字符设备没有文件管理系统)。
文件管理系统:os为了有效地和磁盘打交道,将磁盘的存储方式按照一定的规则统一起来。这个规则就是文件管理系统,或磁盘分区格式。

2)Linux下分区格式
ext2:ext2支持大文件,并且支持反删除功能;
ext3:ext3是一个用于linux的日志文件系统,支持大文件,但不支持反删除;
reiserfs:比较新的文件系统,支持大文件,支持反删除。基于平衡树的文件系统结构,在处理大量文件的巨型文件系统,性能很好。

ext2、ext3和reiserfs都能自动修复损坏的文件系统,也都是在开机时进行。

3)文件系统与目录树
根文件系统一般都比较小,严格的文件个一个小的不经常改变的文件系统不容易损坏。
/bin:引导启动所需的命令和普通用户用到的命令
/sbin:类似于/bin,但不是给普通用户使用的
/etc:特定机器的文件配置
-----------------------------------------------------------------
rcor、rc.dor、rc*.d:启动或改变运行级时运行scripts或scripts的目录
fdprm:软盘参数表,说明不同的软盘格式
inittab:init的配置文件
issue:在终端接口登录提示符前的输出信息
magic:file的配置文件,包含不同文件格式的说明,file基于它猜测文件类型
motd:成功登录后自动输出
mtab:当前安装的文件系统列表
shells:可信任的shell
-----------------------------------------------------------------
/root:root用户的家目录
/lib:根文件系统上的程序所需的共享库
/lib/modules:核心可加载模块
/dev:设备文件
/tmp:临时文件
/usr:
---------------------------------------------------------------
X11R6:XWindow系统的所有文件。
X386:类似X11R6。
bin:所有用户的命令
sbin:根文件系统不必要的系统管理命令
man:手册
info:GNU信息文档
doc:其他文档
include:C语言的头文件
lib:程序或子系统不变的数据文件
local:本地安装的软件和其他文件
---------------------------------------------------------------

/var:包括系统一般运行时要改变的数据。
---------------------------------------------------------------
log:各种程序的log文件,特别是login和syslog。
spool:mail、news、打印队列和其他队列工作的目录。每个不同的spool在/var/spool下有自己的子目录。
---------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值