Linux系统中管理用户账户和组账户及其权限设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统中管理用户账户和组账户及其权限设置相关的知识,希望对你有一定的参考价值。
用户账户分为:超级用户、系统用户、普通用户。
超级用户:
用户名:root ; UID:0;
系统用户:
用户名:由用户自行设定; UID:1~499(Centos6及之前),1~999(Centos7);
普通用户:
用户名:由用户自行设定; UID:500+(Centos6及之前),1000+(Centos7);
用户配置文件:用户解析库、用户认证库。
用户解析库:/etc/passwd
用户认证库:/etc/shadow
/etc/passwd字段详解:(字段间使用":"分隔)
root:x:0:0:root:/root:/bin/bash
第一字段:用户名称
第二字段:使用X做密码占位符
第三字段:用户UID
第四字段:用户主要组的GID
第五字段:用户主要组组名
第六字段:用户家目录
第七字段:用户默认bash
/etc/shadow字段详解:
root:$6$6kkn6aL6.uXXGiV9$Z1rLH/FLESIInB.V1TfCn9V/AhDlQMQIwOKwpxdk4h101tB6SdUv6USEIccF2XNcR.kpUuQE6x4HbSed24bNP.::0:99999:7:::
第一字段:用户名称
第二字段:经过加密的用户密码;主要由 加密算法+salt(盐)+加密后的密码 组成期间由"$"分隔;
第三字段:最后一次修改密码的时间,其表示法为从1970年1月1日到当前系统时间所经过的天数;
第四字段:密码的最短使用期限;0表示随时可更改密码;
第五字段:密码的最长使用期限;
第六字段:密码使用达到最大使用期限前多少天提示用户;默认为7天;
第七字段:密码过期后可更改密码宽限期;
第八字段:用户密码的绝对失效时间;其表示法为从1970年1月1日到指定日期时间的天数; usermod -e 可修改;
第九字段:保留,并未使用;
用户账户管理相关命令:
useradd -- 创建一个新用户或更新默认新用户信息
格式:useradd [options] USERNAME
常用选项:
-d, --home-dir HOME_DIR:指定新建用户的家目录;
-g, --gid GROUP:指定新建用户的主要组;GROUP可使用组名或GID;如不使用此选项默认会创建同名组设置为主要组;
-G, --groups GROUPS:指定新建用户的附加组;GROUP可使用组名或GID;
-r, --system :创建一个系统用户;
userdel -- 删除用户账户和相关文件
格式:userdel [options] UESRNAME
常用选项:
-f, --force :强制删除用户,即使用户正处于登陆状态等情况;(不建议使用)
-r,--remove :用户主目录中的文件将随用户主目录和用户邮箱一起删除。
usermod -- 修改一个用户账户
格式:usermod [options] USERNAME
常用选项:
-d, --homeHOME_DIR:更改用户的家目录;(前提修改的目录事先存在)
-c, --commentCOMMENT:修改用户注释信息;
-e expire-date:修改用户密码过期的绝对日期;
-l, --loginNEW_LOGIN:修改用户的登陆名;
-s, --shellSHELL:修改用户的登陆SHELL;
-u, --uidUID:修改用户的UID;
-g, --gidGROUP:修改用户主要组;
-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户附加组;可使用-aG为用户追加附加组;
-L,--lock:锁定用户;
-U,--unlock:解锁用户;
passwd -- 更新用户的身份验证令牌
格式:passwd [options] USERNAME
常用选项:
-d, --delete :删除用户的密码;(仅限 root 用户)
-l, --lock :锁定指名帐户的密码(仅限 root 用户)
-u, --unlock解锁指名账户的密码(仅限 root 用户)
--stdin : 从标准输入读取令牌(仅限 root 用户)
组账户分为:超级用户组、系统组、普通用户组。
超级用户组:
组名:root;GID:0;
系统用户组:
组名:由用户自行设定; GID:1~499(Centos6及之前),1~999(Centos7);
普通用户组:
组名:由用户自行设定; GID:500+(Centos6及之前),1000+(Centos7);
组账户配置文件:组账户认证库,组账户解析库。
组账户解析库:/etc/group
组账户认证库:/etc/gshadow
/etc/group字段详解:
root:x:0
第一字段:组名
第二字段:密码占位符;
第三字段:GID
第四字段:以该组为附加组的用户;
/etc/gshadow字段详解:
root:::
第一字段:组名;
第二字段:组账户加密保存的密码;
第三字段:组账户管理员(已废弃)
第四字段:以该组为附加组的用户账户列表;
groupadd -- 创建一个新组
格式:groupadd [options] GROUPNAME
常用选项:
-g, --gid GID:指定该组的GID;
-r, --system:将新建的组设置为系统组;
groupdel -- 删除一个组
格式:groupdel [options] GROUPNAME
groupmod -- 修改组账户信息
格式:groupmod [options] GROUPNAME
常用选项:
-g, --gid GID:修改GID
-n, --new-name NEW_GROUP:修改组名;
su -- 切换用户身份
格式:su [options] USERNAME
常用选项:
-, -l, --login:切换登陆用户及其shell,家目录等一系列选项;
-c :使用某用户身份执行某命令:(#] su root -c "usseradd god")
注意:su USERNAME 与 su -USERNAME 区别在于 前者只是切换了身份,但SHELL环境仍然是原用户的SHELL;而后者连用户和SHELL环境一起切换成新用户的了。只有切换了SHELL环境才不会出现PATH环境变量错误。
id -- 显示真实和有效的 UID 和 GID
格式:id [options] USERNAME
常用选项:
-u:显示用户有效UID
-g:显示用户有效GID
-n:显示名称
其他相关配置文件:
/etc/default/useradd
作用:定义创建用户时的用户属性的默认值文件
GROUP=100 // 在创建用户时如果没有为用户指定基本组,系统会为用户指定一个与用户名相同的组作为其基本组;
HOME=/home // 在创建用户时,如果没有为用户指定家目录,则会在/home目录中创建一个于用户名相同的目录作为家目录
INACTIVE=-1 // 在创建用户时,设定用户密码过期之后的宽限期,默认为-1,意为关闭用户密码过期宽限功能,即宽限期为永远;
EXPIRE= // 在创建用户时,设定用户密码的绝对失效日期,默认没有启用;
SHELL=/bin/bash // 在创建用户时,设定用户的默认登陆shell,默认值为/bin/bash
SKEL=/etc/skel // 在创建用户时,为用户家目录提供的默认文件的模板
CREATE_MAIL_SPOOL=yes // 在创建用户是,是否直接为用户创建邮箱文件,默认创建;
/etc/login.defs(definations)
作用:定义shadow_utils相关的属性,包括用户邮箱路径、密码的时间参数、UID和GID的范围,删除用户账户的命令、是否设置私有组(仅包含一个用户并作为该 用户主要组)、权限位掩码、家目录创建开关、加密算法选择;
MATL_DIR /var/spool/mail
//指定创建用户时为用户指定邮箱文件的路径
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
//与密码的时间参数有关的设置
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
//指定默认的ID选择范围
CREATE_HOME yes
//是否在创建用户时为用户创建家目录的开关
UMASK 077
//指定用户家目录的默认权限的掩码
USERGROUPS_ENAB yes
//是否开启私有组开关
ENCRYPT_METHOD SHA512
//加密算法的选择
/etc/skel(directory)
作用:为新创建的用户的家目录提供默认的shell配置文件
以上是关于Linux系统中管理用户账户和组账户及其权限设置的主要内容,如果未能解决你的问题,请参考以下文章