LINUX 用户 及 组

来源:互联网 发布:unity3d itweenpath 编辑:程序博客网 时间:2024/06/13 23:52
用户账号username和群组账号groups的目的用户账号是为了 符合linux这是个多用户多终端操作系统的本性,不同文件记录不同的数据比如etc文件,记录着各种配置信息,txt文件记录着各种文本信息,等等;不同用户根据不同的需求管理不同文件,每个用户都有自己独立存放自定义配置的目录,称为家目录home;而root用户既是所谓的系统管理员,root管理着所有的用户,给用户创建账户,分配权限(xrw)分配组(group),设置初始密码(passwd -e ),设置组的初始密码 (gpasswd),设置组内管理员(组内管理员 相当于一个班级的班长或者 是一个小组的组长,拥有的权力范围 只对组内成员有效)一个系统可以存在多个组,一个用户也可以加入多组,但是每个用户 有且必有一个主要组,主要组作为创建文件时为文件的所属组项赋默认值******************************************************************************************* 管理员:root, 0 普通用户:1-65535系统用户:1-499, 1-999(CentOS7) 对守护进程获取资源进行权限分配登录用户:500+, 1000+(CentOS7)交互式登录     Linux组:GroupnameGID管理员组:root, 0 普通组: 系统组:1-499, 1-999(CENTOS7)普通组:500+, 1000+(CENTOS7)*******************************************************************************************关于用户的命令:                         useradd:          新建一个用户  此时 用useradd命令 没有添加选项 创建的321用户的 默认 passwd文件的配置内容 可以看到321 用户名:密码:uid:gid::家目录地址:默认bash                         -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs -o 配合-u 选项,不检查UID的唯一性-g GID:指明用户所属基本组,可为组名,也可以GID-c "COMMENT":用户的注释信息-d HOME_DIR: 以指定的路径(不存在)为家目录-s SHELL: 指明用户的默认shell程序 可用列表在/etc/shells文件中-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在-N 不创建私用组做主组,使用users组做主组-r: 创建系统用户 CentOS 6: ID<500CentOS 7: ID<1000 *************************************************************************************                                 userdel :           删除用户                       useradd -Duseradd –D -s SHELLuseradd –D –b BASE_DIRuseradd –D –g GROUP 此时可以看到,单纯的 使用useradd 命令不加任何参数 只是将用户在PASSWD 文件下的记录删除,但是 用户的家目录,mail 依然存在,如果想要彻底删除 需要  -r 选项                                             -r     删除家目录     **********************************************************************************usermod [OPTION] login-u UID:UID-g GID: 新主组-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的 附加组将会被覆盖;若保留原有,则要同时使用-a选项-s SHELL:新的默认SHELL-c 'COMMENT':新的注释信息-d HOME: 新家目录不会自动创建;若要创建新家目录并移 动原家数据,同时使用-m选项-l login_name: 新的名字;-L: lock指定用户,在/etc/shadow 密码栏的增加 !-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉 -e YYYY-MM-DD: 指明用户账号过期日期 -f INACTIVE: 设定非活动期限     ************************************************************************************                         passwd  user :     修改user 密码passwd 不加任何选项 参数  就是 修改当前 用户的密码 passwd username 修改指定用户的密码passwd [OPTIONS] UserName: 修改指定用户的密码,仅 root用户权限 passwd: 修改自己的密码 常用选项:-l:锁定指定用户-u:解锁指定用户-e:强制用户下次登录修改密码-n mindays: 指定最短使用期限-x maxdays:最大使用期限-w warndays:提前多少天开始警告-i inactivedays:非活动期限--stdin:从标准输入接收用户密码 echo "PASSWORD" | passwd --stdin USERNAME***********************************************************************************                         id :                    查看当前用户的详细信息id 不加任何选项 参数  就是 查看当前用户的详细信息   id username 查看指定用户的详细信息                id [OPTION]... [USER]-u: 显示UID-g: 显示GID-G: 显示用户所属的组的ID-n: 显示名称,需配合ugG使用*********************************************************************************关于组的命令 :                    查看/etc/group        组名:组密码:GID:组下附加成员(以当前组为主组的用户不显示)                        groups :               查看当前用户所属组                        groupadd :             新建一个组-g GID: 指明GID号;[GID_MIN, GID_MAX]-r: 创建系统组******************************************************************************************                        groupdel  :             删除一个组组属性修改:groupmodgroupmod [OPTION]... group-n group_name: 新名字-g GID: 新的GID*******************************************************************************************                        gpasswd :            设置 组密码 ) 将一个组设置密码后 组外用户若想加入该组或者想临时获得该组权限 将需要输入密码进行认证 此时 wzy 用户 临时 使12345组 作为自己的主组(且需要输入组密码),所以这是创建的文件默认的组 变为了 12345 不再是 wzy  而且用户的 gid 变为了 521  不再是 之前的 500   重新登录 wzy 用户,之前的 临时 主组 失效,此时 可以看到 用户创建的文件 依然保留着 12345的默认 组权限,而 用户的gid 已经 还原。gpasswd [OPTION] GROUP-a user: 将user添加至指定组中-d user: 从指定组中移除用户user -A user1,user2,...: 设置有管理权限的用户列表 newgrp命令:临时切换主组 如果用户本不属于此组,则需要组密码***************************************************************************Linux用户和组的主要配置文件:/etc/passwd:用户及其属性信息(名称、UID、主组ID等){root:x:0:0:root:/root:/bin/bash 用户名:密码:UID:GID: 用户全名或注释:家目录:默认bash}/etc/shadow                  {                    root:$5$W8Jw6zST$o8p90gkrj9O3rcmy3fX3Wv5IcINqfYM13QnsQRBwNv9:17369:0:99999:7:::用户名:密码: 密码再过几天可以被变更(0表示随时可被变更): 密码再过几天必须被变更(99999表示永不过期) :密码过期前几天系统提醒用户(默认为一周) : 密码过期几天后帐号会被锁定 : 从1970年1月1日算起,多少天后帐号失效                    }/etc/group:组及其属性信息 /etc/shadow:用户密码及其相关属性{    root:x:0:    组名:密码:GID :附属成员名 }/etc/gshadow:组密码及其相关属性                 {                    12345:$5$IYPbV/uLVl/m5h$Vh.meDwqfuaMO52CfKzj36x0Hck3NULRJoA./8eNmI6::        组名:映射密码:管理员:附加成员                   }*****************************************************************************        /etc/default/useradd     目录存放着当前用户的 配置信息[root@centos6 ~]# cat /etc/default/useradd# useradd defaults fileGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skelCREATE_MAIL_SPOOL=yessu [options...] [-] [user [args...]] 切换用户的方式:su UserName:非登录式切换,即不会读取目标用户的 配置文件,不改变当前工作目录su - UserName:登录式切换,会读取目标用户的配置 文件,切换至家目录,完全切换 root su至其他用户无须密码;非root用户切换时需要密码 换个身份执行命令:su [-] UserName -c 'COMMAND' 选项:-l --loginsu -l UserName 相当于 su - UserNamegroupmems [options] [action] options:-g, --group groupname 更改为指定组 (只有root) Actions:-a, --add username 指定用户加入组-d, --delete username 从组中删除用户-p, --purge 从组中清除所有成员-l, --list 显示组成员列表 groups [OPTION].[USERNAME]... 查看用户所属组列表本章问题:/etc/default/useradd /etc/skel/* /etc/login.defsnewusers passwd格式文件 批量创建用户 chpasswd 批量修改用户口令chage [OPTION]... LOGIN -d LAST_DAY -E --expiredate EXPIRE_DATE -I --inactive INACTIVE -m --mindays MIN_DAYS -M --maxdays MAX_DAYS -W --warndays WARN_DAYS –l 显示密码策略  示例: chage -d 0 tom 下一次登录强制重设密码 chage -m 0 –M 42 –W 14 –I 7 tom chage -E 2016-09-10 tom chfn 指定个人信息  chsh 指定shell  finger