linux用户,组管理介绍
linux操作系统对多用户管理是非常繁琐的,所以用组的概念来管理用户就变得简单了,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户,Linux系统用户时根据用户ID来识别的,默认ID长度为32位,默认ID编号从0开始(其实就是root),但是为了和老式系统兼容,用户ID限制在60000以下,linux用户总共分为3种:
- root用户(ID 0)
- 系统用户(ID 1~499)
- 普通用户(ID 500以上)
linux系统中的每个文件或者文件夹都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,使用passwd命令可以修改当前用户密码。
linux操作系统用户的特点如下:
- 每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名
- 每个用户属于一个主组,属于一个或者多个附属组,一个用户最多有31个附属组
- 每个拥有一个GroupID
- 每个进程以一个用户身份运行,该用户可对进程拥有资源控制的权限
- 每个可登陆用户拥有一个指定的shell环境
linux用户在操作系统中可以进行日常管理和维护,涉及的相关配置文件如下:
- /etc/passwd:保存用户信息
- /etc/shadow:保存用户密码(以加密形式保存)
- /etc/group:保存组信息
- /etc/login.defs:用户属性,密码过期时间,密码最大长度等限制
- /etc/default/useradd:显示或更改默认的useradd配置文件
linux用户管理
如果创建新用户,可以使用命令useradd,执行命令 useradd fengzi7314 即可创建fengzi7314用户,同时会创建一个同名的组fengzi7314,默认该用户属于fengzi7314组
执行useradd fengzi7314会根据以下操作步骤进行:
- 在/etc/passwd文件中添加用户信息
- 如使用passwd命令创建密码,密码会被保存在/etc/shadow中
- 为fengzi7314创建一个家目录/home/fengzi7314
- 将/etc/skel中的.bash开头的文件复制到/home/fengzi7314家目录
- fengzi7314组信息保存在/etc/group配置文件中
在使用useradd命令时,可以添加如下参数
-d:新账户的主目录 -e:新账户的过期日期 -f:新账户的密码不活动期 -g:新账户属组的名称或ID -m:创建用户的主目录 -M:不创建用户的主目录 -N:不创建同名的组 -p:加密后的新账户密码 -r:创建一个系统账户 -s:新账户的登录shell -u:新账户的UID -U:创建与用户同名的组-G:新建账户的附加组
useradd案例
- 新建fengzi7314用户,并添加到group1和group2附属组
[root@localhost var]# useradd -G group1,group2 fengzi7314[root@localhost var]# id fengzi7314uid=1000(fengzi7314) gid=1002(fengzi7314) 组=1002(fengzi7314),1000(group1),1001(group2)
- 新建fengzi1234账户,并制定新的家目录,同时指定其登录的shell
[root@localhost var]# useradd -d /tmp/fengzi1234 -s /bin/sh fengzi1234 [root@localhost var]# su - fengzi1234 -sh-4.2$ pwd /tmp/fengzi1234 -sh-4.2$ whoami fengzi1234 -sh-4.2$
linux组管理
linux组管理有如下特点
- 每个组有一个组ID
- 组信息保存在/etc/group中
- 每个用户至少拥有一个主组,同事还可以拥有31个附属组
- 通过命令groupadd,groupdel,groupmod来对组进行管理
groupadd用法如下:
-h:帮助信息 -g:为新组使用GID -r:创建一个系统账户
案例:
- 创建名字为group1的组
[root@localhost var]# groupadd group1
- 创建group2并且制定GID为2000
[root@localhost var]# groupadd group2 -g 2000
- 创建一个系统组(system)名为group3
[root@localhost var]# groupadd -r group3
groupmod用法如下:
-g:将组ID改为GID -h:帮助信息 -n:将旧组名改为新组名 -p:将密码更改为(加密过的)PASSWORD
案例:
- 把组名group1修改成为group250
[root@localhost var]# groupmod -n group250 group1
- 把group250的GID号修改成为4000
[root@localhost var]# groupmod -g 4000 group250
linux用户及组案例
useradd主要用于新建用户,而用户创建完毕,可以使用usermod来修改用户及组的属性,一下为usermod参数
-c, --comment 注释 GECOS 字段的新值 -d, --home HOME_DIR 用户的新主目录 -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态 -g, --gid GROUP 强制使用 GROUP 为新主组 -G, --groups GROUPS 新的附加组列表 GROUPS -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户 -h, --help 显示此帮助信息并推出 -l, --login LOGIN 新的登录名称 -L, --lock 锁定用户帐号 -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用) -o, --non-unique 允许使用重复的(非唯一的) UID -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码 -R, --root CHROOT_DIR chroot 到的目录 -s, --shell SHELL 该用户帐号的新登录 shell -u, --uid UID 用户帐号的新 UID -U, --unlock 解锁用户帐号 -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
案例:
- 将fengzi7314用户的付家组修改为group1,group2
[root@localhost var]# usermod -G group1,group2 fengzi7314
- 锁定fengzi7314用户和解锁fengzi7314用户
[root@localhost var]# usermod -L fengzi7314;usermod -U fengzi7314
- 将fengzi7314用户名修改为fengzi1234
[root@localhost var]# usermod -l fengzi1234 fengzi7314
userdel
主要是用来删除用户的
- userdel fengzi7314:保留用户的家目录
- userdel -r fengzi7314:删除用户及用户家目录,用户login系统无法删除
- userdel -rf fengzi7314:强制删除用户及该目录的家目录,无论是否登录