参考:https://www.csdn.net/tags/MtjaIg5sMjQwNzQtYmxvZwO0O0OO0O0O.html
1.uid相关知识
Linux 并不识别用户名称(比如work、root等),而是根据用户名对应的 ID 号(即uid)识别不同类型的用户,不同的uid对应不同用户的权限。 1) uid=0 当 UID 是 0 时,代表这个账号是系统管理员。当你要创建一个账户为另一个系统管理员账号时, 可以将该账号的 UID 改成 0 即可; 2)uid=1-499 1-499的uid是给系统中的服务使用的,这主要是出于权限控制的考虑。早先系统服务都使用root权限进行启动,导致一旦一个服务进行被侵入,则劫持者可以使用启动该服务的用户权限对系统进行侵入。 3)uid=500-65535 操作系统分给普通用户的uid段。 由于我使用的是centos系统,所以对centos的uid进行一下总结。
1.1.1 centos6
超级用户UID=0 root; 虚拟用户UID=1-499 用于启动系统服务,一般不需要登录; 普通用户UID=500起;
1.1.2 centos7
超级用户 UID=0 root; 虚拟用户 UID=1-1000 用于启动系统服务,一般不需要登录; 普通用户 UID=1000 起;
2. 背景
由于需要对work用户权限进行限制,所以需要修改work用户的uid,使其拥有一个普通用户的uid,而不是0。如果用户的uid为0,则拥有和root用户一样的权限,root用户的uid就是0。为了防止权限过大,需要把work用户的uid设置为1000之后,这是系统分给普通用户的uid段。 如何查看用户的uid、gid和groups呢?
id work
如下图,work用户拥有和root一样的权限(uid=0),这是我们想改变的,改成uid>1000即可。
3.修改方法
在背景中已经讲述了我们想要达到的目的。那如何修改work的uid呢?
3.1 修改/etc/passwd配置文件
/etc/passwd配置文件存储了用户的相关信息,如下图: 每一行的内容,以work用户为例,分别是用户名称、密码(这里是x)、uid、gid、用户信息描述(这里为空)、家目录和登录时使用的默认bash。 在修改uid之前,我们需要知道哪一个uid还没被使用,使用id uid即可,返回为no such user即表示该uid未被使用。
id 1003
使用命令vim /etc/passwd,修改work对应的uid为1003,保存并退出即可。
|