用户和组管理及sudo机制

用户和组管理

1、概念

linux中用户是通过uid来区别的
管理员为 0 通常名称为root
1-1000为daemon进程用户,对守护进程获取资源进行权限分配
1000以后给用户进行交互式登录使用
linux中组是通过gid来区别的
管理员组通常为0
一个用户至少有一个组,默认创建用户时会生成和其同名组
一个组可以有多个用户

2、配置

#/etc/passwd:(用户及其属性信息名称、UID、主组ID等)
login name:登录用名(wang)
passwd:密码 (x)
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)
#/etc/shadow:用户密码及其相关属性
登录用名
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
密码再过几天可以被变更(0表示随时可被变更)
密码再过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从1970年1月1日算起,多少天后帐号失效
/etc/group:组及其属性信息
群组名称:就是群组名称
群组密码:通常不需要设定,密码是被记录在 /etc/gshadow 
GID:就是群组的 ID 
以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshadow:组密码及其相关属性
群组名称:就是群的名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:多个用户间用逗号分隔
/etc/default/useradd
新建用户的默认配置
GROUP=100
HOME=/home
INACTIVE=-1	#对应/etc/shadow文件第7列,即用户密码过期的宽限期
EXPIRE=	#对应/etc/shadow文件第8列,即用户帐号的有效期
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

3、管理

3.1 用户

3.1.1 创建

useradd [选项] username
选项:
    -u UID
    -o 配合-u 选项,不检查UID的唯一性
    -g GID 指明用户所属基本组,可为组名,也可以GID
    -c "COMMENT“ 用户的注释信息
    -d HOME_DIR 以指定的路径(不存在)为家目录
    -s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
    -G GROUP1[,GROUP2,...]为用户指明附加组,组须事先存在
    -N 不创建私用组做主组,使用users组做主组
    -r 创建系统用户 CentOS 6之前: ID<500,CentOS7 以后: ID<1000
    -m 创建家目录,用于系统用户
    -M 不创建家目录,用于非系统用户
    -p 指定加密的密码
例子:
useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache
创建一个系统用户,uid为48 组为apache 不能登录shell 家目录为/var/www 

3.1.2 更改

usermod [选项] username
选项:
    -u UID: 新UID
    -g GID: 新主组
    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
    -s SHELL:新的默认SHELL
    -c 'COMMENT':新的注释信息
    -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
    -l login_name: 新的名字
    -L: lock指定用户,在/etc/shadow 密码栏的增加 !
    -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
    -e YYYY-MM-DD: 指明用户账号过期日期
    -f INACTIVE: 设定非活动期限,即宽限期
例子:
usermod -u 49 -g 1001 -s /sbin/login -l test apache

3.1.3 删除

userdel [选项] username
选项:
    -f, --force强制
    -r, --remove删除用户家目录和邮箱
例子:
userdel -r -f test

3.1.4 切换用户

su [选项] username
选项:
  - 登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

3.1.5 查看用户信息

id username
finger username

3.2 密码

3.2.1 密码设置

image-20231206090758518

passwd [选项] UserName
选项:
    -d:删除指定用户密码
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -f:强制操作
    -n mindays:指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -i inactivedays:非活动期限
    --stdin:从标准输入接收用户密码,Ubuntu无此选项

3.2.2 修改密码策略

chage [选项] username
选项:
    -d LAST_DAY #更改密码的时间
    -m --mindays MIN_DAYS
    -M --maxdays MAX_DAYS
    -W --warndays WARN_DAYS
    -I --inactive INACTIVE #密码过期后的宽限期
    -E --expiredate EXPIRE_DATE #用户的有效期
    -l 显示密码策略

3.3 组

3.3.1 创建

groupadd [选项] groupname
选项:
    -g  GID 指明GID号;[GID_MIN, GID_MAX]
    -r	创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000
范例:
    groupadd -g 48 -r apache

3.3.2 修改

groupmod [选项] group
选项:
    -n group_name: 新名字
    -g GID: 新的GID

3.3.3 删除

groupdel [选项] GROUP
选项:
    -f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录

3.3.4 更改组密码

gpasswd [选项] GROUP
-a user	将user添加至指定组中
-d user	从指定附加组中移除用户user
-A user1,user2,... 设置有管理权限的用户列表

3.3.5 查看组信息

groupmems [选项] [动作]
选项:
    -g, --group groupname	#更改为指定组 (只有root)
    -a, --add username	#指定用户加入组
    -d, --delete username	#从组中删除用户
    -p, --purge	#从组中清除所有成员
    -l, --list  #显示组成员列表

sudo机制

# sudo 可以让普通用户使用root权限进行操作,方便进行权限管理

1、安装

yum -y install sudo

2、配置

# 配置文件
/etc/sudo.conf
/etc/sudoers
/etc/sudoers.d
# 语法检测
/usr/sbin/visudo -c file
# 配置语法规则
用户 登入主机=(代表用户) 命令
user host=(runas) command
    user: 运行命令者的身份
    host: 通过哪些主机
    (runas):以哪个用户的身份
    command: 运行哪些命令
posted on 2023-12-05 17:46  要快乐不要emo  阅读(40)  评论(0)    收藏  举报