一、用户和用户组操作

image.png

1、用户管理

  1. vi /etc/passwd

用户

  1. useradd username //创建用户
  2. passwd username //修改密码

用户切换

  1. su username

删除用户

  1. userdel username //删除用户(未登录状态)
  2. userdel -f username //删除用户(登录状态)
  3. userdel -rf username
  4. //完全删除用户和与之关联的文件
  5. //用户主目录在/home
  6. //通信文件在/var/spool/mail/

2、组管理

创建和删除组

  1. groupadd qq
  2. groupdel qq

image.png

  • 主组是创建用户时系统默认生成的,依赖于用户的存在而存在
  • 手动创建的普通组用于管理多个普通用户

3、权限的授权

  • 读写执行权限 ``` U代表User(用户),G代表Group(组),O代表Other(其他)

-rw-r—r—. 1 root root 0 3月 16 10:21 text.txt

  • rw- r— r— -类型 rw- 可读可写 当前用户权限 r— 可读 当前用户组权限 r— 可读 其他用户权限

drwxr-xr-x. 2 root root 6 3月 16 10:25 File d rwx r-x r-x d 文件类型 rwx 可读可写可执行

  1. - 权限修改

格式一

chmod u+ ,g+ ,o+ File

格式二

chmod 777 File 4:读 2:写 1:执行

  1. 注:如果只给一个数字,表示修改o,前面置为---(不可读不可写不可执行)<br />执行前<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/12760058/1615862338908-ba74155d-ee55-4613-bc46-f006f25b72d8.png#align=left&display=inline&height=25&margin=%5Bobject%20Object%5D&name=image.png&originHeight=26&originWidth=564&size=2572&status=done&style=none&width=539)<br />执行后(chmod 7 text.txt)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/12760058/1615862377151-48c34b20-351a-411a-8af8-8e9a05200e85.png#align=left&display=inline&height=28&margin=%5Bobject%20Object%5D&name=image.png&originHeight=30&originWidth=576&size=2851&status=done&style=none&width=539)
  2. - 修改用户组

chgrp 修改当前文件的组 chgrp -R 修改当前的文件夹(包括文件夹下的所有文件)的组

  1. - 修改所属用户

chown 修改所属用户 chown -R 修改当前的文件夹(包括文件夹下的所有文件)的所属用户

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12760058/1615876086562-08d686e8-4ead-4ce9-9aab-675d4ce00282.png#align=left&display=inline&height=365&margin=%5Bobject%20Object%5D&name=image.png&originHeight=729&originWidth=1519&size=698488&status=done&style=none&width=759.5)
  2. - 管理用户和组

gpasswd [选项] 用户 组 选项: -a, —add USER 向组 GROUP 中添加用户 USER -d, —delete USER 从组 GROUP 中添加或删除用户 -h, —help 显示此帮助信息并推出 -Q, —root CHROOT_DIR 要 chroot 进的目录 -r, —delete-password remove the GROUP’s password -R, —restrict 向其成员限制访问组 GROUP -M, —members USER,… 设置组 GROUP 的成员列表 -A, —administrators ADMIN,… 设置组的管理员列表

  1. ---
  2. - 主组是默认内有任何用户的;
  3. - 添加一个用户到组的时候,可以添加到普通组、别的主组和 本身的组。
  4. - 删除普通组,无论有无用户,都可以直接删除
  5. - 删除主组,并且主组下面有用户,则主组不会删除
  6. <a name="hwPSH"></a>
  7. # 二、对配置文件的解析
  8. <a name="80eeb83b"></a>
  9. ## 1、用户passwd

vim /etc/passwd

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12760058/1615896282921-d75d422f-48f9-45cf-94ec-0af62f023440.png#align=left&display=inline&height=81&margin=%5Bobject%20Object%5D&name=image.png&originHeight=99&originWidth=706&size=34656&status=done&style=none&width=577)
  2. - 字段1:**帐号名**
  3. 这是用户登陆时使用的账户名称,在系统中是唯一的,不能重名
  4. - 字段2:**密码占位符x**
  5. 早期的unix系统中,该字段是存放账户和密码的,由于安全原因,后来把这个密码字段内容移到/etc/shadow中了。<br />这里可以看到一个字母x,表示该用户的密码是/etc/shadow文件中保护的。
  6. - 字段3:**UID**
  7. 范围是0-65535
  8. - 字段4:**GID**
  9. 范围是0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且UIDGID相同的组。
  10. - 字段5:**用户说明**
  11. 这个字段是对这个账户的说明
  12. - 字段6:**宿主目录**
  13. 用户登陆后首先进入的目录,一般与"/home/用户名"这样的目录
  14. - 字段7:**登录Shell **
  15. 当前用户登陆后所使用的shell,在centos/rhel系统中,默认的shellbash;如果不希望用户登陆系统,可以通过usermod或者手动修改passwd设置,将该字段设置为/sbin/nologin 即可。大多数内置系统账户都是/sbin/nologin,这表示禁止登陆系统。这是出于安全考虑的。
  16. ---
  17. **UID:**<br />0:当用户的UID0时,表示这个账户为超级用户;如果要增加一个系统管理员账户的话,只需将该账户的UID改为0即可(不建议)。<br />1~499:这个范围是保留给系统用户使用的UID<br />500~65535:普通账户UID<br />**passwd的文件权限:**<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/12760058/1615896696156-78a3d805-44a6-4de8-8f71-d548588e564e.png#align=left&display=inline&height=53&margin=%5Bobject%20Object%5D&name=image.png&originHeight=106&originWidth=814&size=28103&status=done&style=none&width=407)<br />因为每个用户登录时都需要取得UID和GID来判断权限问题,所以/etc/passwd的权限为644,这样一来就会带来安全问题,即所有的用户都可以都/etc/passwd文件,即使文件内的密码是加密的,但还是存在一定的被攻击破解的安全隐患。因此,就有了/etc/shadow文件。<br />
  18. <a name="AYeBz"></a>
  19. ## 2、用户影子口令文件shadow

vim /etc/shadow

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12760058/1615897329730-5208cdb6-5bb6-4ba5-9438-a55b3acb1c44.png#align=left&display=inline&height=24&margin=%5Bobject%20Object%5D&name=image.png&originHeight=33&originWidth=1402&size=10935&status=done&style=none&width=1020)
  2. - 字段1:帐号名称
  3. - 字段2:**加密的密码**
  4. - 字段3:**最近更改密码的时间**
  5. 1970/1/1到上次修改密码的天数
  6. - 字段4:**禁止修改密码的天数**
  7. 1970/1/1开始,多少天之内不能修改密码,默认值为0
  8. - 字段5:**用户必须更改口令的天数**
  9. 密码的最长有效天数,默认值为99999
  10. - 字段6:**警告更改密码的期限**
  11. 密码过期之前警告天数,默认值为7;在用户密码过期前多少天提醒用户更改密码
  12. - 字段7:**不活动时间**
  13. 密码过期之后账户宽限时间 3+5;在用户密码过期之后到禁用账户的天数
  14. - 字段8:**帐号失效时间**,
  15. 默认值为空;从1970/1/1日起,到用户被禁用的天数
  16. - 字段9:保留字段(未使用),标志
  17. <a name="e1Wy6"></a>
  18. ## 3、用户组group
  19. /etc/group 文件是用户组的配置文件,内容包括用户与用户组,并且能显示用户归属哪个用户组,因为一个用户可以归属一个或多个不同的用户组;**同一用户组的用户之间具有相似的特性**。如果某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进入。

vim /etc/group ``` image.pngimage.png

  • 字段1:组账户名称
  • 字段2:密码占位符x

通常不需要设置该密码,由于安全原因,该密码被记录在/etc/gshadow中,因此显示为’x’。这类似/etc/shadow

  • 字段3:组账户GID号,用户组ID
  • 字段4:本组的成员用户列表

加入这个组的所有用户账号

4、用户组的影子文件gshadow

/etc/gshaow是/etc/group的加密文件,比如用户组的管理密码就是存放在这个文件。/etc/group和/etc/gshadow是互补的两个文件;比如大型服务器,针对很多用户和用户组,定制一些关系结构比较复杂的额权限模型,设置用户组密码是极有必要的。比如不想让一些非用户组成员永久拥有用户组的权限和特性,这时就可以通过密码验证的方式来让某些用户临时拥有一些**用户组特性**,这时就要用到用户组密码;
格式如下,每个用户组独占一行。
image.png

  • 字段1:组账号的名称
  • 字段2:加密后的密码字符串

这个字段可以空的或者!;如果是空的或有!,表示没有密码

  • 字段3:本组的管理员列表

这个字段也可为空;如果有多个用户组管理员,用,号分隔

  • 字段4:本组的成员列表

加入这个组的所有用户账户;列表中多个用户通过”,”分隔