查看原文
其他

我的Linux学习笔记·用户和组(2)

2017-04-18 阿现 生信媛

因为我检查不够仔细,第一次发的文章中出现了小错误,考虑了一下还是撤回了。抱歉给大家带来不便,敬请谅解。


上周的内容是用户及其相关的文件和命令,这周将继续上周的内容,主要介绍组以及如何手动创建一个新用户。

 

用户组

用户组是用户的集合。之前提到文件可以根据属主,属组和其他设置不同的权限,从而限制访问。有时我们想要授权某个用户对某个文件的访问权限,可以通过修改文件的属主来实现,但如果我们想让多个用户都拥有文件的访问权限该怎么办呢?组的好处就在这里,我们可以建立一个用户组,将这些用户加入到组中,然后设置文件的属组权限,这样就可以批量修改该组用户对该文件的访问权限了。

 

/etc/group

上周提到用户管理的两个重要文件:/etc/passwd和/etc/shadow。用户组也有重要的配置文件,即/etc/group,文件的内容是用户组的相关信息。

查看一下该文件的部分内容:

head /etc/group

文件由“:”分割成4个字段:

GROUP NAME:组名,用户组的名称;

PASSWD:组密码,密码存放在/etc/gshadow中,此处以x代替;

GID:组标识号;

USER LIST:用户列表,即属于该组的用户,多个用户间以逗号分隔。

 

组管理命令

Linux用户组管理常用的命令主要有以下三个:groupadd,groupmod,groupdel。

 

groupadd创建用户组。

格式:

groupadd [options] GROUPNAME

选项:

-g: 指定GID;

-r: 添加系统组;

-p:指定组密码;

举例:

创建一个test组,GID指定为1002:

groupadd -g 1002 test


groupmod: 修改用户组信息。

格式:

groupmod [options] GROUPNAME

选项:

-g: 修改GID;

-n: 修改组名;

举例:

把刚才新建的test组的GID修改为1003:

groupmod –g 1003 test

把test组的组名修改为test1

groupmod -n test1 test

 

groupdel: 删除组。

格式:

groupdel GROUPNAME

举例:

删除test1组:

groupdel test1

 

手动创建新用户

通过以上内容,我们已经了解了用户,组以及和它们相关的文件,我们可以通过一些命令实现用户的管理,如通过useradd添加新用户。其实,我们也可以通过手动更改系统文件来实现新用户的添加。不过在这之前,我们还得先介绍一下/etc/skel目录。

 

/etc/skel

skel是skeleton的缩写,即骨架的意思。我们看一下这个目录下都有啥。

ll -a /etc/skel

是我们熟悉的.bashrc,.bash_profile等文件,每个用户的家目录下都有这些文件。每当我们使用useradd新建一个用户,/etc/skel下的所有文件都会被原封不动地拷贝到用户的家目录下。

 

手动创建新用户test

手动创建新用户test;UID为5000;GID为5000;密码为test123;

1. 更改文件/etc/passwd;

vi /etc/passwd

在最后一行添加:

test:x:5000:5000::/home/test:/bin/bash

保存;

 

2. 更改文件/etc/group;

vi /etc/group

在最后一行添加:

test:x:5000:

保存;

 

3. 更改文件/etc/shadow;

vi /etc/shadow

最后一行添加:

test:!!:17060:0:99999:7:::

密码暂时为空,后面添加,保存;

 

4. 创建家目录并更改属主,属组和权限等;

将骨架文件目录拷贝到/home下重命名为test;

cp -r /etc/skel/ /home/test

更改test文件夹及其内部文件的属主和属组;

chown -R test:test /home/test/

设定权限(属组和其他用户权限为0);

chmod -R go= test/

使用ll -a命令查看一下:

各种信息都更改成功。

 

5. 添加密码;

使用openssl,加盐为abcd1234;

openssl passwd -1 -salt abcd1234

输入密码,回车,即返回一串字符,复制到/etc/shadow中刚才预留的密码位置(代替两个!!)即可。

 

6. 登陆验证;

一切正常。至此,我们的新用户手动创建成功。

 

Tips:

更改/etc/shadow选项时,不要忘记添加密码上次更改时间(我因为不小心忘记添加,在root下可以su进去,但是登录显示认证失败)。


参考资料:

《马哥Linux》


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存