一 用户管理
Linux用户分为三种:
超级用户:root,UID=0
普通用户:UID 500-60000
伪用户: UID 1-499
伪用户:
伪用户与系统和程序服务相关
bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户
mail、news、games、apache、ftp、mysql、sshd等,与Linux系统的进程相关
伪用户通常不需要或无法登陆系统
可以没有宿主目录
用户组:
每个用户都至少属于一个用户组
每个用户组可以包括多个用户
同一用户组的用户享有该组共有的权限
配置文件
用户信息文件:/etc/passwd
密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
用户配置文件:/etc/login.defs
/etc/default/useradd
新用户信息文件:/etc/ske1
登陆信息:/etc/motd /etc/issue
1、useradd hark 创建hark用户。
useradd设置选项 用户名 -D 查看缺省参数(=cat /etc/default/useradd)
u: 指定UID
g: 缺省所属用户组GID
G: 指定用户所属多个组
d: 宿主目录
s: 命令解释器Shell
c: 描述信息
e: 指定用户失效时间
在/etc/passwd文件中会多一条图上的数据。
从左到右依次是hark是用户名,x表示密码位(不存密码),1001表示用户标识号,1001表示缺省组表示号,向由一个空白表示存放用户全名等信息,/home/hark表示用户登录后的缺省目录,/bin/sh表示用户使用的shell。
/etc/passwd文件格式
字段 |
含义 |
用户名 |
用户登陆系统时使用的用户名 |
密码 |
密码位(不存密码) |
UID |
用户标识号 |
GID |
缺省组标识号 |
注释性描述 |
例如存放用户全名等信息 |
宿主目录 |
用户登陆系统后的缺省目录 |
命令解释器 |
用户使用的Shell,默认为bash |
在/etc/shadow文件中会多一条图上的数据。
/etc/shadow文件格式
字段 |
含义 |
用户名 |
用户登陆系统时使用的用户名 |
密码 |
加密密码 |
最后一次修改时间 |
用户最后一次修改密码的天数 |
最小时间间隔 |
两次修改密码之间的最小天数 |
最大时间间隔 |
密码保持有效的最多天数 |
警告时间 |
从系统开始警告到密码失效的天数 |
账号闲置时间 |
账号闲置时间 |
失效时间 |
密码失效的绝对天数 |
标志 |
一般不使用 |
2、passwd hark 设置hark用户的密码
执行过passwd hark后/etc/shadow中变成这样,/etc/passwd中没变。
/etc/group中添加了上图内容。
/etc/group文件格式
字段 | 含义 |
组名 | 用户登录时所在的组 |
组密码(位) | 一般不使用 |
GID | 组标识号 |
组内用户列表 | 属于该组的所有用户列表 |
3、 su hark 切换用户(root换普通用户不需要密码,但是普通用户切root用户需要输入密码)
4、userdel -r hark 删除用户(-r 删除用户目录)
5、groupadd -g 888 hero 创建一个名叫hero,gid为888的组。
执行后/etc/group文件中添加了组信息,如上图。
6、usermod -G hero hark 将hark用户添加到hero组中
执行后/etc/group文件中添加了组信息,如上图。
7、usermod -l jark -d /home/jark -g hero hark 将用户hark改为jark主目录改成/home/jark添加到hero组中。
执行后/etc/group文件中添加了组信息,如上图。
执行后/etc/passwd文件中变成这样,如上图。
执行后/etc/shadow文件中变成这样,如上图。
但是属主目录并没有变,所以这个命令并不是那么完美,顺带一提我用的是centos6.5,也许在其他Linux系统上是完美的吧。
8、groupdel hero
如果要删除的组中包含用户,则删除组不成功,提示如上图。
9、groupmod -n heros hero 修改hero组名称为heros
执行后/etc/group文件中添加了组信息,如上图。
10、gpasswd设置组密码及管理组内成员
gpasswd+组名 给组设置或改变密码 gpasswd heros 给heros组设置密码。
-a 添加用户到用户组 gpasswd -a study heros 将study添加到heros组。
-d 从用户组中删除用户 gpasswd -d jark heros 从heros族中删除jark.
-A 设置用户组管理员 gpasswd -A heros study 设置study为heros组的管理员。
-r 删除用户组密码 gpasswd -r heros 删除heros组的密码。
-R 禁止用户切换为该组 gpasswd -R heros 禁止用户切换为heros组,但是再执行gpasswd -a jark heros可以成功。