一、用户和用户组操作
1、用户管理
vi /etc/passwd
用户
useradd username //创建用户passwd username //修改密码
用户切换
su username
删除用户
userdel username //删除用户(未登录状态)userdel -f username //删除用户(登录状态)userdel -rf username//完全删除用户和与之关联的文件//用户主目录在/home//通信文件在/var/spool/mail/
2、组管理
创建和删除组
groupadd qqgroupdel qq

- 主组是创建用户时系统默认生成的,依赖于用户的存在而存在
- 手动创建的普通组用于管理多个普通用户
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 可读可写可执行
- 权限修改
格式一
chmod u+ ,g+ ,o+ File
格式二
chmod 777 File 4:读 2:写 1:执行
注:如果只给一个数字,表示修改o,前面置为---(不可读不可写不可执行)<br />执行前<br /><br />执行后(chmod 7 text.txt)<br />- 修改用户组
chgrp 修改当前文件的组 chgrp -R 修改当前的文件夹(包括文件夹下的所有文件)的组
- 修改所属用户
chown 修改所属用户 chown -R 修改当前的文件夹(包括文件夹下的所有文件)的所属用户
- 管理用户和组
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,… 设置组的管理员列表
---- 主组是默认内有任何用户的;- 添加一个用户到组的时候,可以添加到普通组、别的主组和 本身的组。- 删除普通组,无论有无用户,都可以直接删除- 删除主组,并且主组下面有用户,则主组不会删除<a name="hwPSH"></a># 二、对配置文件的解析<a name="80eeb83b"></a>## 1、用户passwd
vim /etc/passwd
- 字段1:**帐号名**这是用户登陆时使用的账户名称,在系统中是唯一的,不能重名- 字段2:**密码占位符x**早期的unix系统中,该字段是存放账户和密码的,由于安全原因,后来把这个密码字段内容移到/etc/shadow中了。<br />这里可以看到一个字母x,表示该用户的密码是/etc/shadow文件中保护的。- 字段3:**UID**范围是0-65535- 字段4:**GID**范围是0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组。- 字段5:**用户说明**这个字段是对这个账户的说明- 字段6:**宿主目录**用户登陆后首先进入的目录,一般与"/home/用户名"这样的目录- 字段7:**登录Shell **当前用户登陆后所使用的shell,在centos/rhel系统中,默认的shell是bash;如果不希望用户登陆系统,可以通过usermod或者手动修改passwd设置,将该字段设置为/sbin/nologin 即可。大多数内置系统账户都是/sbin/nologin,这表示禁止登陆系统。这是出于安全考虑的。---**UID:**<br />0:当用户的UID为0时,表示这个账户为超级用户;如果要增加一个系统管理员账户的话,只需将该账户的UID改为0即可(不建议)。<br />1~499:这个范围是保留给系统用户使用的UID<br />500~65535:普通账户UID<br />**passwd的文件权限:**<br /><br />因为每个用户登录时都需要取得UID和GID来判断权限问题,所以/etc/passwd的权限为644,这样一来就会带来安全问题,即所有的用户都可以都/etc/passwd文件,即使文件内的密码是加密的,但还是存在一定的被攻击破解的安全隐患。因此,就有了/etc/shadow文件。<br /><a name="AYeBz"></a>## 2、用户影子口令文件shadow
vim /etc/shadow
- 字段1:帐号名称- 字段2:**加密的密码**- 字段3:**最近更改密码的时间**从1970/1/1到上次修改密码的天数- 字段4:**禁止修改密码的天数**从1970/1/1开始,多少天之内不能修改密码,默认值为0- 字段5:**用户必须更改口令的天数**密码的最长有效天数,默认值为99999- 字段6:**警告更改密码的期限**密码过期之前警告天数,默认值为7;在用户密码过期前多少天提醒用户更改密码- 字段7:**不活动时间**密码过期之后账户宽限时间 3+5;在用户密码过期之后到禁用账户的天数- 字段8:**帐号失效时间**,默认值为空;从1970/1/1日起,到用户被禁用的天数- 字段9:保留字段(未使用),标志<a name="e1Wy6"></a>## 3、用户组group/etc/group 文件是用户组的配置文件,内容包括用户与用户组,并且能显示用户归属哪个用户组,因为一个用户可以归属一个或多个不同的用户组;**同一用户组的用户之间具有相似的特性**。如果某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进入。
vim /etc/group
```


- 字段1:组账户名称
- 字段2:密码占位符x
通常不需要设置该密码,由于安全原因,该密码被记录在/etc/gshadow中,因此显示为’x’。这类似/etc/shadow
- 字段3:组账户GID号,用户组ID
- 字段4:本组的成员用户列表
加入这个组的所有用户账号
4、用户组的影子文件gshadow
/etc/gshaow是/etc/group的加密文件,比如用户组的管理密码就是存放在这个文件。/etc/group和/etc/gshadow是互补的两个文件;比如大型服务器,针对很多用户和用户组,定制一些关系结构比较复杂的额权限模型,设置用户组密码是极有必要的。比如不想让一些非用户组成员永久拥有用户组的权限和特性,这时就可以通过密码验证的方式来让某些用户临时拥有一些**用户组特性**,这时就要用到用户组密码;
格式如下,每个用户组独占一行。
- 字段1:组账号的名称
- 字段2:加密后的密码字符串
这个字段可以空的或者!;如果是空的或有!,表示没有密码
- 字段3:本组的管理员列表
这个字段也可为空;如果有多个用户组管理员,用,号分隔
- 字段4:本组的成员列表
加入这个组的所有用户账户;列表中多个用户通过”,”分隔

