CentOS 7.2 中用户管理
一、用户管理
1、用户的类型
在 Linux
系统中,有三种用户。
超级用户
用户名为 root
,用户 ID
为 0
。有着至高无上的权限,可执行所有任务,可访问所有文件,可管理所有用户。
在服务器配置工作完毕后,为了安全,不应该直接使用超级用户。
普通用户
用户 ID
默认从 1000
开始。供普通用户使用。
系统服务用户
用户 ID
默认为 1-499
。仅供系统服务使用,默认不可登录(即默认 SHELL
为 /sbin/nologin
)。
2、查看本机用户信息
/etc/passwd
文件格式如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
该文件以:
作为字段分隔符,保存了本机所有用户的基本信息。以下详细说明其含义。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e494nTa5-1573806664333)(./pic/user.jpg)]
在早期的 Linux
系统中,密码是保存在这个文件里的。但是该文件默认所有用户都可读,会对系统安全造成威胁。现在,密码都以散列的形式存储在了 /etc/shadow
中了。
/etc/shadow
文件格式如下:
root:$6$3Cprk6.h$Ied2v...:17438:0:99999:7:::
bin:*:17110:0:99999:7:::
...
该文件默认的权限为 000
,也就是所有用户都不可访问(root
肯定可以访问,但是不建议直接修改此文件)。
该文件同样以:
作为字段分隔符,保存了本机所有用户有关密码以及安全的信息。以下详细说明其含义。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MdphAhGb-1573806664342)(./pic/passwd.jpg)]
3、添加用户
命令用法:
useradd [选项] <用户名>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZpRXfUPr-1573806664349)(./pic/add.jpg)]
4、删除用户
命令用法:
userdel [选项] <用户名>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aL5cwiFv-1573806664364)(./pic/del.jpg)]
5、修改用户参数
命令用法
usermod [选项] <用户名>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TecUn9br-1573806664365)(./pic/mod.jpg)]
6、用户密码及安全管理
命令用法
passwd [选项] <用户名>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FiMiAgFB-1573806664365)(./pic/modpw.jpg)]
7、切换到某一用户执行命令
命令用法
sudo [选项] <命令>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EIwiqA1f-1573806664365)(./pic/sudouser.jpg)]
二、组管理
1、组的概述
组是一类特殊账户,指具有相同或者相似特性的用户集合。
一个用户可以同时属于多个组,其中某个组为该用户的主要组,其他组为该用户的附加组。
而主要组是在用户登录时默认使用的组身份。在创建文件或目录时,若不指定属主,默认使用该组身份。
组的分类以及组 ID
的分布情况与用户基本一致。
每一个组可以由 root
指定一个或多个组管理员。
管理员可以添加或删除组中的成员。所有组管理员共用一个管理员密码。
组管理员可以是系统中的任意账户,可以不是组中的成员。
2、查看本机组信心
/etc/group
文件的格式如下:
root:x:0:
bin:x:1:
...
该文件以 : 作为字段分隔符,保存了本机组的基本信息。以下详细说明其含义。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vNSpFE4x-1573806664366)(./pic/group.jpg)]
在早期的 Linux
系统中,组管理员密码是保存在这个文件里的。但是该文件默认所有用户都可读,会对系统安全造成威胁。现在,密码都以散列的形式存储在了 /etc/gshadow
中了。
/etc/gshadow
文件的格式如下:
root:::
bin:::
...
该文件默认的权限为 200,也就是只有 root 有写权限(root 也肯定可以读)。
该文件同样以 : 作为字段分隔符,保存了本机所有组的组管理员以及管理员密码。以下详细说明其含义。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wog52ux6-1573806664366)(./pic/gshadow.jpg)]
3、添加组
命令用法
groupadd [选项] <组名>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GiTAljfq-1573806664376)(./pic/addg.jpg)]
4、删除组
命令用法
groupdel <组名>
5、修改组参数
命令用法
groupmod [选项] <组名>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueAFApSt-1573806664377)(./pic/modg.jpg)]
6、组成员管理
添加一个成员到组中
命令用法
gpasswd -a <用户名> <组名>
从组中删除一个成员
命令用法
gpasswd -d <用户名> <组名>
设置组成员列表
命令用法
gpasswd -M <用户名1>[,<用户名2>,...] <组名>
设置组管理员列表
命令用法
gpasswd -A <用户名1>[,<用户名2>,...] <组名>
设置组管理员密码
命令用法
gpasswd <组名>
删除组管理员密码
命令用法
gpasswd -r <组名>
查看用户加入的组
命令用法
groups [用户名]
若不指定用户名,则查看当前用户加入的组。
7、切换用户当前的组身份
命令用法
newgrp <组名>
三、授权
个人用户的权限只可以在本home下有完整权限,其他目录要看别人授权。而经常需要root用户的权限,这时候sudo
可以化身为root
来操作。我记得我曾经sudo
创建了文件,然后发现自己并没有读写权限,因为查看权限是root
创建的。
新创建的用户并不能使用sudo
命令,需要给他添加授权。
sudo
命令的授权管理是在sudoers
文件里的。可以看看sudoers
:
[root@localhost ~]# sudoers
bash: sudoers: 未找到命令...
[root@localhost ~]# whereis sudoers
sudoers: /etc/sudoers /etc/sudoers.d /usr/libexec/sudoers.so /usr/share/man/man5/sudoers.5.gz
找到这个文件位置之后再查看权限:
[root@localhost ~]# ls -l /etc/sudoers
-r--r----- 1 root root 4251 9月 25 15:08 /etc/sudoers
是的,只有只读的权限,如果想要修改的话,需要先添加w权限:
[root@localhost ~]# chmod -v u+w /etc/sudoers
mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)
然后就可以添加内容了,在下面的一行下追加新增的用户:
[root@localhost ~]# vim /etc/sudoers
## Allow root to run any commands anywher
root ALL=(ALL) ALL
linuxidc ALL=(ALL) ALL #这个是新增的用户
wq
保存退出,这时候要记得将写权限收回:
[root@localhost ~]# chmod -v u-w /etc/sudoers
mode of "/etc/sudoers" changed from 0640 (rw-r-----) to 0440 (r--r-----)
这时候使用新用户登录,使用sudo
:
[linuxidc@localhost ~]$ sudo cat /etc/passwd
[sudo] password for linuxidc:
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.
第一次使用会提示你,你已经化身超人,身负责任。而且需要输入密码才可以下一步。如果不想需要输入密码怎么办,将最后一个ALL
修改成NOPASSWD: ALL
。