1-6-RHEL7用户管理
本节所讲内容:
用户通常来说是指使用计算机的人,计算机对针使用其的每一个人给了一个特定的名称,用户就可以使用这种名称来登入使用计算机,不仅人之外,一些系统服务也须要富含部份特权的用户帐户运行;因而出于安全考虑,用户管理应运而生,它加以明晰限制各个用户帐户的权限,root在计算机中用拥有至高特权,所以通常只作管理用,非特权用户可以通过SU或SUDO程序将至时获得特权
GNU/Linux通过用户和用户组实现访问控制----包括对文件访问、设备使用的控制。
Linux默认的访问控制机制相对简单直接,它还有愈发中级的机制,包括ACL和集中式身分管理系统
个人可以拥有好多帐户,只不是彼此名称不同,例如root名称早已占用就不能再用了linux删除文件夹,再者,任意用户可能从属某个用户组,此用户可以加入个别早已存在的组来获得该组的特权
GNU/Linux系统中的每一个文件都从属一个用户(属主)和一个用户组(属组)。另外,还有三种类型的访问权限:读(read)、写(write)、运行(execute)。我们可以针对文件的属主、属组、而设置相应的访问权限。再度,我们可以通过ls|stat命令查询文件属主、属组和权限
使用stat命令也可以查看文件所有权和权限:
属主:
[root@panda~]#stat-c%U/boot/initrd-plymouth.img
root
属组:
[root@panda~]#stat-c%G/boot/initrd-plymouth.img
root
第1章用户帐号:1.1用户的分类
Linux用户三种角色
本地用户UID:1000+500+
UID:即每位用户的身分标识,类似于每位人的身分证号码.
右图是用户和组的关系:
一对一:一个用户可以存在一个组中;一对多:一个用户可以存在多个组中
多对一:多个用户可以存在一个组中;多对多:多个用户可以存在多个组中
1.2配置文件
名称
账号信息
说明
用户配置文件
/etc/passwd
记录了每位用户的一些基本属性,而且对所有用户可读,每一行记录对应一个用户linux 修改用户环境变量,每行记录通过破折号进行分隔
用户组文件
/etc/group
用户组的所有信息储存地儿,但是组名不能重复
用户对应的密码信息
/etc/shadow
由于passwd文件对所有用户是可读的linux 修改用户环境变量,为安全起见把密码从passwd中分离下来装入这个单独的文件,该文件只有root用户拥有读权限,因而保证密码安全性
第2章用户管理
1.2.1用户命令
命令:useradd
useradd-m-g"初始组"-G"附加组"-s"登录的shell""用户"
1.2.2添加登入用户
例:添加一个名为harry的用户linux命令大全,并使用bash使用登陆的shell
[root@panda~]#useradd-s/bin/bashharry
说明:此命令会手动创建harry组,并成为harry的默认登陆主组。
用户账户的全部信息被保存在/etc/passwd文件。这个文件以如下格式保存了每一个系统账户的所有信息(数组以“:”分割)
/etc/passwd每位数组的作用:
[root@panda~]#head-1/etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:用户所属组的GID:用户描述:用房主目录(bash中"~"代表哪个):登陆后使用的shell
linux中任何一个命令的操作都必须有一个用户的身分;任何一个程序的运行必需要有一个特定的用户;任何一个文件必需要有一个特定的用户;访问一个文件或目录必须受限于一个用户;
1.2.3指定用户UID
[root@panda~]#useradd-u1100xuegod-2
[root@panda~]#ls/home
miaoxuegod-1xuegod-2
[root@panda~]#tail-2/etc/passwd
xuegod-1:x:1005:1005::/home/xuegod-1:/bin/bash
xuegod-2:x:1100:1100::/home/xuegod-2:/bin/bash
1.2.4指定用房主目录
[root@panda~]#useradd-d/mnt/xuegod-3xuegod-3
useradd:cannotsetSELinuxcontextforhomedirectory/tmp/xuegod-3
1.2.5指定用户的起始组
[root@panda~]#idxuegod-1
uid=1005(xuegod-1)gid=1005(xuegod-1)groups=1005(xuegod-1)
[root@panda~]#useradd-gxuegod-1xuegod-4
[root@panda~]#idxuegod-4
uid=1102(xuegod-4)gid=1005(xuegod-1)groups=1005(xuegod-1)
[root@panda~]#grep"god-1|god-4"/etc/passwd
xuegod-1:x:1005:1005::/home/xuegod-1:/bin/bash
xuegod-4:x:1102:1005::/home/xuegod-4:/bin/bash
1.2.6指定用户附加组
我们也叫它为补充组,用户可以是0个或多个补充组的成员
其中属于补充组的成员,我们可以在/etc/group中最后一个数组中查看,如下
[root@panda~]#cat/etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:miao
补充组成员的身分主要用于帮助确保用户具有对系统中文件及其它资源的访问权限
[root@panda~]#useraddhr
[root@panda~]#useraddfd
[root@panda~]#idhr
uid=1001(hr)gid=1001(hr)groups=1001(hr)
[root@panda~]#idfd
uid=1002(fd)gid=1002(fd)groups=1002(fd)
[root@panda~]#usermod-Gwheelhr
[root@panda~]#idhr
uid=1001(hr)gid=1001(hr)groups=1001(hr),10(wheel)
[root@panda~]#usermod-Gfdhr
[root@panda~]#idhr
uid=1001(hr)gid=1001(hr)groups=1001(hr),1002(fd)
[root@panda~]#usermod-aGwheelhr
[root@panda~]#idhr
uid=1001(hr)gid=1001(hr)groups=1001(hr),10(wheel),1002(fd)
1.2.7创建用户的另外的命令
[root@panda~]#addusermarket
[root@panda~]#grepmarket/etc/passwd/etc/group/etc/shadow
/etc/passwd:market:x:1004:1004::/home/market:/bin/bash
/etc/group:market:x:1004:
/etc/shadow:market:!!:17258:0:99999:7:::
1.2.8删掉用户
句型:userdel【参数】用户名
参数:
-r删掉用,同时删掉用户家目录和mailspool下的用户目录
[root@panda~]#ls/home
[root@panda~]#userdel–rxuegod-1
1.2.9密码的文件
[root@panda~]#tail-4/etc/passwd
xuegod-1:x:1005:1005::/home/xuegod-1:/bin/bash
xuegod-2:x:1100:1100::/home/xuegod-2:/bin/bash
xuegod-3:x:1101:1101::/tmp/xuegod-3:/bin/bash
xuegod-4:x:1102:1005::/home/xuegod-4:/bin/bash
[root@panda~]#tail-4/etc/shadow
xuegod-1:!!:17258:0:99999:7:::
xuegod-2:!!:17258:0:99999:7:::
xuegod-3:!!:17258:0:99999:7:::
xuegod-4:!!:17258:0:99999:7:::
[root@panda~]#passwdxuegod-1
Changingpasswordforuserxuegod-1.
Newpassword:
BADPASSWORD:Thepasswordisshorterthan8characters
Retypenewpassword:
passwd:allauthenticationtokensupdatedsuccessfully.
[root@panda~]#grepxuegod-1/etc/shadow
xuegod-1:$6$bfeWip/u$S1KmpF5UWUO0Nl5hdNw1QA0MyO1Mwgc5YszcIFk6ydWcPveBYFY3j3/mqD9M6.sU2PkCrTDguR9TwuCFBJBds1:17258:0:99999:7:::
列说明:
xuegod-1:$6$bfeWip/u$S1KmpF5UWUO0Nl5hdNw1QA0MyO1Mwgc5YszcIFk6ydWcPveBYFY3j3/mqD9M6.sU2PkCrTDguR9TwuCFBJBds1:17258:0:99999:7:::
格式说明如下(9个逗号分隔的数组):
name
登入名称,这个必须是系统中的有效帐户名
password
已加密密码,查看帮助说明:盐
man5passwd
man5shadow
man5group
man3crypt
lastchange
近来一次修改密码的日期,以距离1970/1/1的天数表示
min-age
不能修改密码的最少天数,近来更改过后几天才可以修改;倘若为0表示“最短期限要求”
maxage
密码过期时间,必须修改密码前的最多天数
warning
密码正式到期的警告期,以天数表示,0表示“不提供警告”
inactive
宽限天数,密码到期后
expire
帐号过期时间,以距离1970/1/1的天数估算
blank
预留数组
扩充:
另外一种添加密码
[root@panda~]#echo123456|passwd--stdinxuegod-2
1.2.10更改密码信息(扩充)
[root@panda~]#vim/etc/login.defs
[root@panda~]#cat/etc/login.defs|grep-v"^#|^#34;
MAIL_DIR/var/spool/mail
PASS_MAX_DAYS99999
PASS_MIN_DAYS0
PASS_MIN_LEN5
PASS_WARN_AGE7
UID_MIN1000
UID_MAX60000
SYS_UID_MIN201
SYS_UID_MAX999
GID_MIN1000
GID_MAX60000
SYS_GID_MIN201
SYS_GID_MAX999
CREATE_HOMEyes
UMASK077
USERGROUPS_ENAByes
ENCRYPT_METHODSHA512
[root@panda~]#vim/etc/default/useradd
[root@panda~]#cat!$
cat/etc/default/useradd
#useradddefaultsfile
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
右图显示了密码过期的相关参数,可以通过chage对其进行调整,以施行密码过期策略
命令:chage
它是拿来修改用户密码过期信息,用到的几个参数如下:
[root@panda~]#chage-lxuegod-1
Lastpasswordchange:Apr02,2017
Passwordexpires:never
Passwordinactive:never
Accountexpires:never
Minimumnumberofdaysbetweenpasswordchange:0
Maximumnumberofdaysbetweenpasswordchange:99999
Numberofdaysofwarningbeforepasswordexpires:7
我们更改用户xuegod-1的密码信息:让这个用户在首次登陆系统时修改其密码,然后每30天被要求修改密码,还要求这个帐户在90天后到期,严禁使用
[root@panda~]#chage-d0-M30-W3xuegod-1
[root@panda~]#chage-lxuegod-1
[root@panda~]#date-d"+90days"