回答自己的疑问:用户组和家目录有什么关系?分别怎么修改?

发布于:2022-12-04 ⋅ 阅读:(701) ⋅ 点赞:(0)

引子

初学linux那会儿,学到建立用户时,了解到会自动建立用户组和家目录。因为用户组和家目录同名,所以涉及到相关命令时,常对这两个概念感到模糊,甚至混为一谈。去网上寻求答案,找了一圈“家目录和用户组有什么关系/区别”,始终得不到好的解答。而在学了一段时间后,对当初的疑问有了一个比较完善的回答,特此记录一下。

一些参数

我们用useradd来创建新用户,而该命令的 -D 参数可以查看有关新建一个新用户的相关参数,举其中两个:

SKEL=/etc/skel                #家目录建立时所参考的目录

HOME=/home                #家目录存放的位置

同样可以查看相关参数的,还有文件/etc/login.defs 。该文件里面有几条参数,为

 

GID_MIN              500        #最小值
GID_MAX            60000        #最大值
#建立新用户时,如果不指定用户组,就会自动建立一个同名的用户组。此用户组的GID由这个 最小值500  与/etc/group下的最大GID进行比较,两者最大的值加一而得。

CREATE_HOME    yes  #是否自动帮新建用户建立家目录。

如果把它变为no,那么新建的用户后登录时,就会收到警告,提示字符(就是输命令时最左边那串,那是全局变量PS1,感兴趣的可以去了解了解)会变得奇奇怪怪,此时你再用pwd就会发现,你是在/root目录下的。

#建立的家目录放哪,自然就是上文提到的/home目录里了

家目录是用户登录时进入的第一个目录,在提示字符上显示~,如果使用pwd,大概率会得到 /home/用户名  这样一个结果,这便是家目录。

而用户组与文件目录的权限有关,是有GID对应的,并不是某个具体的目录。

所以这两者并不是一个东西。

扩展:修改用户所在组和修改家目录

以下操作自然用root来操作

如果想要修改已有用户的所在组很简单,使用usermod -g 用户组 用户名即可。

而若想修改用户的家目录(即登录时进入的第一个目录),则进行以下步骤:

1.用usermod -d 目录 用户 来修改家目录(容易被进程占用,导致出错)或在/etc/passwd下修改对应栏位(第六个栏位即为家目录)

2.用chown -R 用户名:组名 文件 修改该目录及其该目录下文件的拥有者和所属组(不然出现权限不够进不去“家门”的情况就尴尬了)

3使用chmod 700 目录更改该目录的权限为700

——————————————

本文含有个人总结,如有错误,敬请斧正,万分感谢!


网站公告

今日签到

点亮在社区的每一天
去签到