简介
Linux是多用户,多任务的系统
用户类别
管理员 root 拥有最高的管理权限
普通用户
- 登录用户 拥有指定目录的部分或者所有权限。
-系统用户 满足系统进程对文件属主的需求,不可用作登录。
用户标识
- UID(user Id)是16bit的二进制数字,范围是0~65535
- UID=0 该用户就是管理员,不只root可以是管理员,可以自己指定。
- 系统用户 (1-65535)
- 系统用户 一般的发行版为1499 centos为1999
- 登录用户 一般发行版为500 centos为 1000
组类别
三种划分方式
-
和用户划分类似
- 管理员组
- 普通用户组(系统用户和登录用户)
-
第二种
- 用户的基本组 :用户有且只能有一个基本组
- 用户的附加组 可以没有或者有多个附加组
-
第三种
- 私有组 每次新建用户 如果不指定-g参数,都会自定创建一个和用户同名的组,组内只包含用户自己
- 公共组
组内可包含多个用户
组标识 GID 划分用UID类似
关于用户的相关文件
- /etc/passowrd 存储用户账户信息
格式为
name:password:UID:GID:comment:directory:shell
格式说明:
name | password | UID | GID | comment | directory | shell |
---|---|---|---|---|---|---|
用户登录名 | 用户口令,用占位符x表示 | 用户ID,用户登录时,系统根据UID,而非用户名来识别用户 | 用户所属的主组ID | 用户的注释信息 | 用户目录的绝对路径 | 用户默认的 shell |
- /etc/shadow 存储用户密码信息
- 字段1:name用户登录名;
- 字段2:加密的密码,$为分隔符,首先是使用的加密算法,其次是salt(随机数),最后才是加密了的密码本身;
- 字段3:从1970年1月1日算起,密码被修改的天数(最近一次更改密码);
- 字段4:密码最小期限,即密码最近更改日期到下次允许更改日期之间的天数(比如设置为10,则表示更改密码后10天内不允许再次更改;0表示无限制,可在任何时间修改);
- 字段5:密码最大期限,密码最近更改日期到系统强制用户更改密码日期之间的天数(比如设置为100,则表示更改密码后100天,系统将强制要求再次更改密码;1表示永不修改);
- 字段6:密码警告时间段,密码过期前,用户被警告的天数(比如,上个例子设置密码最大期限为100,密码警告时间段设为5,则表示更改密码后第96-100这5天,用户将被警告“密码即将过期”;-1表示没有警告);
- 字段7:密码禁用期,密码过期后,到系统自动禁用账户的天数(-1表示永远不会禁用);
- 字段8:账户过期日期(-1表示该账户被启用);
- 字段9:保留条目,目前没用。
- /etc/group 存储用户组信息
格式
group_name:password:GID:user_list
格式说明- group_name:组名;
password:用户组的口令,用占位符x表示,一般Linux用户组都没有口令; - GID:组ID;
- user_list:用户列表,注意,这里列出的是以该组为附加组的用户列表,以此组为主组的用户没有列在此处。
- group_name:组名;
管理命令
组管理 : groupadd, groupmod, groupdel
用户管理: useradd, usermod, userdel
密码管理 passwd, gpasswd
其他相关命令 newgroup chage chsh id su
组管理
(1)groupadd
语法
groupadd (选项) (参数)
选项
g:指定新建工作组的id
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/login.defs
-o:允许添加组ID号不唯一的工作组
参数
指定新建工作组的组名
示例
groupadd -g 344 newgroup # 新建一个组加入系统
(2)groupmod
语法
groupmod (选项) (参数)
选项
-g<群组识别码>:设置欲使用的群组识别码;
-o:重复使用群组识别码;
-n<新群组名称>:设置欲使用的群组名称。
参数
指定要修改的工作的组名
(3)groupdel
格式
groupdel (参数)
参数
要删除的组名
用户管理
(1)useradd
格式
useradd(选项)(参数)
选项
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户id
参数
要创建的用户名
(2)usermod
格式
usermod(选项)(参数)
选项
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s<shell>:修改用户登入后所使用的shell;
-u<uid>:修改用户ID;
-U:解除密码锁定。
参数
登录名:指定要修改信息的用户登录名。
(3)userdel
格式
userdel(选项)(参数)
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
参数
用户名:要删除的用户名。
密码管理
(1)passwd
格式
passwd(选项)(参数)
选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
参数
用户名:需要设置密码的用户名。
(2)gpasswd
格式
gpasswd(选项)(参数)
选项
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
参数
组:指定要管理的工作组。
相关文件
/etc/group /etc/gpassword
其他
chsh:修改shell
finger:查看信息
chfn:修改finger信息
whoami:我是谁呵呵
pwck:检查用户信息是否有异常
grpck:检查组信息是否有异常