涨知识啦 | Linux用户权限组

484 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

上文有讲到Linux的用户是隶属一个用户组,这个用户组代表着用户在操作系统上的权限。

一、前言

一个问题:那么我们刚才创建的用户admin是属于哪个群组呢?我们以前创建的个人用户 oscar 又属于哪个群组呢?我们之前都没配置呀。

事实上,如果你不设置用户的群组,那么默认会创建一个和它的用户名一样的群组,并且把用户划归到这个群组。

二、创建群组

addgroup 是 add 和 group 的缩写,add 是英语“添加”的意思,group 是英语“群组”的意思。所以 addgroup 命令用于添加一个新的群组。

下面命令用于创建一个名为 friends 的群组。

image.png 前 friends 这个群组还是空的,因为还没有往里面添加用户呢。

三、修改用户账户

usermod 命令用于修改用户的账户。

usermod 命令有好多参数,可以实现不同的功能。不过我们暂时只需要记得它的两个参数:

  • -l:对用户重命名,但是 /home 目录中的用户家目录名不会改变,需要手动修改;
  • -g:修改用户所在群组。此用户的家目录里的所有文件的所在群组会相应改变。

用法很简单,假如我要将 admin 这个用户放到我刚创建的 friends 这个群组里,可以这样写:

usermod -g admin friends

我们怎么知道用户 thomas 的群组已经改变为 friends 了呢?

我们可以用 groups 命令,这个命令可以获知一个用户属于哪个(些)群组。用法很简单,后接用户名就可以了,当然用户要存在才行。

四、删除群组

delgroup 命令用于删除一个已存在的群组。

用法很简单,后接想要删除的群组名。例如:

delgroup friends

就删除了 happy 这个群组。

五、改变文件的所有者

chown 命令用于改变文件的所有者。

用法也很简单,后接新的所有者的用户名,再接文件名。例如:

chown thomas file.txt

需要注意的是此命令也需要 root 身份才能运行。

六、改变群组

chgrp 命令用于改变文件的群组。

用法也很简单,后接新的群组名,再接文件名。例如:

chgrp thomas file.txt