一、基础知识介绍
- 用户 用户组的概念
- 每个文件和进程,都需要对应一个用户和用户组
- linux 系统通过UID和 GID识别用户和组
- 用户名相当于人名(给人看)
- UID和GID相当于身份证(系统用的)
- 用户和组的关系
- 一对一,多对一,一对多,多对多
- 用户分类
- 超级用户:UID=0 root
- 普通用户:UID 500 起,由超级用户或者具有超级用户权限的用户创建的
- 虚拟用户:UID 1-499 存在满足文件或服务启动的需要,一般都不能登录
- 用户关联的四个文件
- /etc/passwd 账号文件
- /etc/shadow 密码文件
- /etc/group 组文件
- /etc/gshadow 组密码文件
二、用户管理命令
- 用户名相关
- useradd 添加用户
- userdel 删除用户
- passwd 修改密码
- usermod 修改用户--登录名、用户的家目录等等
- id 查看UID GID 组信息
- chage 查看密码属性
- su 用户角色切换
- sudo 提权
- visudo 编辑sudo配置文件
- 用户组相关
三、重要初始化目录/etc/skel
- 包含基本文件:.bash_logout .bash_profile .bashrc
- 作用:
- 把要通知的内容放到/etc/skel目录中
- 新用户创建过程中,其中之一就是把/etc/skel目录中的内容全部拷贝到新建用户的家目录下
- 示例:新建用户 skeltest
- 在/etc/skel/目录下新建文件readme.txt
- 新建用户:useradd skeltest
- 统一初始化新用户的环境变量
- 编辑文件/etc/skel/.bash_profile ,添加一个别名:alias grep='grep --color=auto'
- 新建用户:useradd newskel 并查看别名信息。未编辑文件/etc/skel/.bash_profile之前新建用户test 和编辑之后新建用户 newskel之间对比
- 面试题:登录test账号出现如图问题该如何解决及出现原因
- 解决方法:把/etc/skel目录下.bash*文件拷贝到test家目录/home/test中,重新登录即可,如图:
cp /etc/skel/.bash* /home/test/
- 解决方法:把/etc/skel目录下.bash*文件拷贝到test家目录/home/test中,重新登录即可,如图:
- 把要通知的内容放到/etc/skel目录中
四、/etc/login.defs
- 创建用户时需要的用户配置信息,如是否创建家目录,UID、GID长度,加密方式等等
五、/etc/default/useradd
- useradd 添加新用户是默认配置文件
六、useradd 命令详解
- 参数:
- -c --comments 注释
- -d --home-dir 家目录
- -e --expiredate 账号过期时间 format YYYY-MM-DD
- -g --GID
- -G --groups
- -k --skel
- -m --create-home 如果没有该目录以该目录为家目录创建
- -M --no-create-home
- -s --shell
- -u --UID
- 实例:创建新用户 useradd01 ,注释-HandsomeBoy ,UID 605 所属组 roo incahome , 家目录/home/useradd01 ,其shell类型-/bin/sh 过期时间2018-12-01
- 命令:useradd -c "HandsomeBoy" -u 605 -G root,incahome -md /home/useradd01 -s /bin/sh -e "2018-12-01" useradd01
- 账号过期时间验证:
七、usermod --modefy a user account
参数和用法大部分和useradd 相同,参考useradd