用户管理目标: 1、用户账号的作用
2、用户增、删、改、查
3、用户账号的相关数据文件
4、用户组的创建、用户的分组
用户账号的作用: 1、标识用户的身份,让每个用户有私有的文件夹(家目录),未授权时,每个人只能访问自己的文件。
2、每个用户远程管理服务器时,所做的操作,root管理员可查到。
Linux系统中的用户分为3类,即普通用户、窗机管理员用户、系统用户(程序用户)。
一、用户账户的相关数据文件: 1、/etc/passwd 保存用户名称、宿主目录、登录shell等信息,每一行对应一个用户 的账号记录。
用户信息的记录格式:
root:x:0:0:root:/root:/bin/bash
格式说明:以“:”作为分隔符,分隔成多个部分。
1)、用户名
2)、密码:x表示此用户需要用密码登录,如果想免密码登录,用vi修改此文件,将x删除即可
3)、用户的uid号
4)、用户的gid号
5)、用户的备注信息,如果在图形化界面时,是界面的显示名称
6)、用户的家目录(宿主目录)
7)、用户登录的shell环境。
注:
uid用来区分不同用户的数字,表示该用户在本服务器中独一无二
gid用于区分不同用户组的数字,表示该用户组在本服务器中独一无二
uid和gid的联系:
在Linux下每个用户都至少属于一个组,也可以同时属于多个组。
**2、/etc/shadow **
保存用户的密码信息,只有root用户能读取。
用户的密码信息的记录格式:
root:$6$sNuBDGdoaIg9XXqq$j8THbca1kORqH85JL4o4qV5Rbbnw8TPZGsubkH9iR8cQZOBJ×××7AqnrZPX.Vk81y5IvOw.hZifvQThQvVX7h1::0:99999:7:::
格式说明:以“:”作为分隔符,分隔成多个部分。
1)、用户名
2)、加密后的密码
3)、最后密码修改的时间
4)、允许修改密码最小间隔时间
5)、允许修改密码最大间隔时间
6)、密码过期警告时间
7)、密码的宽限时间
8)、密码的失效时间,99999代表永不过期
9)、保留,暂时没有具体功能
二、用户账号的增、删、改,以及密码设置。 ** 1、增(add):useradd** 格式:useradd [选项] 用户名 常用选项: -u:指定UID号 -d:指定宿主目录,缺省(默认)为/home/用户名 -e:指定账号失效时间 -g:指定所属的基本组(后面跟组名或GID) -G:指定所属的附加组(后面跟组名或GID) -M:不为用户建立并初始化宿主目录 -s:指定用户的登录shell(默认为/bin/bash,一般不用改,在建立非登录用户的时候可以指定为/sbin/nologin)
注: 注:这些选项都能分开用,不冲突的可以在建立用户的时候连着用。
例子:
添加用户stu01,指定UID为520,宿主目录为/opt/stu04,指定基本组为root(注:系统中本身就存在users这个组GID为100),附加组为tech:
useradd -u 520 -d /opt/stu04 -g users-G root stu01
** 2、删除(del):userdel** 格式:userdel -r 用户名 添加-r选项,宿主目录/用户邮件也一并删除。
**3、改(modify):usermod**
主要是对已存在的用户的属性进行更改,可以增加用户成员的所属附加组。
格式:usermod [选项](选项可以有多个) 用户名
常用的选项:
-l :更改用户账号的登录名称
-L :锁定用户账户(注:用usermod –L锁定一个账户的时候可以用passwd–u直接解锁,但是用passwd –l锁定的账户,用usermod–U解锁的时间,需要解锁两次,因为,passwd –l锁定的账户密码前面有两个!)
-U :解锁用户账户
-u、-d、-e、-g、-G、-s :与useradd相同
** 4、密码设置:passwd ** 为用户添加密码 格式:passwd [选项] 用户名 常用选项: -d :清空用户的密码,使之无需密码即可登录 -l :锁定用户账号 -S :查看用户账号的状态(是否被锁定) -u :解锁用户账号 - - stdin:标准输入(比如管道)取密码 注:删除密码用passwd –d 而不能用echo “” | passwd - -stdin 用户名
**5、针对用户的密码进行设定——chage**
格式:chage [选项] 用户名
常用选项:
-l :列出密码有效信息
-d:设置最近一次修改密码的时间(后面跟的是时间)
-E:设置账号什么时候过期(后面跟的是时间)
-m:设置密码最小使用天数 (后面跟的是天数)
-M:设置密码最大使用天数(后面跟的是天数)
-I:设置密码过期后,再过几天不改密码,到期将失效(后面跟的是天数)
-W:设置过期前几天警告改密码(后面跟的是天数)
三、用户组 用户组分为基本组(私有组)和附加组(公共组)
**1、用户组的相关数据文件——/etc/group**
组信息的记录格式:
bin:x:1:
格式: 组名:组密码:组gid号:组成员
**2、用户组的相关密码信息文件——cat /etc/gshadow**
**3、组的增(add)——groupadd**
格式:groupadd [选项] 组名
常用选项:
-g :指定gid号
** 4、组的删(del)——groupdel** 格式:groupdel [选项] 组名
**5、组密码设置——gpasswd**
可以实现给组设置密码、添加和删除成员、设置组管理员
格式:gpasswd [选项] 组名
常用的选项:
-a:向某个组里添加一个用户
例子:gpasswd -a lq test #在test组中添加lq用户。
-A:给某个组设置管理员
例子:gpasswd -A lq,li test #给test设置2个管理员
-d:从某个组删除用户
例子:gpasswd -d lq test #从test组中删除lq用户
-M:给某个组重新设置成员名单,会替换原名单
例子:gpasswd -M lq,li,zhang test # 给root组重新设置成员名单lq、li、zhang,会替换原名单
四、查询用户账号和用户组 1、id 查看该账户的用户名及用户所属组等信息 格式:id 用户名
** 2、groups** 查看用户所属组 格式: groups 用户名
注:“:”左边是基本组,右边是附加组。
** 3、finger**
查看用户的详细信息
格式:finger 用户名
注:默认没有安装finger工具 可以从上图看到root的详细信息。
** 4、w(who) **
查询已登录主机的用户信息。
五、创建用户的文件默认参数。 1、用户和组的策略配置文件——/etc/login.defs 文件内容详解: MAIL_DIR /var/spool/mail 用户邮件的主目录
PASS_MAX_DAYS 99999 密码的最大修改间隔时间
PASS_MIN_DAYS 0 密码的最小修改间隔时间
PASS_MIN_LEN 5 密码的最小长度
PASS_WARN_AGE 7 密码过期的警告时间
UID_MIN 1000 普通用户uid的最小值
UID_MAX 60000 普通用户uid的最大值
SYS_UID_MIN 201 系统用户uid的最小值(用useradd -r 创建的是系统用户)
SYS_UID_MAX 999 系统用户uid的最大值
注:Linux用户账号分为管理员(root)、普通用户(1000~60000)、系统用户(201~999)。而uid从1~200为保留号。
GID_MIN 1000 普通组的gid最小值
GID_MAX 60000 普通组的gid最大值
SYS_GID_MIN 201 系统组的gid最小值
SYS_GID_MAX 999 系统组的gid最大值
CREATE_HOME yes 启用创建用户家目录
UMASK 077 普通用户的权限掩码,实际umask值为022。
USERGROUPS_ENAB yes 允许删除用户的同时删除用户的组,前提是组中没有成员存在
ENCRYPT_METHOD SHA512 指定密码加密算法为SHA512算法。
2、创建新用户的默认设置文件—— /etc/default/useradd #useradd defaults file GROUP=100 //只有当用useradd -N lucy 创建用户时未创建同名的组时,这个新用户才会在100组中HOME=/home 用户家目录的基目录(小区)
INACTIVE=-1 // 密码永远不失效(不禁用)
EXPIRE= //密码的过期时间,默认为空
SHELL=/bin/bash //指定新建用户的shell为/bin/bash
SKEL=/etc/skel //新建用户的宿主目录模板为/etc/skel
CREATE_MAIL_SPOOL=yes //是否创建用户的邮件文件
在新建一个用户的时候,宿主目录里面的内容就是将skel拷贝过去,然后放到/home目录下并改名为新建的用户名
3、全局配置文件~/.bash_profile、~/.bashrc和~/.bash_logout 注:可以在用户的宿主目录下使用ls -a查看。 ~/.bash_profile:每次登录时执行(开机启动,但只有在开机启动时启动一次) ~/.bashrc :每次进入新的Bash环境时执行(开机启动,优先执行,范围更广) ~/.bash_logout:每次退出登录时执行(关机、退出执行) 以上都是只会影响自己。
要想影响所有用户,在以下文件中配置:
/etc/profile
/etc/bashrc