Linux用户分为三种:
1:超级用户(root,UID=0)
2:普通用户(UID 500-60000)
3:伪用户(UID 1-499)
伪用户:
1、伪用户与系统和程序服务相关 :nbin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户
mail、news、games、apache、ftp、mysql及sshd等,与Linux 系统的进程相关
2、伪用户通常不需要或无法登录系统
3、可以没有宿主目录
用户组:
每个用户都至少属于一个用户组
每个用户组可以包括多个用户
同一用户组的用户享有该组共有的权限
配置文件:
用户信息文件:/etc/passwd
密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
用户配置文件: /etc/login.defs /etc/default/useradd
新用户信息文件:/etc/ske1
登录信息:/etc/motd /etc/issue
/etc/passwd文件格式:
man 5 passwd 因为有个命令passwd所以要加5表示查看配置文件
root:x:0:0:root:/root:/bin/bash
字段 |
含义 |
用户名 |
用户登录系统时使用的用户名 |
密码 |
密码位 |
UID |
用户标识号 |
GID |
缺省组标识号 |
注释性描述 |
例如存放用户全名等信息 |
宿主目录 |
用户登录系统后的缺省目录 |
命令解释器 |
用户使用的Shell,默认为bash |
/etc/shadow文件格式:
root:$1$vAyAsUN.$dFhUqUWa3Pmm0DFoxWF/00:16015:0:99999:7:::
字段 |
含义 |
用户名 |
用户登录系统时使用的用户名 |
密码 |
加密密码 |
最后一次修改时间 |
用户最后一次修改密码的天数 |
最小时间间隔 |
两次修改密码之间的最小天数 |
最大时间间隔 |
密码保持有效的最多天数 |
警告时间 |
从系统开始警告到密码失效的天数 |
帐号闲置时间 |
帐号闲置时间 |
失效时间 |
密码失效的绝对天数 |
标志 |
一般不使用 |
/etc/group文件格式:
root:x:0:root
字段 |
含义 |
组名 |
用户登录时所在的组 |
组密码 |
一般不使用 |
GID |
组标识号 |
组内用户列表 |
属于该组的所有用户列表 |
手工添加用户:
分别在/etc/passwd、/etc/group和/etc/shadow文件中添加一笔记录
创建用户宿主目录
在用户宿主目录中设置默认的配置文件
设置用户初始密码
为什么普通用户可以更改密码? (这里引入了除了rwx权限之外的另一个权限)
SetUID的定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。
find / -perm -4000 -o -perm -2000
SetUID = 4 U
u + s
4755
SetGID = 2 G
chmod
g + s
2755 6755(4 + 2)
粘着位 = 1
o + t
1777
如果一个权限为777的目录具有粘着位,每个用户都可以在目录下创建文件,但是只能删除自己是所有者的文件。
/tmp 缺省就具有粘着位的。
[root@localhost ~]# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22984 2007-01-07 /usr/bin/passwd 这里u有一个s权限就是setuid的权限