ch05 文件属性操作

文件类型:-:普通文件/l:符号链/c:字符特殊文件/b:块特殊文件/p:命名管道/s:Socket/d:目录文件ln -s source destination #创建符号链(快捷方式)文件权限是Unix文件系统安全的关键。Unix中的每个用户有一个唯一的用户名和UID(用户ID),每个用户属于一个或多个组。基本分组成员在 /etc/passwd中定义,附加的分组成员在/etc/group中定义。例如,用户tigerUID225,分组为11(students), 此外,他还是分组185(postgraduates)的成员。
每个文件和目录有三组权限,分别表示文件所有者的权限,同组用户的权限,其他用户的权限。用户组是具有相同特征用户的逻辑集合。建立一个组,让这个组具有相应权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。
/etc/passwd中每一行记录对应一个用户,格式如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:默认shell 
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
susie:x:1000:1000:ubuntu,,,:/home/susie:/bin/bash
用户名:是代表用户账号的字符串。 口令:存放着加密后的用户口令,虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 版本都使用了shadow技术,把真正加密后的用户口令存放到/etc/shadow文件中,在/etc/passwd文件的口令字段中只存放一个特殊的字符(x/*)。 

用户标识号:就是用户的UID,每个用户都有一个UID,并且是唯一的,通常UID号的取值范围是0655350是超级用户root的标识号,199由系统保留,作为管理账号,普通用户的标识号从100开始。而在Linux系统中,普通用户UID默认从500开始。UIDlinux下确认用户权限的标志,用户的角色和权限都是通过UID来实现的,因此要尽量保持用户UID的唯一性。
组标识号:就是组的GID,与用户的UID类似,这个字段记录了用户所属的用户组。它对应着/etc/group文件中的一条记录。
注释性描述:字段是对用户的描述信息,比如用户的住址、电话、姓名等等。
主目录:也就是用户登录到系统之后默认所处的目录。
默认shell:就是用户登录系统后默认使用的命令解释器,shell是用户和linux内核之间的接口。

/etc/shadow文件是用户影子文件(只有root用户可读写)。格式如下:
用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留字段
root:$6$PhjVrF1b$PfbU9Q5sE/Chbh2W3y1LN45lIJr3.GAXkV8bAZ8F4noUcHTwg2C6MnhFP8XZj1rkskx1uXW2QWh9iAfTGM
/hI.:15338:0:99999:7:::
daemon:*:15174:0:99999:7:::
bin:*:15174:0:99999:7:::
sys:*:15174:0:99999:7:::
susie:$1$jnIB6X.J$Nyn8mAs8aXNJgRgWMA9/H.:15338:0:99999:7:::
用户名:是代表用户账号的字符串。
加密口令:存放的是加密后的用户口令字串,如果此字段是“*”、“!”、“x”等字符,则对应的用户不能登录系统。  最后一次修改时间:表示从某个时间起,到用户最近一次修改口令的间隔天数。可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化。 最小时间间隔:表示两次修改密码之间的最小时间间隔。 最大时间间隔:表示两次修改密码之间的最大时间间隔,这个设置能增强管理员管理用户的时效性。 警告时间:表示从系统开始警告用户到密码正式失效之间的天数。 不活动时间:此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统不再让此用户登录,也不会提示用户过期,是完全禁用。 失效时间:表示该用户的帐号生存期,超过这个设定时间,帐号失效,用户就无法登录系统了。如果这个字段的值为空,帐号永久可用。 保留字段:linux的保留字段,目前为空,以备linux日后发展之用。
/etc/group文件:用户组配置文件,用户组的所有信息都存放在此文件中,格式如下: 组名:口令:组标识号:组内用户列表
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
susie:x:1000:
sambashare:x:122:susie
组名:是用户组的名称,由字母或数字构成。与/etc/passwd中的用户名一样,组名不能重复。 口令:存放的是用户组加密后的口令字串,密码默认设置在/etc/gshadow文件中,而在这里用“x”代替,linux系统下默认的用户组都没有口令,可以通过gpasswd来给用户组添加密码。 组标识号:就是GID,与/etc/passwd中的组标识号对应。 组内用户列表: 显示属于这个组的所有用户,多个用户之间用逗号分隔。
当执行一个命令时,经常会为了完成任务不得不用特殊的权限来执行。例如:当用户用passwd命令改变口令时,用户的新口令被存在文件/etc/shadow中。做为一个普通用户对该文件是没有读写访问权限的。但当改变口令时,用户需要有文件的写权限。这意味着passwd不得不给用户额外的权限来使之能向文件/etc/shadow执行写操作。给予程序额外权限的机制是设置用户IDSUID)和设置组IDSGID)位。当用户所执行程序的SUID位可用时,用户继承了程序所有者的权限。一个进程如果没有SUIDSGID位,则euid=uidegid=gid,分别是运行这个程序的用户的uidgid。如果一个程序设置了SUID,则euidegid变成被运行的程序的所有者的uidgid
SUID的优先级比SGID高,当一个可执行程序设置了SUID,则SGID会自动变成相应的egid其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是1,表示有相应的权限:
11 10 9 8 7 6 5 4 3 2 1 0
 S  G T r w x r w x r w x
11位为SUID位,第10位为SGID位,第9位为sticky(t),第8-0位对应于上面的三组rwx位。

如果一个文件被设置了SUIDSGID位,会分别表现在所有者或同组用户的权限的可执行位上。例如:

1-rwsr-xr-x表示SUID和所有者权限中可执行位被设置100111101101

2-rwSr--r--表示SUID被设置,但所有者权限中可执行位没有被设置

3-rwxr-sr-x表示SGID和同组用户权限中可执行位被设置

4-rw-r-Sr--表示SGID被设置,但同组用户权限中可执行位没有被设置010110100100

查找SUID位文件:find/ -perm -04000 -type f -ls

chmod expression(who action permissions) files #-R可以改变目录及子目录下文件的权限
who: u:所有者/g:/o:其他/a:所有
action+:为文件增加权限/-:为文件删除权限/=:显式地设置文件权限
permissions: r:/w:/x:执行/s:SUIDSGIDchown options user:group files

你可能感兴趣的:(ch05 文件属性操作)