今天我们的第一部分先讲用户信息存储的文件
- 用户基本信息文件
- 用户密码信息文件
- 组信息文件
1.用户基本信息文件(我们以超级管理员为例 /etc/passwd)
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
root : x : 0 : 0 : root : /root : /bin/bash
用户名 : x : uid : gid : 描述 :HOME : shell
root:登录系统的名字
x:密码占位符,具体的内容不在这里
0:UID,用户的身份证
0:GID,GROUP组号
root:描述,比如产品经理等
/root:家目录,登录系统时,所在的目录
/bin/bash:登录shell(命令解释器)
2.用户密码信息文件( /etc/shadow)
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# head -1 /etc/shadow
root:$6$xS8j2OCp$ainIyMkDe2R2uojYvTLABaLdMjJG8XjGjxrH5HfrNpR0DpJG0OQM9fsxhvESvrjZbHNp7DfZhAi00AZzxUpwI1:19346:0:99999:7:::
root : $6$xS8j2 : 19346 : 0 : 99999 : 7: : :
登录名:加密后密码:天数:最小间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留
1.“登录名”是与 /etc/passwd 文件中的登录名相一致的用户账号
2.“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;* 代表账号已经被锁定; !!表示该密码已经过期
$6$ --SHA-512加密
$1$ --MD5加密
$2$ --Blowfish加密
$5$ --SHA-256加密
3.“最后一次修改时间”表示从某个时刻起,到用户最后一次修改口令的天数,时间起点对不同的系统可能不一样 Linux-1970.1.1
4.最小间隔:改密码之间的最短时间间隔
5.最大时间间隔:密码的有效期
3.组文件信息( /etc/group)
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# head -1 /etc/group
root:x:0:
root : x : 0 :
组名:组密码:组ID:组成员
4. 创建用户
在linux系统中怎么样才能创建一个用户呢?
useradd 用户名 创建一个用户
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# useradd surper //创建一个surper得到普通用户
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# id surper //查找用户的具体信息
uid=1002(surper) gid=1002(surper) groups=1002(surper)
5.删除用户
在linux系统中怎么样才能删除一个用户呢?
userdel -r 用户名 彻底的删除用户信息
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# userdel -r surper
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# id surper
id: ‘surper’: no such user
userdel 用户名 删除用户信息,但还是会保留相关文件夹
[root@iZ2zef4rb5ixg6sieztgsdZ home]# userdel user01 //删除user01用户
[root@iZ2zef4rb5ixg6sieztgsdZ home]# id user01
id: ‘user01’: no such user //用户信息没有查到
[root@iZ2zef4rb5ixg6sieztgsdZ home]# ll
total 8
drwx------ 2 help help 4096 Dec 26 14:22 help
drwx------ 2 1000 1000 4096 Dec 27 10:39 user01
usermod -r 修改用户信息
6.修改用户密码
[root@iZ2zef4rb5ixg6sieztgsdZ home]# useradd surper
[root@iZ2zef4rb5ixg6sieztgsdZ home]# id surper
uid=1002(surper) gid=1002(surper) groups=1002(surper)
[root@iZ2zef4rb5ixg6sieztgsdZ home]# passwd surper //修改用户密码
Changing password for user surper.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
7.组
在Linux中,为什么要用到组呢?在这里给大家打个比方
比如现在有12份特权,现在来了用户1想要前三个特权,用户2想要中间三个特权,用户3想要后三个特权,那我们系统就要做9次连接,不仅如此,打个比方,用户3冲了钱,有了特权,但是因为自身原因,没有再使用过这个账户,等到了一定时间,系统还要将断开用户与特权之间的连接,这样的操作也是非常辛苦的,现实中我们的用户数量庞大,远远不止这么一点人数,所以这给系统造成了很大的压力,所以有没有一种方法介意降低对系统的操作的次数呢?答案是显然的
我们可以将这些特权按组的形式分配下去,这样后来的用户就可以进组去享受特权
1.基本组:随着用户而创建,组名同用户名(基本组只能有一个)
2.附加组:用户加入到的其他组(附加组可以有多个)
创建组 groupadd 组名
[root@iZ2zef4rb5ixg6sieztgsdZ home]# groupadd sugroup
[root@iZ2zef4rb5ixg6sieztgsdZ home]# cat /etc/group
删除用户所在的组 gpasswd -d 用户 组名
指定用户的UID -u
指定用户的附加组 -G
指定用户的基本组 -g
8.提权
- 永久提权 Swit ching users with us
- 临时提权 Running commands as root with sudo
方法一: su(可以切换到root)
1.普通用户没有特权
2.尽量少使用root
普通用户需要执行特殊指令时,使用root身份
[surper@iZ2zef4rb5ixg6sieztgsdZ home]$ useradd user01 //普通用户操作添加用户的操作
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
[surper@iZ2zef4rb5ixg6sieztgsdZ home]$ su root //切换超级管理员身份
Password: //需要输入超级管理员密码确认身份
[root@iZ2zef4rb5ixg6sieztgsdZ home]#
方法二: sudo
1.只用普通登录服务器时
2.完成部分特权指令
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# vim /etc/sudoers
有一个组叫wheel,我们可以创建一个普通用户再将他添加到这个组中
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# useradd user02 -G wheel //创建一个叫user02并添加到wheel中
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# id user02
uid=1004(user02) gid=1005(user02) groups=10(wheel),1005(user02)
[user02@iZ2zef4rb5ixg6sieztgsdZ root]$ useradd user03 //普通创建还是以失败告终
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
[user02@iZ2zef4rb5ixg6sieztgsdZ root]$ sudo useradd user03 //提权创建用户 创建成功
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for user02:
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[user02@iZ2zef4rb5ixg6sieztgsdZ root]$ id user03
uid=1005(user03) gid=1006(user03) groups=1006(user03)
9.用户不可登录
[root@iZ2zef4rb5ixg6sieztgsdZ ~]# usermod -s /sbin/nologin user03