在etc目录下面有四个文件来描述用户和用户群组:passwd、group、shadow、gshadow
逐一解释这个四个文件:
- 描述用户的文件(/etc/passwd):
Eg:moon:x:500:500:CentOS 6.5:home/moon:bin/bash
[ 1 ] [2][3] [ 4] [5] [6] [7]
1).用户名称
2).加密口令(对应的是shadow文件)
3).UID
0表示系统管理员
1-499表示系统账号
500-2~32-1表示可登录账号
4).GID
这个和group文件相关联
5).系统版本信息(这个文件不是所有的会有显示,也不是所有的系统都会有这个信息)
6).家目录
家目录的意思是:当你登录系统时,你会用pwd查看所在的路径
7).shell
这个比较重要,当一个用户登录系统,要进行和系统进行沟通,这个字段就是负责和系统沟通的shell文件(相当于一个接口)
删除用户:userdel +用户 :删除用户信息(passwd、shadow、group、gshadow),但是不删除家目录
userdel –r 用户(提示是否删除):删除所有和用户相关的文件
只有在删除当前用户的时候才会有提示(用-f强制删除当前用户,但是不会影响当前用的使用,只有等退出登录后,才出现用户不能登陆的情况)
- 描述群组的文件(/etc/group)
Eg:moon:x:500:+moon,tiankong
[1] [2][3] [4]
- 群组名
- 群组加密口令(对应的是gshadow文件)
这个跟gshadow、passwd相关
- 群组成员
组员,用逗号隔开不能有空格
- 用户文件加密口令(/etc/shadow)
Eg:moon:$dada234SDSDD:16566:0:99999:7:::
[1] [2] [2] [4] [5] [6][7][8][9]
注释:所有关于日期都是根据天数算的,算法的公式:
16566=$(($cdate –date=”当前日期”+%s)/86400+1))
86400 为每一天的秒数
%s 为 1970/01/01 以来的累积总秒数, bash 仅支持整数,因此最终需要加上 1 补齐 1970/01/01 当天
- 用户名
- 加密的密码(动态加密)
此字段前加上 ! 或 * 改变口令字段长度,就会让口令暂时失效了
- 最近更新的口令时间(天)
最近一次口令更改的日期
- 口令不可更新的天数
账号的口令在最近一次被更改后需要经过几天才可以再被变更(如果是0表示口令可以随时更改)
- 口令需要更新的时间(天)
口令最近一次更改后,在多少天内需要再次变更口令。(你必须要在这个天数内重新配置你的口令,否则这个账号的口令将会『变为过期特性』)
99999表示,几乎不需要更改
- 口令变更期限的警告天数(天)
账号快要过期时,系统会根据这个配置,发出警告,提醒账号在n天,你的口令就要过期
- 口令过期后账号宽限时间(口令失效日)
口令有效日期为(升级日期(第3字段)+重新变更日期(第5字段)
口令过期后没有升级口令,那么该口令就算是过期了;虽然口令过期但是该账号还可以进行其他的工作,包括登录系统所取得bash。不过口令过期后,当你登录系统时,系统会强制要求你必须要重新配置口令才能登陆使用。
如果使用者还是没有登陆更改口令,那么这个账号的口令将会『失效』,亦即该账号再也无法使用该口令登陆了
注意:口令过期和口令失效并相同
- 账号失效日期(天)
这个账号在此字段规定的日期之后,将无法再使用,就是所谓的账号失效,如果在规定的时间不进行更改口令,那么账号就会变成账号过期
- 保留的字段
这是一个保留字段,为后来添加新功能时使用的,暂时没有特殊的意义
- 用户群组加密口令(/etc/gshadow)
Eg:moon:!::moon,tiankong(用户组账号)
[1] [2][3] [4]
- 群组名
- 群组口令
!:表示无合法密码,所有无用户管理员
- 用户组管理员账号
管理用户组的账号
- 用户组账号
群组成员账号
用户、群组的操作
useradd(添加):(usermod修改)
-g 用户组 指定用户所属的用户组
-G 用户组,用户组 指定用户所属的附加组
-s Shell文件 指定用户的登录Shell
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户
的标识号
userdel 用户 删除用户
userdel –r 用户 删除用户(用户所有的文件)
注释:usermod -g 组名 用户名 是修改用户的所在组.是覆盖
usermod -G 组名,组名,组名.....+空格+用户名 是表示添加多个组
groupadd(添加)、groupmod(修改)、groupdel(删除)
文件属性说明
-rw-r-r—1 root root 42304 Sep 4 19:26 install.log
[1] [2][3] [4] [5] [6] [7]
1). 文件权限
这个字段分为两个不同的含义(10个字符)
- 第一个字符:文件类型
d:表示目录
-:文件
|:连接文件(相当于windows下面的桌面快捷键方式)
b:设备文件里面的可供存储的借口设备
c:设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)
注释:
连接文件:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法
硬链接(HardLink)和软链接(SoftLink),软链接又称为符号链接(Symboliclink)
连接具体的解释:http://blog.chinaunix.net/uid-23544029-id-311348.html
- 2-10字符:
这九个字符分为三种不同的拥有着
2-4:用户拥有权限
5-7:群组权限
8-10:其他的权限
3.权限有三种(r(read)、w(write)、x(execute))
2). 连接数
每个文件都会将权限和属性记录到文件系统中i-node中,不过我们使用的目录树确是使用文件名来记录的,因此每一个文件名都是就会连接一个i-node。这个属性记录的多少不同的文件名连接到相同的一个i-node号码
i-node:inode是一个很重要的实体,与文件有着很大的关系。系统在打开一个文件之前,都是先在一个inode表中查找该文件对应的inode,再去定位到具体的文件
3). 文件所有者
4). 文件所属群组
5). 文件大小
6). 文件最后被修改的日期
7). 文件名
注释:cd:切换当前目录;pwd;显示当前目录;mkdir创建心目录;rmdir:删除空目录
ls –l –full-time:显示全日期(中文显示的可能会有点问题)
文件权限的操作
- chgrp:改变文件所属的用户组(change group)
用法:chgrp + 用户组 +文件/目录
- chown:改变文件所属的用户(change owner)
用法:chown + 用户 + 文件/目录
注释:chgrp/chown + 用户:用户组 + 文件/目录,有些人使用”.”也能打倒这个效果,但是有时候会造成系统的误判,建议使用“:”;
关于什么时候使用chgrp和chown,有时候使用cp进行复制容易把文件的拥有着和用户组全部复制,赋值的文件有时是不允许别的用户/用户组使用,所以就需要分别设置用户和用户组
- chmod:改变文件的权限(change mode)
用法:
u(user) r
chmod g(group) + w 文件/目录
o(others) - x
a(all) =
-R加上也是标识进行递归改变
a 表示为文件三个类型权限添加权限
chmod a+x 文件/目录 :为文件或者目录增加x权限
chmode a-x 文件/目录:为文件/目录去掉x权限
chmode u-x 文件/目录:为文件/目录的用户权限去掉x
在进行去掉权限的时候,如果该文件没有此权限,不会报异常
chmod u=x,g+x 文件/目录:为文件/目录的用户或者群组添加x权限
个人理解:chmod +x 文件 直接执行,是为该文件三个类型添加权限,默认为all
注释:chgrp/chown/chmod –R +[用户/群组] +文件/目录 表示递归进行改变,即目录本身进行改变,也会对目录中的文件进行修改
who :表示当前登录的账户
whoami :标识当前运行系统使用的账户
初始群组、有效群组、次要群组:
- 1. 初始群组
当用户一登陆系统,立刻就拥有这个群组的相关权限
2.有效群组
有效群组:如果用户同时在两个或者多个群组中,用groups查看到的第一个标识有效群组,也是当前用户可用的群组权限
- 4. 次要群组
次要群主:如果用户同时在两个或者多个群组中,用groups查看到的非第一个标识有效群组,表示为次要群组,假如当前用户在次要群组中,操作文件是不可以对拥有此权限的的文件进行操作,必须是在有效群组中。
有效群组和次要群组的切换:newgrp + 群组名
注释:在当前用户组建立的文件,此文件就属于当前群组
grep查找文件中的内容
find 查找文件