Linux用户和用户组
用户和用户组
用户和组的相关文件
/etc/passwd:用户账户信息。
/etc/shadow:安全用户密码相关信息。
/etc/group:组账户信息。
/etc/gshadow:组密码相关信息。
-
/etc/passwd # head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash 帐号:密码:用户ID:组ID:描述信息:家目录:登陆shell 区分两种shell: /bin/bash:可登陆shell,如果用户的shell是这个,那么该用户可以登陆到系统中 /sbin/nologin:非登陆shell,如果用户的shell是这个,那么该用户不允许登陆到系统 -
/etc/shadow # tail -1 /etc/shadow user1:!!:17609:0:99999:7::: 登录名:加密了的密码:最后一次更改密码的日期:密码的最小年龄:最大密码年龄:密码警告时间段:密码禁用期:账户过期日期:保留字段 # passwd user1 更改用户 user1 的密码 。 新的 密码: 无效的密码: 密码是一个回文 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新 # tail -1 /etc/shadow user1:$6$wsc/rBBK$OWW79QnSCO8AE/DXGhVgIxEIjEntuNTbQYH8ojqo/nuLx1CJV70FXr0aRd/81skbCl.400upXttPEXbCJCqb01:17609:0:99999:7::: 查看用户密码相关时间 # chage -l user1 最近一次密码修改时间 :3月 19, 2018 密码过期时间 :从不 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :99999 在密码过期之前警告的天数 :7 -
/etc/group # head -1 /etc/group root:x:0:user3 组名:密码:GID:组成员 -
/etc/gshadow # head -1 /etc/gshadow root:::user3 组名:加密密码:组的管理员:组成员
用户和组管理
用户
用户是用来操作系统中不同功能的身份
linux系统中用户的分类
-
超级用户:root uid=0
-
系统用户:不需要登陆系统,服务于应用程序,维护系统的运行 uid:1~999
-
普通用户:可以登陆的用户 uid>=1000 1000~60000
设置创建用户默认信息 /etc/default/useradd
设置创建用户默认信息 /etc/login.defs
MAIL_DIR /var/spool/mail 邮箱的位置
PASS_MAX_DAYS 99999 密码可以使用最大天数
PASS_MIN_DAYS 0 密码使用最小天数
PASS_MIN_LEN 5 密码的长度
PASS_WARN_AGE 7 密码过期前的警告时间
UID_MIN 1000 创建普通用户的uid范围
UID_MAX 60000
SYS_UID_MIN 201 创建系统用户的uid范围
SYS_UID_MAX 999
GID_MIN 1000 创建普通用户的gid范围
GID_MAX 60000
SYS_GID_MIN 201 创建系统用户的gid范围
SYS_GID_MAX 999
CREATE_HOME yes 为用户创建家目录
ENCRYPT_METHOD SHA512 密码的加密方式
对用户的操作:新增、删除、修改、查看、设置密码
-
查看用户信息 id
# id root 查看指定用户的信息 uid=0(root) gid=0(root) 组=0(root) # whoami 查看当前用户是谁 root uid:用户标识 gid:组标识,用户的主组(初始组) 组:用户的所属组切换用户:
# su - 用户名退出用户:
# exit -
添加用户 useradd 注意:添加用户的操作只有root能操作
语法:useradd [选项] [选项的参数] ... 用户名# useradd user1创建用户的时候会创建一个和用户名同名的组作为用户的主要组(初始组),同时会创建邮箱和家目录。
-
添加用户时指定选项 man useradd
-c 新账户的描述信息 comment -d 新账户的主目录 directory 默认情况下: root的家目录是/root 普通用户的家目录是/home -g 新账户主组的名称或 ID group id 前提:组是必须存在的 -G 新账户的附加组列表 groups 前提:组是必须存在的 -s 新账户的登录 shell 要求区分两种shell: /bin/bash:可登陆shell,如果用户的shell是这个,那么该用户可以登陆到系统中 /sbin/nologin:非登陆shell,如果用户的shell是这个,那么该用户不允许登陆到系统 -u 新账户的用户 ID user id -r 创建一个系统账户 system -M 不创建用户的主目录# useradd -c "common user" user2 # useradd -u 2000 -d /tmp/user3 user3 # tail -1 /etc/passwd user3:x:2000:2000::/tmp/user3:/bin/bash -u -g -c -d -s
-
-
设置密码 passwd
passwd:
超级用户:可以给所有用户改密码,并且不需要提供当前密码
普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码用法: passwd [选项...] <帐号名称> -l, --lock 锁定指名帐户的密码(仅限 root 用户) -u, --unlock 解锁指名账户的密码(仅限 root 用户) -S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作) --stdin 从标准输入读取令牌(只有根用户才能进行此操作)# passwd 修改当前用户密码 # passwd user1 修改指定用户密码# echo 123 |passwd --stdin user1 更改用户 user1 的密码 。 passwd:所有的身份验证令牌已经成功更新。# tail -1 /etc/shadow jim:$6$Ue8OWp/0/uutyE4K.... 用户名:加密后的密码 $6$:加密算法是sha512 $1$:加密算法是md5 -
删除用户 userdel
# userdel user1 删除用户的时候不会删除用户的家目录和邮箱 # useradd user1 能添加,但是会有提示信息 useradd:警告:此主目录已经存在。 不从 skel 目录里向其中复制任何文件。 正在创建信箱文件: 文件已存在 -r, --remove 删除主目录和邮件池 # userdel -r user3 -
修改用户 usermod
语法:usermod [选项] [选项的参数] ... 用户名 -c 修改用户的描述信息 comment -d 修改用户的主目录 directory -g 修改用户的主组 gid group id 前提:组是必须存在的 -G 修改用户的附加组 groups 前提:组是必须存在的 -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中并不从其它组中删除此用户 -s 修改用户的登录 shell 要求区分两种shell: /bin/bash:可登陆shell,如果用户的shell是这个,那么该用户可以登陆到系统中 /sbin/nologin:非登陆shell,如果用户的shell是这个,那么该用户不允许登陆到系统 -u 修改用户 ID user id -l, --login LOGIN 新的登录名称 -L, --lock 锁定用户帐号 -U, --unlock 解锁用户帐号 # usermod -G user4,root user3 # id user3 uid=2000(user3) gid=2000(user3) 组=2000(user3),0(root),983(user4) # usermod -G jim user3 # id user3 uid=2000(user3) gid=2000(user3) 组=2000(user3),1000(jim) # usermod -a -G root,user4 user3 # id user3 uid=2000(user3) gid=2000(user3) 组=2000(user3),0(root),1000(jim),983(user4)
组
用户和组的关系:组中可以没有用户、也可以有一个或多个用户
用户只有一个主要组,可以同时属于多个组,除了主组以外的其他组称为附属组
组的分类:从用户的角度分为
主要组:基本组 初始组 默认组
附属组:附加组
对用户组的操作:新增、删除、修改、查看、设置密码、管理组
-
添加组 groupadd
用法:groupadd [选项] 组 -g, --gid GID 为新组使用 GID # groupadd g1 -
删除组 groupdel
用法:groupdel [选项] 组 # groupdel g1注意:不能删除用户的主要组,能够删除用户的附加组
-
修改组 groupmod
用法:groupmod [选项] 组 -g, --gid GID 将组 ID 改为 GID -n, --new-name NEW_GROUP 改名为 NEW_GROUP # groupadd it # tail -1 /etc/group it:x:2007: # groupmod -g 2500 it # tail -1 /etc/group it:x:2500: -
组管理 gpasswd
gpasswd 给组设置密码 将用户添加/删除到组 设置组管理员
用法:gpasswd [选项] 组 -a, --add USER 向组 GROUP 中添加用户 USER -d, --delete USER 从组 GROUP 中添加或删除用户 -r, --delete-password remove the GROUP's password -M, --members USER,... 设置组 GROUP 的成员列表 -A, --administrators ADMIN,... 设置组的管理员列表-
设置组密码
# gpasswd it -
删除组密码
# gpasswd -r it -
向组中添加成员 root默认是组管理员
# gpasswd -a u1 it -
向组中添加多个成员
# gpasswd -M u2,u3 it -
将用户从组内移除
# gpasswd -d u2 it -
指定组管理员(管理员可以为组添加/删除成员,且可以设置组密码)
# gpasswd -A u1 it
-

浙公网安备 33010602011771号