用户/组管理(1)——Linux管理用户/组相关的文件详解
2015-10-14 15:59
871 查看
“Linux下一切皆文件”。我们想要了解Linux下用户/组的管理机制,就先从认识几个相关的配置文件开始吧!
/etc/passwd:以“一行一用户”的方式,记录了每个用户的信息
/etc/shadow:记录了每个用户的密码数据
/etc/group:以“一行一组”的方式,记录了每个用户组的信息
/etc/skel:宿主目录的模板目录
/etc/login.defs:用户账号的限制的配置文件
我们详细看看每个文件中的内容!
(1)/etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
--->以【:】为分隔符,共7个字段
字段1:用户名
字段2:密码占位符
字段3:用户帐号的UID号
【UID=0:系统管理员;
UID={1-499}:系统用户(1-99为distribution自行创建的系统用户、100-499为自行创建的系统用户)
UID={500-60000}:普通用户】
字段4:用户所属组的GID号
字段5:用户描绘信息
字段6:用户的宿主目录
字段7:用户登录后用到的shell(/sbin/nologin表示用户以任何方式都不可登录)
(2)/etc/shadow
root:$6$XHwHKv5C$1.Q2A9E71ps5SaBE1BSy85/XbMp7CJpb3R7kFMSSkCx6l7zbYKyPH4yZjEsS3yCcbcY4ih5Ykx3GStTtKQJV81:15112:0:99999:7:::
adm:*:15422:0:99999:7:::
--->以【:】为分隔符,共9个字段
字段1:用户名
字段2:已加密的密码字段【*:表示加密后的密码;!!:表示用户被锁定】
字段3:密码改动的日期
字段4:密码不可被改动的天数【默认0:表示随时可以改】
字段5:密码需要更改的天数【默认99999:表示永不过期】
字段6:需要更改密码期限前几天提醒【默认为7】
字段7:密码过期后的宽限日期
字段8:帐号失效日期【默认为空】
字段9:保留字段【未使用】
(3)/etc/group
root:x:0:
bin:x:1:bin,daemon
--->以【:】为分隔符,共4个字段
字段1:组名
字段2:密码占位符
字段3:GID
字段4:组成员列表(用“,”隔开)
(4)/etc/skel/*
宿主目录的模板目录(新建用户时会默认自动拷贝到宿主目录下的)
其中三个重要的必须文件
.bash_profile:用户每次登录时执行这个文件的内容
.bashrc:用户每次登录shell时执行这个文件的内容
.bash_logout:用户每次退出登录时执行这个文件的内容
--->由于其特性,可以添加一些命令或设置(如alias)实现用户登录时自动运行,/root/.bashrc就可以很好的运用
--->缺少这三个文件用户也可以验证,但无法登录,su切换时出现-bash-4.1#
(5)/etc/login.defs
这个文件记录的是用户创建时所遵循的一些设置与规则
MAIL_DIR /var/spool/mail //创建用户时在此目录中新建用户的mail文件
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5 //密码最小长度
[在root下给用户设置密码并不受这个约束]
[普通用户若要给自己修改密码,其密码长度要符合/etc/login.defs内部的约束,而且要符合复杂性要求(小写字母,大写字母,数字,特殊字符必须要包含三类)]
PASS_WARN_AGE 7
UID_MIN 500 //UID的最小值
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes //useradd创建用户时是否默认创建宿主目录
UMASK 077 //宿主目录默认的权限为700
USERGROUPS_ENAB yes //新建用户时如果没有指定组,默认新建一个同名的组
ENCRYPT_METHOD SHA512 //密码加密的方式
所以总结来看,系统创建用户的流程如图所示:
/etc/passwd:以“一行一用户”的方式,记录了每个用户的信息
/etc/shadow:记录了每个用户的密码数据
/etc/group:以“一行一组”的方式,记录了每个用户组的信息
/etc/skel:宿主目录的模板目录
/etc/login.defs:用户账号的限制的配置文件
我们详细看看每个文件中的内容!
(1)/etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
--->以【:】为分隔符,共7个字段
字段1:用户名
字段2:密码占位符
字段3:用户帐号的UID号
【UID=0:系统管理员;
UID={1-499}:系统用户(1-99为distribution自行创建的系统用户、100-499为自行创建的系统用户)
UID={500-60000}:普通用户】
字段4:用户所属组的GID号
字段5:用户描绘信息
字段6:用户的宿主目录
字段7:用户登录后用到的shell(/sbin/nologin表示用户以任何方式都不可登录)
(2)/etc/shadow
root:$6$XHwHKv5C$1.Q2A9E71ps5SaBE1BSy85/XbMp7CJpb3R7kFMSSkCx6l7zbYKyPH4yZjEsS3yCcbcY4ih5Ykx3GStTtKQJV81:15112:0:99999:7:::
adm:*:15422:0:99999:7:::
--->以【:】为分隔符,共9个字段
字段1:用户名
字段2:已加密的密码字段【*:表示加密后的密码;!!:表示用户被锁定】
字段3:密码改动的日期
字段4:密码不可被改动的天数【默认0:表示随时可以改】
字段5:密码需要更改的天数【默认99999:表示永不过期】
字段6:需要更改密码期限前几天提醒【默认为7】
字段7:密码过期后的宽限日期
字段8:帐号失效日期【默认为空】
字段9:保留字段【未使用】
(3)/etc/group
root:x:0:
bin:x:1:bin,daemon
--->以【:】为分隔符,共4个字段
字段1:组名
字段2:密码占位符
字段3:GID
字段4:组成员列表(用“,”隔开)
(4)/etc/skel/*
宿主目录的模板目录(新建用户时会默认自动拷贝到宿主目录下的)
其中三个重要的必须文件
.bash_profile:用户每次登录时执行这个文件的内容
.bashrc:用户每次登录shell时执行这个文件的内容
.bash_logout:用户每次退出登录时执行这个文件的内容
--->由于其特性,可以添加一些命令或设置(如alias)实现用户登录时自动运行,/root/.bashrc就可以很好的运用
--->缺少这三个文件用户也可以验证,但无法登录,su切换时出现-bash-4.1#
(5)/etc/login.defs
这个文件记录的是用户创建时所遵循的一些设置与规则
MAIL_DIR /var/spool/mail //创建用户时在此目录中新建用户的mail文件
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5 //密码最小长度
[在root下给用户设置密码并不受这个约束]
[普通用户若要给自己修改密码,其密码长度要符合/etc/login.defs内部的约束,而且要符合复杂性要求(小写字母,大写字母,数字,特殊字符必须要包含三类)]
PASS_WARN_AGE 7
UID_MIN 500 //UID的最小值
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes //useradd创建用户时是否默认创建宿主目录
UMASK 077 //宿主目录默认的权限为700
USERGROUPS_ENAB yes //新建用户时如果没有指定组,默认新建一个同名的组
ENCRYPT_METHOD SHA512 //密码加密的方式
所以总结来看,系统创建用户的流程如图所示:
相关文章推荐
- 关于linux指令lsusb
- Linux下svn服务器的安装与配置-备份-恢复-计划任务
- linux 强大的编辑器之vi
- linux硬盘分区格式化及挂载
- linux 通配符使用小结
- JDK 1.7安装详解(CentOS 6.4)
- linux 压缩和归档
- [内存管理] linux kernel内存映射实例分析
- linux并发服务器(1)(想法补充)
- PF_RING安装
- linux awk命令详解
- centos与RHEL的关系
- 如何查看 linux 内核源代码
- CentOS 安装jdk1.7 32位
- LINUX下通过C++访问SQLSERVER数据库
- Linux rpm 命令参数使用详解
- Linux CentOS VPS 性能评测 跑分
- Linux内核加载过程
- linux iptables原理及配置详解
- linux 启动过程关键点