文章目录
用户管理
⽤户的管理(/etc/passwd)
⽤户的添加(useradd)
⽤户的删除(userdel)
⽤户的修改(usermod)
⽤户的查看(查看/etc/passwd) id
[root@redhat ~]# grep lei0 /etc/passwd
lei0:x:1000:1000::/home/lei0:/bin/bash
[root@redhat ~]# id lei0
uid=1000(lei0) gid=1000(lei0) groups=1000(lei0)
[root@redhat ~]#
创建用户时,系统自动为你创建了一个与用户名同名的用户组,这个系统创建出来的组就是私有组(private group)
每个用户都必须得属于一个组,就像我的身份一样,我属于湖北省的襄阳市的保康县里的一员,保康县就是我的所属组。
私有组的创建是系统为了保证每个用户必须属于一个组而创建的。如果创建用户时指定了用户所属组,那系统就不会为他创建私有组了。
用户密码信息/etc/shadow详解
/etc/shadow存放的是密码信息,每⼀列密码信息都被冒号分割开来。
第⼀列表示存放的是哪个⽤户的密码信息(username)
第⼆列存放的就是密码,该密码并不是明⽂的,⽽是使⽤算法⽣成的,算法在/etc/login.defs中有指定。
第三列存放的是上次修改密码的时间
第四列存放的是密码最⼩有效期
如果是0,就可以⽆限次的不考虑间隔的修改密码
如果是1,就表示,修改完密码之后,必须使⽤该密码⼀天才能再次修改
第五列存放的是密码的最⼤有效期默认是99999,表示密码99999天就会失效。
如果该数字是3,就表示,3天后密码会过期,如果你想继续使⽤,必须要在
密码到期之前修改。
第六列存放的是密码到期前提前多少天警告的时间信息
如果该数字为7,就表示密码到期之前的7天就会发出警告,告诉你密码即将过期。
第七列表示⽤户密码到期后宽限⽇期
如果该数字是2,就表示密码到期后,你还能使⽤该密码2天,如果2天到了,
你还没修改或更新密码,密码就失效了。
第⼋列表示账号失效⽇期
第⼋列的⽇期就是账号的失效⽇期。如果到了第⼋列的时间,账号直接失效。不可登录。
第九列保留
su命令详解
su(switch user)切换用户
普通用户切换到任何用户都需要输入密码
root用户切换到任何用户都不需要输入密码
su - username
su命令切换用户如果不加“-”,只是shell层面的切换,用户的环境变量实际上是没有变的,也就是切换的不彻底。
sudo
rpm -qi sudo
Summary : Allows restricted root access for specified users
Description :
Sudo (superuser do) allows a system administrator to give certain
users (or groups of users) the ability to run some (or all) commands
as root while logging all commands and arguments. Sudo operates on a
per-command basis. It is not a replacement for the shell. Features
include: the ability to restrict what commands a user may run on a
per-host basis, copious logging of each command (providing a clear
audit trail of who did what), a configurable timeout of the sudo
command, and the ability to use the same configuration file (sudoers)
on many different machines.
sudo即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等,这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。
sudoers授权规则
用户 登入主机=(代表用户) 命令
user host=(runas) command
实践:授权普通账户"lei"能挂载光盘
sudo 授权的命令需要写上命令的路径
授权lei用户可以挂载
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
lei ALL=(root) /usr/bin/mount /dev/cdrom /mnt/
使用sudo执行挂载
使用sudo执行命令时还有一个特点就是操作审计,你的操作会被记录下来
/var/log/secure日志里记录授权操作
⽤户组的管理(切换到root)
①⽤户组的添加(groupadd)
②⽤户组的删除(groupdel)
③⽤户组的查看(grep 组名)
④⽤户组的修改(groupmod)
primary group(主要组),private group(私有组),attached group(附加组)
/etc/group存放着⽤户组的信息
[lei0@redhat root]$ su -
Password:
[root@redhat ~]#
/etc/group 内容详解
[root@redhat ~]# grep kcz /etc/group
kcz:x:1001:
每⼀个冒号分割了⼀个内容
第⼀列表示组名
第⼆列表示组密码,x表示密码存放在/etc/gshadows⽂件⾥
第三列表示组ID
第四列表示"组成员"
用户组的添加
创建用户组
/etc/group存放着⽤户组的信息
[root@redhat ~]# groupadd kcz
[root@redhat ~]# grep kcz /etc/group
kcz:x:1001:
[root@redhat ~]#
用户组的删除
[root@redhat ~]# groupadd lsj
[root@redhat ~]# grep lsj /etc/group
lsj:x:1002:
[root@redhat ~]# groupdel lsj
[root@redhat ~]# grep lsj /etc/group
[root@redhat ~]#
用户组的查看
[root@redhat ~]# grep kcz /etc/group
kcz:x:1001:
[root@redhat ~]#
用户组的修改
用户是有UID的,那么对于用户组来说也有GID(Group ID),GID也是唯一的。
为什么要有ID,因为系统是根据Id来识别用户和用户组的。
添加用户组的同时可以指定GID
[root@redhat ~]# groupadd -g 10086 kcq
[root@redhat ~]# grep kcq /etc/group
kcq:x:10086:
[root@redhat ~]# groupmod -g 68001 kcq
[root@redhat ~]# grep kcq /etc/group
kcq:x:68001:
[root@redhat ~]#
⽤户组和⽤户的关联
创建⽤户的时候指定⽤户组
由于任何⽤户都必须依赖于⽤户组才能存在,所以如果创建⽤户没有指定⽤户组(primary group),
那么系统会为该⽤户创建⼀个同名的组。这个组叫做该⽤户的private group(私有组),
私有组默认⾥⾯只有⼀个和该私有组同名的⽤户。
耿彦祖的经验之谈:私有组的意义就在于让⽤户有了⼀个⽤户组。
添加一个leilei的用户,将他添加到kcz组中
[root@redhat ~]# useradd leilei -g kcz
[root@redhat ~]# id leilei
uid=1000(leilei) gid=1001(kcz) groups=1001(kcz)
[root@redhat ~]# grep kcz /etc/group
kcz:x:1001:
如果你创建了⼀个⽤户,指定了该⽤户的所属组,那么该⽤户就没有私有组。