Linux下的用户和组

2019-10-08  本文已影响0人  iDevOps
用户和组存在的意义
  1. 系统上每一个进程都需要特定的用户运行
  2. 每一个文件都有特定的用户拥有
  3. 访问文件和目录受到用户的限制
  4. 进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关
配置文件
名称 路径 描述
用户配置文件 /etc/passwd 记录每个用户的基本属性,每一行对应一个用户,所有用户可读
组配置文件 /etc/group 存放组信息,组名不能重复
用户密码信息 /etc/shadow 为了安全,只有root用户拥有读权限
  1. 基本组, 用户默认基本组, 只能属于一个基本组, 优先使用基本组
  2. 附加组, 基本组不能满足授权要求, 创建附加组, 用户可以属于多个附加组
  3. 私有组, 创建用户如果没有创建基本组, 系统会创建和用户同名的组
groupadd gname
参数:
-g 指定gid
-r 创建系统组
groupdel gname
# 修改组名
groupmod -n newname oldname
# 修改组ID
groupmod -g 1001 gname
cat /etc/group

# 组名:密码占位符(密码存在/etc/gshadow):组id:组成员(只显示附加成员, 基本成员不显示) 
root:x:0: 
bin:x:1:
daemon:x:2:
...
用户
0       :  超级管理员
1-200   :  系统用户, 由系统分配给系统进程使用
201-999 :  系统用户, 用来运行服务账号, 不需要登陆系统(动态分配)
1000+   :  常规用户

注: Centos7之前, uid的1-499分配给系统用户, 500+则用于普通用户

useradd username

-u 指定用户的uid, 不能与现有id冲突
-g 指定用户的默认基本组
-G 指定用户的附加组, 用逗号隔开多个附加组
-d 指定用户家目录
-c 指定用户注释信息
-M 不创建家目录
-s 指定用户默认shell, 将shell设置成 /sbin/nologin 就可以禁止用户登录。
-r 创建系统账户, 没有家目录
userdel uname
userdel -r uname # -r同时删除根目录
usermod
-u 修改用户的uid
-g 修改用户所属的基本组gid
-G 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的
-a 追加更多附加组, 必须和-G一块使用, -aG 追加附加组
-md 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新目录
-d 指定用户的家目录新位置
-c 修改用户的注释信息
-s 更改用户使用的shell
-l 更改用户登录名
-L 锁定用户
-U 解锁用户
# 所有用户
cat /etc/passwd

# 用户名:密码占位符:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
# 当前登陆的用户信息
[root@bogon ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@bogon ~]# who
root     tty1         2019-08-31 15:47
root     pts/0        2019-08-31 15:48 (192.168.5.1)
[root@bogon ~]# whoami
root
[root@bogon ~]# w
 18:11:32 up  2:25,  2 users,  load average: 0.03, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      15:47    2:23m  0.29s  0.29s -bash
root     pts/0    192.168.5.1      15:48    4.00s  0.18s  0.04s w
  1. 创建账户后, 默认是没有设置密码, 所以无法登陆
  2. 使用passwd设置好密码后才可以登陆系统
  3. 普通用户自己修改自己的密码, root可以修改所有人的密码
passwd uname
# 生成随机字符串
# 系统内置
[root@bogon ~]# echo @RANDOM|md5sum|cut -c 1-10
f6287a7eb8
# mkpasswd密码生成工具
-l  密码长度, 默认7位
-d  数字
-c  小写字母
-C  大写字母
yum install -y expect
mkpasswd -l 10 -d 5 -c 3 -C 1
su - uname
1. 不加-, 切换到root用户, 当前目录没有变化
2. 加-, 切换到root用户, 当前目录为root账户的家目录
3. root切换到普通用户, 加-, 不需要输入密码
1. 默认只能root用户使用, 普通用户使用需要root预先设定好
2. 需要输入密码, 输入的是用户的密码而不是root的密码
3. Centos提权, usermod -G wheel username
配置文件

profile: 设定环境变量, 登陆前运行的脚本和命令
bashrc: 设定本地变量, 定义命令别名

~/.bash_profile, ~/.bashrc
/etc/profile, /etc/profile.d/*.sh, /etc/bashrc
登陆shell /etc/profile, /etc/profile.d/*.sh, ~/.bash_profile, ~/.bashrc, /etc/bashrc
非登陆shell ~/.bashrc, /etc/bashrc, /etc/profile.d/*sh
注: 全局和个人配置冲突, 以个人配置为准
上一篇下一篇

猜你喜欢

热点阅读