用户及组详解
概论:
现今,大多数操作系统都是多用户(Multi-tasks)多任务(Mulit-Users)的系统.在多年前,计算机资源远没有现在这么丰富,都是多人使用同一台计算机,为了保障使用计算机的用户权益不受到损害,完成资源使用隔离,人们采取了用户机制标识使用者的方法.
每个使用者都是用户,用户是由UID进行标识,通过密码进行身份验证机制.而为了方便管理用户,人们又发明了组,组是用户的集合,由GID进行标识.在用户创建时,系统要求用户必须指定一个主组,且主组是唯一的,也可以不加或添加多个附加组.
在对用户和组的管理上,为了安全性,有3A机制进行保护用户和组.3A分别为:
认证机制:Authentication 登录 (用户名+密码)
授权机制:Authorization 设置权限
审计机制:Audition 使用过程记录日志
安全上下文(senurity context):
进程以其发起者的身份运行,拥有发起者的权限
进程对文件(系统资源)的访问权限,取决于发起此进程的用户及用户所属组的权限 而不是进程本身的权限 最好是所需要拥有的最小权限,不能拥有管理员权限
为了能够让那些后台进程或服务进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从来不用登录系统 成为系统用户。
用户及组的介绍:
用户及组的类别:
用户分类:
管理:
普通:
系统用户
登录用户
用户标识:UserID,UID (16bits 二进制数字:1-65535)
管理员:0
普通用户:1-65535
系统用户:1-499(centos6),1-999(centos7)
登录用户:500-60000(centos6),1000-60000(centos7)
名称解析:名称转换
Username <–> UID
根据名称解析库进行:根据用户输入的名称与库(/etc/passwd)的数据做对比,转化名称,判断用户名是否存在,存在进入下一步登录,不存在则报错.
组分类:
组类别1:
管理员组:
普通用户组:
系统组:
登录组:
组标识:GroupID,GID
管理员组:0
普通用户组:1-65535
系统用户组:1-499(centos6),1-999(centos7)
登录用户组:500-60000(centos6),1000-60000(centos7)
名称解析:groupname <—->gid解析 库文件:/etc/group
组类别2
用户的基本组: 用户的主组,每个用户只有一个
用户的附加组:用户的附加组,可以没有且有多个
组类别3:
私有组:组名同用户名,且只包含一个用户
公共组:组内包含了很多个用户
用户及组的认证信息:
通过比对事先存储的密码信息,判断与登录时提供的信息是否一致
password:
/etc/shadow 用户密码库文件
/etc/gshadow 组密码库文件
密码的使用策略:
1.使用随机密码
2.最短长度不低于8位
3.大小字母,数字,标点符号组合使用
4.定期更换 (随机生成字符串命令: openssl rand -base64 10(20))
密码加密算法:
对称加密 :加密和解密使用同一个密码
加密机:输入明文,输出密文 解密机:输入密文,输出明文
非对称加密:加密和解密使用的一对密钥。 使用公钥加密的,使用同对的密钥解密
公钥:public key
私钥:private key
单向加密;只能加密,不能解密。提取数据特征码,例如:指纹,瞳 借助salt完成
特征:
定长输出, 2的512次方
[root@wen-7 shell]# echo “wen1”|sha512sum f7a02b034fffa7ee6faecdfd9114cee0a79467f76a379e7a4e7141c0fe9ed506df54c5c13ebbb3f85bed174f691670f761135720252674c673c2a3ab1388a864 - [root@wen-7 shell]# echo “wen1rsdasdsadsa”|sha512sum 18c75133db89c3f4054c4933db1041a8ab962f9d6b5bef4130a873f9bbfd37d6bf5e19c9fb13b0ff98f4e7aa618d891eadfb3497d85d10a0a61098096fb2259c -
雪崩效应,初始条件的微小改变,引起整体巨大变化,一个字符的变化,结果完全不同
[root@wen-7 shell]# echo “wen”| md5sum 28dea8a57263903409d64b9e9731b5c0 - [root@wen-7 shell]# echo “wen1”| md5sum 1d1f3e6cdcbb3b13b5b13d7a56119cbd -
算法的种类:
MD5 128bit (centos5系以下默认使用)
sha1 160bit
sha224 224bit
sha256 256bit
sha385 385bit
sha512 512bit (centos6系以上默认使用
密码创建时,用户输入的密码加随机数(salt),生成密文,保存在库文件中。用户再次登录时,输入密码,系统会自动把在密码库保存的上次使用的随机数补在用户输入字符串中,生成密文,与库文件中的实现存放的密文比较,如果密文一样,则表示密码正确,允许用户登录,不一样则报密码错误.
在计算之时加salt,添加的随机数,相同的密码明文,密文不同
root@w6 home]# echo "centos" | passwd --stdin gentoo [root@w6 home]# getent shadow gentoo gentoo:$6$j9cSCq/L$7EwxsVScKKD176GnRiEzDAIBB2ewADEDSFcyBN12mza1JRhoMzvwueA1Tt1A1C4c4Q3.qHLyZMMv3KdCiXfEB/:17012:0:99999:7::: [root@w6 home]# echo "centos" | passwd --stdin gentoo [root@w6 home]# getent shadow gentoo gentoo:$6$JH5FOiaJ$3d0jDjigI5J7ZQoetn0J.lVdE9SjUAiIFOv08YEOlJ.COe8eR.0/YPZBNHlRHHzSuG74pyDoHl41/yd.NwuQU0:17012:0:99999:7:::
可以更改系统默认密码算法,
authconfig --passalgo=sha512 --update
命令如下:
[root@w6 home]# authconfig --passalgo=sha512 --update [root@w6 home]# tail -5 /etc/login.defs #此目录记载着创建用户的默认配置 # Use SHA512 to encrypt password. ENCRYPT_METHOD SHA512 MD5_CRYPT_ENAB no [root@w6 home]# authconfig --passalgo=sha256 --update [root@w6 home]# tail -5 /etc/login.defs # Use SHA512 to encrypt password. ENCRYPT_METHOD SHA256 MD5_CRYPT_ENAB no
用户及组的密码库格式:
1./etc/passwd/格式:
account:password:UID:GID:GECOS:directory:shell
(帐号:密码:用户ID:组ID:一般的信息:目录:shell)
name;用户名
password:可以是加密的密码,也可以是占位符X /etc/shadow保存加密密码(man pwconv :影子密码)
UID:用户ID
GID:用户所属的主组的ID号
GECOS:可选的 提供用户的注释信息
directory:用户的家目录
shell:用户的默认shell类型,登录时默认shell程序
2./etc/shadow
wen:$6$FGHaaLgp2OWH/K03sMzZDNmN.0AD0:17001:0:99999:7:::
登录名:
加密的字码串: 不设密码的用户,此位默认为!!;
最后一次更改密码的日期(从1970年1月1开始计算的天数):
密码最短使用期限:这些天之后,用户必须更改密码。
密码最长使用期限:这些天之后,用户必须更改密码。
密码警告时间段:密码过期之前,提前警告用户的的天数
密码禁用期:密码过期后,仍然接受此密码的天数,在此期间,用户应该在下次登录时修改码)。
密码到期并且过了这个宽限期之后,使用用户的当前的密码将会不能登录。用户需要联系统管理员
账户过期日期:账户过期不同于密码过期。账户过期时,用户将不被允许登录;密码过期时,用户将不被允许使用其密码登录。
保留字段
pwunconv pwnconv 开启|关闭密码转化命令,实现密码加密分位存放 关闭后,/etc/shadow文件会消失
[root@w6 home]# pwunconv #关闭密码转换 [root@w6 home]# ll /etc/shadow #保存密文密码文件 不存在 ls: cannot access /etc/shadow: No such file or directory [root@w6 home]# useradd yum1 ;echo "yum123"|passwd --stdin yum1 Changing password for user yum1. passwd: Authentication token manipulation error [root@w6 home]# getent passwd yum1 yum1:!!:506:507::/home/yum1:/bin/bash #新创建用户 密码格式异常 [root@w6 ~]# pwconv #开启密码转换 [root@w6 ~]# exit #命令生效,需重新登录用户 [root@w6 ~]# ll /etc/shadow #保存密文密码文件恢复 -r--------. 1 root root 1946 Jul 30 15:27 /etc/shadow [root@w6 ~]# useradd yum3 ;echo "yum123"|passwd --stdin yum3 Changing password for user yum3. passwd: all authentication tokens updated successfully. [root@w6 ~]# getent shadow yum3 #用户密码继续用密文存储 yum3:$6$oW7NIo9Z$b53zN7S.m/nt/WDgUl5wMun9YA1jVkjieNQeEYPUJNcIU9iRteR1FhruUeGz66aGF6569eHDQYaQK9SHHStOb.:17012:0:99999:7:::
3./etc/group 组的信息库
admins:x:502:natasha,harry
group_name:passwd:GID:user_list
group_name:组名
password:(加密的)组密码.如果该字段为空,则不需要密码.
GID : 组的数字标识.
user_list:组内所有成员的用户名,以逗号分隔.
4./etc/gshadow
admins:!::natasha,harry
组名:
组密码:
组管理员用户:
组成员列表:
用户及组的管理使用:
用户及组的查看命令:
(1)groups Username: 查看用户所在的组
[root@w6 ~]# groups wen wen : wen [root@w6 ~]# groups gentoo gentoo : gentoo root bin
(2)getent:
getent shadow username= cat /etc/shadow | grep "wen" 查看密码存放文件
默认使用,显示文件全部内容.后接用户名,只显示指定用户名的所在行
[root@w6 ~]# getent shadow yum3 yum3:$6$oW7NIo9Z$b53zN7S.m/nt/WDgUl5wMun9YA1jVkjieNQeEYPUJNcIU9iRteR1FhruUeGz66aGF6569eHDQYaQK9SHHStOb.:17012:0:99999:7:::
getent passwd= cat /etc/passwd 查看用户密码文件
默认使用,显示文件全部内容.后接用户名,只显示指定用户名的所在行
[root@w6 ~]# getent passwd yum1 yum1:x:506:507::/home/yum1:/bin/bash
(3)vipw= vim /etc/passwd 比用文本编辑器 打开密文文件更安全,默认进入编辑界面 检查文件格式
[root@wen-7 ~]# vipwroot:x:0:0:root,123,123,12345:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologin
(4) vigr =vim /etc/group 比用文本编辑器 打开密文文件更安全,默认进入编辑界面
[root@wen-7 ~]# vigrroot:x:0:bin:x:1:daemon:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:
groupmems -1 -g groupname:查看组内其他成员 修改配置文件,永久生效
[root@wen-7 ~]# groupmems -l -g gentoowen zhifei [root@wen-7 ~]# groupmems -l -g wenzhifei
strace useradd usesrname:查看创建用户时,系统底层修改过程,调用过程
[root@wen-7 ~]# strace useradd zhifieexecve("/usr/sbin/useradd", ["useradd", "zhifie"], [/* 27 vars */]) = 0brk(0) = 0x7f09e982a000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f09e8692000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=104555, ...}) = 0mmap(NULL, 104555, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f09e8678000close(3) = 0
chfn Username:添加用户注释信息
[root@wen-7 ~]# chfn wenChanging finger information for wen.名称 [wen]: wen办公 []: 12456办公电话 []: 5453214住宅电话 []: 133433123435 Finger information changed.[root@wen-7 ~]# getent passwd wen wen:x:1000:1000:wen,12456,5453214,133433123435:/home/wen:/bin/bash
finger:显示用户的备注信息
[root@wen-7 ~]# finger wenLogin: wen Name: wenDirectory: /home/wen Shell: /bin/bashLast login 二 8月 2 08:32 (CST) on pts/0Mail last read 四 7月 28 21:39 2016 (CST)No Plan.
chsh :
-s /bin/ch 修改当前系统shell类型
-l 显示shell类型列表
[root@wen-7 ~]# chsh -l/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin/bin/tcsh/bin/csh/bin/zsh[root@wen-7 ~]# chsh -s /bin/cshChanging shell for root.Shell changed.
pwck:pwck: 检查passwd 文件语法
[root@wen-7 ~]# pwck用户“avahi-autoipd”:目录 /var/lib/avahi-autoipd 不存在用户“saslauth”:目录 /run/saslauthd 不存在用户“pulse”:目录 /var/run/pulse 不存在用户“gnome-initial-setup”:目录 /run/gnome-initial-setup/ 不存在用户“oprofile”:目录 /var/lib/oprofile 不存在用户“mariadb”:目录 /home/mariadb 不存在pwck:无改变
grpck:检查group文件的语法
[root@wen-7 ~]# grpck无效的组文件条目删除“dsfdsf”一行?y grpck:文件已更新
用户及组的管理命令:
组管理命令:
1.groupadd: 添加组
groupadd [选项] groupName
-g GID:指定GID,默认是上一个组的GID加1
-r:创建系统组:存放系统用户 GID位于1-999之间 也可以组合-g指定系统组ID
[root@wen-7 ~]# groupadd -g 5431 qwert [root@wen-7 ~]# getent group qwert qwert:x:5431: [root@wen-7 ~]# groupadd -g 5432 -r qweasd [root@wen-7 ~]# getent group qweasd qweasd:x:5432: #可用strace useradd usesrname:查看修改过程,调用过程
2.groupmod:修改组信息
groupmod [OPTIONS] groupname
选项:
-g GID:修改GID
-n name:修改组名:可能导致所属用户修改信息
[root@wen-7 ~]# groupmod -g 5433 -n asdfg qwert [root@wen-7 ~]# getent group asdfg asdfg:x:5433:
3.groupdel:删除组
groupdel groupname
删除组,会使所属用户失去组织
[root@wen-7 ~]# groupdel qweasd [root@wen-7 ~]# getent group qweasd [root@wen-7 ~]# #
4.groupmems:用户主组的管理员成员
用法:groupmems [选项] [动作]
选项:
-g, –group groupname 更改组 groupname,而不是用户的组(只 root)
-R, –root CHROOT_DIR chroot 到的目录
动作:
-a, –add username 将用户 username 添加到组成员中
-d, –delete username 从组的成员中删除用户 username
-h, –help 显示此帮助信息并推出
-p, –purge 从组中移除所有成员
-l, –list 列出组中的所有成员
(5).gpasswd命令:
gpasswd [选项] group
-a username :想组中添加用户
-dusername:从组中移 处用户
-A username: 设置某用户为组的管理员
gpasswd groupname : 更改组密码
[root@w6 ~]# groupmems -l -g adminsnatasha harry user10 [root@w6 ~]# gpasswd -a user10 adminsAdding user user10 to group admins[root@w6 ~]# groupmems -l -g adminsnatasha harry user10 [root@w6 ~]# gpasswd -d user10 adminsRemoving user user10 from group admins[root@w6 ~]# groupmems -l -g adminsnatasha harry
其他用户不得随意切换组,必须要输入组密码,配合newgrp命令,临时切换基本组,
(6) newgrp 命令
临时切换指定组为基本组. exit退出 组不能是私有组
newgrp [-] [group]
-:会模拟用户重新登录以实现初始化其工作环境
[user10@w6 ~]$ newgrp - user2Password: [user10@w6 ~]$ touch qwewqe[user10@w6 ~]$ lltotal 0-rw-r--r-- 1 user10 user2 0 Aug 1 18:16 qwewqe-rw-rw-r-- 1 user10 user10 0 Aug 1 18:13 user2
练习:
创建sysadmins组
[root@wen-7 ~]# groupadd sysadmins[root@wen-7 ~]# getent group sysadminssysadmins:x:6015:
将用户User1,2,3加入到sysadmins组中
[root@wen-7 ~]# useradd -G sysadmins user1[root@wen-7 ~]# useradd -G sysadmins user2[root@wen-7 ~]# useradd -G sysadmins user3
将user3设置为sysadmins的管理员用户
[root@wen-7 ~]# gpasswd -A user3 sysadmins
用user3登录,将user2从组移除
[root@wen-7 ~]# su - user3 -c "gpasswd -d user2 sysadmins"正在将用户“user2”从“sysadmins”组中删除
设置sysadmins密码为centos
[root@wen-7 ~]# gpasswd sysadmins正在修改 sysadmins 组的密码新密码:请重新输入新密码
设置user1在创建新文件使,文件的所组为syaadmins
[root@wen-7 ~]# su - user1[user1@wen-7 ~]$ newgrp sysadmins[user1@wen-7 ~]$ touch fdsf | ll总用量 0-rw-rw-r-- 1 user1 user1 0 8月 3 10:35 a.sh-rw-r--r-- 1 user1 sysadmins 0 8月 3 10:36 dfa[user1@wen-7 ~]$
删除用户user1,2,3
[root@wen-7 ~]# userdel -r user1[root@wen-7 ~]# userdel -r user2[root@wen-7 ~]# userdel -r user3userdel:组“user3”没有移除,因为它不是用户 user3 的主组
删除组sysadmin
[root@wen-7 ~]# groupdel sysadmins
用户管理命令:
1.useradd:创建用户,更新默认新用户信息
useradd 【OPTIONS】 Username
选项:
-u: 指定uid号
-g:指定基本组ID,此组得事先存在
-o: 配合-u 不检查UID的唯一性
-G:指明用户所属的附加组名,多个组之间作用逗号分隔,此组得事先存在
-c:指明注释信息
-d:指明用户家目录位置,默认指向/home/ 通过复制/etc/skel/此目录并重命名实现,指定的家目录如果实现存在,则不会为用户复制环境配置文件。 配合-m使用
-s:指明用户的默认shell类型,可用的所有shell列表存储在/etc/shells/文件
-r:创建系统用户 ,家目录,邮箱不会自动生成
-N:不创建私有组作为主组:
-M:不创建用户家目录
-f:密码过期后,账号被彻底禁用之前的天数
[root@wen-7 ~]# useradd -o -u 1208 -G gentoo,wen -c "zhifei is Linux system" -d /users/zhifei zhifei [root@wen-7 ~]# getent passwd zhifei zhifei:x:1208:1208:zhifei is Linux system:/users/zhifei:/bin/bash
useradd -D:显示用户创建时的默认选项
useradd -D 选项: 修改默认选项的值 修改的结果保于/etc/default/useradd文件,也可以直接编辑文件来修改变量
[root@wen-7 ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [root@wen-7 ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
[root@wen-7 ~]# cat /etc/login.defs 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 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512
扩展: 批量创建用户:
(1)创建用户文件 user.sh,按照/etc/passwd的格式
(2) newusers user.sh #批量创建用户
(3)创建密码文件passwd.sh, 格式:username:password
(4)cat passwd.sh |chpasswd #批量修改密码
[root@w6 ~]# cat user.sh we7:x:507:507::/home/we7:/bin/bash we8:x:508:508::/home/we8:/bin/bash we9:x:509:509::/home/we9:/bin/bash [root@w6 ~]# newusers user.sh [root@w6 ~]# tail -n3 /etc/passwd we7:x:507:507::/home/we7:/bin/bash we8:x:508:508::/home/we8:/bin/bash we9:x:509:509::/home/we9:/bin/bash [root@w6 ~]# cat passwd.sh we7:123456 we8:123456 we9:123456 [root@w6 ~]# cat passwd.sh | chpasswd [root@w6 ~]# tail -n3 /etc/shadow we7:$6$IfgzE/H6x.$OYFvTlN3HxiUDvlVGhFU5ubi5jQfrNY2P5C0fhted4PDHP3XI6DQuZw13LEyBvuanHnHkplvR25wP9ZFqViTq1:17012:0:99999:7::: we8:$6$rzkZHmbVkD/2dgcz$/jx52XRml4tP4jB2HMdRAPlcAC5HDFS2K9ClKnSXulYnaPfceUbjBw9EAiFPBgE4clYVM5wtfII6mmIKRRs4T1:17012:0:99999:7::: we9:$6$8weaIXfBEiP$Pg8JQSYEOFlYWhVW1FGtOFlLf7PJSMvoJOoqLy3FdfC7vNOBHsWjdAGqlKmaiB76AY5GRwA/aYMezIA5e9zaf/:17012:0:99999:7::: [root@w6 ~]#cp -r /etc/skel/. /home/we9
练习:
1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"GentooDistribution"
[root@w6 ~]# useradd -G bin,root -c "GentooDistribution" -s /bin/csh gentoo1 [root@w6 ~]# getent passwd gentoo1 gentoo1:x:510:510:GentooDistribution:/home/gentoo1:/bin/csh [root@w6 ~]# groups gentoo1 gentoo1 : gentoo1 root bin
2、创建下面的用户、组和组成员关系
名字为admins 的组
用户natasha,使用admins 作为附属组
用户harry,也使用admins 作为附属组
用户sarah,不可交互登录系统, 且不是admins 的成员natasha, harry, sarah密码都是centos
[root@wen-7 ~]# groupadd admins [root@wen-7 ~]# useradd -G admins natasha [root@wen-7 ~]# useradd -G admins harry [root@wen-7 ~]# useradd -s /sbin/nologin sarsh [root@wen-7 ~]# tail -n3 /etc/passwd natasha:x:4048:4048::/home/natasha:/bin/bash harry:x:4049:4049::/home/harry:/bin/bash sarah:x:4050:4050::/home/sarah:/sbin/nologin [root@wen-7 ~]# echo "centos"| passwd --stdin natasha 更改用户 natasha 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@wen-7 ~]# echo "centos"| passwd --stdin harry 更改用户 harry 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@wen-7 ~]# echo "centos"| passwd --stdin sarah 更改用户 sarah 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@wen-7 ~]# echo "centos"| passwd --stdin sarah
(2)usermod:修改用户属性
usermod [OPTINOS] username
选项:
-u UID:修改用户的id号
-g GROUP:修改用户所受的基本组
-G GROUP:修改用户所属的附加组,原来的组会被覆盖
-a:与 -G一同使用,用于为用户追加新的附加组
-c:修改注释信息
-d home_DIR:修改用户的家目录,用户原有的文件不会被转移
-m:与-d配合使用,修改用户家目录后,移动原有的文件至新的家目录
-l newname: 修改用户名
-s shell:修改用户的shell类型
-L:锁定用户密码,禁止用户登录,及即在用户原来的密码字符串之前添加一个“!“
-U:解锁用户密码 删除 ”!“ !没有后,可免密码登录
(3).userdel :删除用户
userdel [OPTIONS】 username
-r:删除用户时,一并删除其家目录和邮箱,系统默认不删家目录
练习:
1.创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);
[root@wen-7 ~]# groupadd -g 5000 distro [root@wen-7 ~]# groupadd -g 5001 peguin [root@wen-7 ~]# groupadd gentoo root@wen-7 ~]# useradd -u 4001 -g gentoo -G distro,peguin gentoo [root@wen-7 ~]# tail -1 /etc/passwd gentoo:x:4001:5002::/home/gentoo:/bin/bash [root@wen-7 ~]# tail -3 /etc/group distro:x:5000:gentoopeguin:x:5001:gentoogentoo:x:5002:
2.创建用户fedore,其注释信息为“Fedore Core” 默认shell为/bin/tcsh
[root@wen-7 ~]# useradd -c "Fedora Core" -s /bin/tcsh fedora [root@wen-7 ~]# tail -1 /etc/passwd fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh
3.修改gentoo用户的家目录为/var/tmp/gentoo,要求其原有文件仍能被用户访问
[root@wen-7 ~]# usermod -md /var/tmp/gentoo gentoo [root@wen-7 ~]# tail -2 /etc/passwd gentoo:x:4001:5002::/var/tmp/gentoo:/bin/bashfedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh [root@wen-7 ~]# ls -a /var/tmp/gentoo/ . .. .bash_logout .bash_profile .bashrc .mozilla .zshrc
4.为gentoo新增附加组netadmin;
[root@wen-7 ~]# usermod -aG netadmin gentoo [root@wen-7 ~]# tail -2 /etc/group fedora:x:4002: netadmin:x:5003:gentoo
5.删除用户fedore
[root@wen-7 ~]# userdel -r fedora userdel:组“fedora”没有移除,因为它不是用户 fedora 的主组 userdel:/users/fedora/ 并不属于 fedora,所以不会删除 [root@wen-7 ~]# ll /home/ 总用量 4 drwx------ 3 docker docker 87 7月 30 11:14 docker drwx------ 3 4002 fedora 87 7月 29 16:37 fedora drwx------ 3 hadoop hadoop 87 8月 1 08:35 hadoop drwx------ 3 harry harry 87 8月 1 21:24 harry drwx------ 3 natasha natasha 87 8月 1 21:24 natasha drwx------ 3 sarah sarah 87 8月 1 21:26 sarah drwx------. 15 wen wen 4096 7月 30 11:42 wen drwx------ 3 wen1 wen1 87 7月 29 14:58 wen1
(4).passwd命令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S]
passwd [–stdin] [username]
选项:
-l:锁定用户
-u:解锁用户
-d:清除用户密码
-e date:强制更改过期期限,日期
-i date:非活动期限;
-n date:密码的最短使用期限
-x date:密码的最长使用期限
-w date:警告期限
–stdin:标准输入 echo ”PASSWD“|passwd –stdin USERNAME
[root@wen-7 ~]# echo "123456" | passwd --stdin gentoo 更改用户 gentoo 的密码 。 passwd:所有的身份验证令牌已经成功更新。
(5).chage命令 更改用户密码过期信息
chage username:交互式更改,不用指定选项
-d: 更改最后一次更改密码的日期 跟0表示下一次更改
-E:
-W:
-m:
-l: 查看密码策略
[root@w6 ~]# chage -d 17011 -E 3 -W 9 -m 4 wen[root@w6 ~]# getent shadow wenwen:$6$TfrxzyP7T.sVpvMD$phH8yrBzDQ.dfh3A/9SB8pr2pVHOAjfG3mgoA/g0szkU.Wvkd8z2RBa2IQQNVsj3.iYjSkP3UHUt348bt3n1B1:17011:4:99999:9::3:
(6)id 显示用户的真实有效id信息
id [options] username
默认是当前登录用户,后接其他用户名,查看其他用户
选项:
-u:只显示UID
-g:只显示基本组ID
-G: 所有组的ID号
-n:只显示名称 而非id 配合以上选项使用
[root@wen-7 ~]# id -u wen 1000 [root@wen-7 ~]# id -g wen 1000 [root@wen-7 ~]# id -G wen 1000 4046 [root@wen-7 ~]# id -nu wen wen [root@wen-7 ~]# id -ng wen wen [root@wen-7 ~]# id -nG wen wen gentoo
(7) su命令 :swith user
登录式切换:会通过重新读取用户的配置文件,环境变量来重新初始化
su – USername
su -l Username
非登录式切换:不会读取目标用户的配置文件,环境变量来进行初始化
su Username
[root@wen-7 ~]# su wen [wen@wen-7 root]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [wen@wen-7 root]$ exit exit [root@wen-7 ~]# su - wen 上一次登录:一 8月 1 21:38:04 CST 2016pts/0 上 [wen@wen-7 ~]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/wen/.local/bin:/home/wen/bin
-c command:仅以指定用户的身份运行此处指定的命令,不进行实质切换
[root@wen-7 ~]# su - wen -c 'whoami` wen
注意:管理员可无密码切换至其他用户,非管理员在切换用户时必须提供密码,否则无法切换
切换后,不能再su回去,只能exit退出用户登
作业:
1、创建testuser uid 1234,主组:bin,辅助组:root,ftp,shell:/bin/csh home:/testdir/testuser
[root@wen-7 ~]# useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/testuser testuser [root@wen-7 ~]# getent passwd testuser testuser:x:1234:1::/testdir/testuser:/bin/csh
2、修改testuser uid:4321,主组:root,辅助组:nobody,loginname:test,home:/home/test 家数据迁移
[root@wen-7 ~]# usermod -l test -u 4321 -g root -G nobody -d /home/test -m testuser [root@wen-7 ~]# getent passwd test test:x:4321:0::/home/test:/bin/csh
3、批量创建帐号:user1…user10
uid:3000-3009,shell:/bin/csh,home:/testdir/username
passwd:usernamepass
注意家目录相关配置,使用户正常登录
[root@w6 ~]# mkdir /testdir #创建用户文件 [root@w6 ~]# cat user.sh user1:x:3001:3001::/testdir/user1:/bin/csh user2:x:3002:3002::/testdir/user2:/bin/csh user3:x:3003:3003::/testdir/user3:/bin/csh user4:x:3004:3004::/testdir/user4:/bin/csh user5:x:3005:3005::/testdir/user5:/bin/csh user6:x:3006:3006::/testdir/user6:/bin/csh user7:x:3007:3007::/testdir/user7:/bin/csh user8:x:3008:3008::/testdir/user8:/bin/csh user9:x:3009:3009::/testdir/user9:/bin/csh user10:x:3010:3010::/testdir/user10:/bin/csh [root@w6 ~]# newusers user.sh #使用用户文件,生成用户 [root@w6 ~]# tail -10 /etc/passwd user1:x:3001:3001::/testdir/user1:/bin/csh user2:x:3002:3002::/testdir/user2:/bin/csh user3:x:3003:3003::/testdir/user3:/bin/csh user4:x:3004:3004::/testdir/user4:/bin/csh user5:x:3005:3005::/testdir/user5:/bin/csh user6:x:3006:3006::/testdir/user6:/bin/csh user7:x:3007:3007::/testdir/user7:/bin/csh user8:x:3008:3008::/testdir/user8:/bin/csh user9:x:3009:3009::/testdir/user9:/bin/csh user10:x:3010:3010::/testdir/user10:/bin/csh [root@w6 ~]# cat passwd.sh user1:user1pass user2:user2pass user3:user3pass user4:user4pass user5:user5pass user6:user6pass user7:user7pass user8:user8pass user9:user9pass user10:user10pass
[root@w6 ~]# cat passwd.sh |chpasswd #使用密码文件,批量生成密码
[root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user1 #复制家目录模板文件,使普通用户命令变量符恢复正常 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user2 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user3 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user4 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user5 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user6 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user7 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user8 [root@w6 ~]# cp -r /etc/skel/.[^.]* /testdir/user9
cp -r /etc/skel/. /home/user10 ######整个文件所有文件,隐藏和非隐藏
[root@w6 ~]# ll -a /testdir/user1 total 32 drwx------. 4 user1 user1 4096 Jul 30 16:58 . drwxr-xr-x. 12 root root 4096 Jul 30 16:53 .. -rw-r--r--. 1 root root 18 Jul 30 16:58 .bash_logout -rw-r--r--. 1 root root 176 Jul 30 16:58 .bash_profile -rw-r--r--. 1 root root 124 Jul 30 16:58 .bashrc drwxr-xr-x. 2 root root 4096 Jul 30 16:58 .gnome2 -rw-------. 1 user1 user1 53 Jul 30 16:56 .history drwxr-xr-x. 4 root root 4096 Jul 30 16:58 .mozilla
touch /etc/nologin 创建此目录可以禁止所有用户登录,并可以让用户看见文件中的提示信息,用于系统维护场景
touch /run/noligin 创建此目录可以禁止所有用户登录,并可以让用户看见文件中的提示信息,用于系统维护场景 centos7有/run/
原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/27634