用户uid:
100以内为系统用户
100-400为应用用户
400以后为自己创建的用户
【用户存在的系统文件】
/etc/passwd //用户组信息文件
/etc/group //用户组信息
/etc/shadow //用户认证信息
/home/username //用户家目录
/etc/skel/.* //用户的基本配置信息
#vim /etc/passwd //共7段
用户名称:密码:uid:gid:用户说明:用户家目录:用户所使用的shell
eg:student : x : 1000 : 1000 : Student User: /home/student : /bin/bash
root:x:0:0:root:/root:/bin/bash
#vim /etc/group //共4段
用户组名称:用户组密码:用户组id:附加组成员
eg:student:x:1000:
root:x:0:
#vim /etc/shadow //共9段
用户名称:密码:密码使用天数:密码最短有效期:密码最长有效期:密码警告期:密码非活跃期:密码到期日:blank
root : $6$UiGI4Tc2$htsXYn5cJnOqv3P1VLcUSgfjDu2pL5yiJBuua6foZAHdwqeuLHfYUfS/vBn27Wjvoel8EJgtdsMjyquqvKAmf1 : 16261 : 0 : 99999 : 7 : : :
【用户操作命令】
id:查看用户信息
id-u //用户uid
-g //用户gid
-a //用户所有信息
-G //用户所在组的所有id
-un //用户名字
-gn //用户初始组名称
-Gn //用户所在组名称
eg:[[email protected] ~]$ id -u
1000
[[email protected] ~]$ id -g
1000
[[email protected] ~]$ id -G
1000 10
[[email protected] ~]$ id -a
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[[email protected] ~]$ id -un
student
[[email protected] ~]$ id -gn
student
[[email protected] ~]$ id -Gn
student wheel
su - username //切换用户所使用的环境
为何要加-? -表示登录
不加-表示身份切换,但是没有切换用户工作环境
echo $USER //查看当前用户的信息
echo $PATH //显示当前用户的工作环境
useradd //新建用户
-u //指一定用户的初始uid
-g //指定用户初始组,这个组必须存在
-G //指定用户附加组,这个组必须存在
-c //用户说明
-d //指定用户家目录
-s //指定用户所使用的shell
-M //不创建/home下的家目录
userdel -r //删除用户
groupadd -g //新建组,-g表示指定组的id
groupdel //删除组
passwd //更改密码
cat /etc/shells //查看shell的种类
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
系统用户:shell是/sbin/nologin,不能进行交互:询问、回答
usermod -u //改变用户uid
-g //改变用户初始组
-G //改变用户附加组
-aG //添加用户附加组
-d //改变用户家目录信息
-md //改变用户家目录信息和家目录名称
-s //改变用户shell
-c //改变用户说明行文字
-L //冻结用户,锁定
-U //解冻用户,解锁
练习:
<1>新建用户组:shengchan,caiwu,jishu;
<2>新建用户要求如下:
1)tom是shengchan组的附加用户,用户id为2000;
2)harry是caiwu组的附加用户,用户组id为3000;
3)leo是jishu组的附加用户,此用户家目录在/mnt/leo中;
4)新建admin用户,此用户不属于以上提到的三个部门;
5)新建system用户westos,此用户不能登陆系统,这个用户的说明为“system westos”
[[email protected] ~]# for group in shengchan caiwu jishu;do groupadd $group && echo $group added;done
shengchan added
caiwu added
jishu added
[[email protected] ~]# useradd -u 2000 -G shengchan tom
[[email protected] ~]# id tom
uid=2000(tom) gid=2000(tom) groups=2000(tom),1001(shengchan)
[[email protected] ~]# groupadd -g 3000 harry
[[email protected] ~]# useradd -g 3000 -G caiwu harry
[[email protected] ~]# id harry
uid=2001(harry) gid=3000(harry) groups=3000(harry),2001(caiwu)
[[email protected] ~]# useradd -d "/mnt/leo" -G jishu leo
[[email protected] ~]# id leo
uid=2002(leo) gid=2002(leo) groups=2002(leo),1003(jishu)
[[email protected] ~]# useradd admin
[[email protected] ~]# useradd -s "/sbin/nologin" -c "system westos" westos
【查看用户建立或管理过程使用的命令】
#watch -n -1 ‘tail -1 /etc/shadow‘ ##使用监控功能时,用ctrl+c退出
# watch -n 1 ‘tail -3 /etc/passwd;echo ===============;tail -3 /etc/group‘
# grep bash$ /etc/passwd###过滤后缀包含bash的行
root:x:0:0:root:/root:/bin/bash
student:x:1000:1000:Student User:/home/student:/bin/bash
test:x:2005:2005::/home/test:/bin/bash
# grep bash$ /etc/passwd | awk -F: ‘{print $i}‘###过滤后缀包含bash的行后取第i列
root
student
test
【用户权限下放sudo】
which+命令 //查看系统命令的路径
权限下放动作的配置文件:/etc/sudoers
visudo ##授权(一般情况下,只有超级用户有建立用户等操作,在visudo中可以赋予普通用户超级用户的权限;当然,也可以赋予用户A用户B的权限),在进入文件进行编辑时可以报错
visudo编辑文件内容:
授权目标用户主机名称(授权用户得到新用户身份)授权用户执行命令
testlocalhost=(root)NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel
eg: sudo useradd yejunyi(在用户为test时)
【更改密码期限】
/etc/shadow 密码文件的格式(共9段)
(1) (2) (3) (4) (5) (6) (7) (8) (9)
name:passwd:lastchange:minage:maxage:warning:inactive:expire:blank
##1用户名
##2加密过的密码:*代表帐号被锁定,!!代表密码已过期,!代表没有密码
##3修改日期:上一次密码修改的日期距1970-1-1的天数
##4密码不可改的天数,若为8,则8天内不能修改密码;若为0,则随时都可修改
##5密码需要修改的期限:如果是99999则永远不用修改,如果是其他数字如12345,那么必须时距离1970-1-1的12345天内修改密码,否则密码失效
##6修改期限前n天发出警告,如你在5中规定今年6月20日规定密码必须被修改,系统会从距离6月20日的前n天向对应的用户发出警告
##7密码过期的宽限:假设这个数字被设为m,那么帐号过期m天内密码是可以被修改的,改之后账户可以继续使用
##8帐号失效日期:假设这个日期是x,x表示的仍是与1970-1-1相距的天数,过了x之后,账户失效
##9保留:被保留项,暂时还未用上
chage-d###密码使用了多久,如果设为0表示用户登陆系统前必须改密码lastchange
-m###最短有效期minage
-M###最长有效期maxage
-W###警告期
-I###非活跃期,宽限天数
-E###到期时间格式YYYY-MM-DD
chage -d 0 用户名 ##最后一次更改天数.第一次使用要先改密码,密码存在天数为0天,和银行卡一样,第一次修改好密码后以后就使用新密码
eg: # chage -d 0 haha