账号初始配置
一、初始属性定义
(一)useradd行为设置
默认配置文件:/etc/default/useradd
对新创建的账号起作用
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 // 新建的用户默认组
HOME=/home // 新建用户的家目录
INACTIVE=-1 // 账号过期后,多久禁用账户
EXPIRE= // 账户有效期
SHELL=/bin/bash // 登录的shell
SKEL=/etc/skel // 模板目录
CREATE_MAIL_SPOOL=yes // 是否创建邮件
(二)login.defs登录定义
默认配置文件:/etc/login.defs
对新创建的账号起作用
[root@localhost ~]# grep -v "^#" /etc/login.defs | grep -v "^$"
MAIL_DIR /var/spool/mail // 邮件文件默认存储位置
PASS_MAX_DAYS 99999 // 密码最长时间
PASS_MIN_DAYS 0 // 密码最小
PASS_MIN_LEN 5 // 密码最短需要设置5个字符
PASS_WARN_AGE 7 // 提前7天警告,密码过期
UID_MIN 1000 // 普通用户UID最小值
UID_MAX 60000 // 普通用户UID最大值
SYS_UID_MIN 201 // 系统用户UID最小值
SYS_UID_MAX 999 // 系统用户UID最大值
GID_MIN 1000 // 普通用户GID最大值
GID_MAX 60000 // 普通用户GID最大值
SYS_GID_MIN 201 // 系统用户GID最小值
SYS_GID_MAX 999 // 系统用户GID最大值
CREATE_HOME yes // 自动创建登录目录
UMASK 077 // 权限掩码
USERGROUPS_ENAB yes // 指定删除用户的时候是否同时删除用户组
ENCRYPT_METHOD SHA512 // 指定用户密码采用的加密规则
二、用户环境初始化文件
(一)用户初始文件
配置文件来源
新建用户时,根据/etc/skel模板目录复制
主要的初始配置文件
~/.bash_profile:每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:每次退出登录时执行
[root@localhost ~]# ls -A /etc/skel/
.bash_logout .bash_profile .bashrc .mozilla
(二)全局初始文件
用户初始文件会调用全局初始文件
/etc/bashrc:作用与.bashrc类似,对所有用户有效
/etc/profile:作用与.bash_profile,对所有用户有效
[root@localhost ~]# cat /etc/bashrc
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
……
[root@localhost ~]# cat /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
……
三、定制用户登录环境
(一)认识环境变量
使用env查看当前用户的环境变量
USER:当前用户的用户名
PWD:当前工作目录
PATH:可执行程序搜索范围
[root@localhost ~]# env
XDG_VTNR=1
SSH_AGENT_PID=1990
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
VTE_VERSION=5204
TERM=xterm-256color
……
// 当前用户的用户名
[root@localhost ~]# echo $USER
root
// 当前工作目录
[root@localhost ~]# echo $PWD
/root
[root@localhost ~]# cd /etc
[root@localhost etc]# echo $PWD
/etc
// 可执行程序搜索范围
[root@localhost ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
(二)登录环境案例需求
用户mike 每次登录后
显示欢迎信息:Welcome to Linux,用户名
报告当前的完整主机名
能够通过命令字直接执行家目录下的程序
[root@localhost /]# useradd mike
[root@localhost /]# ls -A /home/mike
.bash_logout .bash_profile .bashrc .mozilla
[root@localhost /]# vim /home/mike/.bash_profile
# .bash_profile
echo Welcome to Linux,$USER
hostname
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME
export PATH
[root@localhost /]# su - mike
Welcome to Linux,mike
localhost.localdomain
[mike@localhost ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mike/.local/bin:/home/mike/bin:/home/mike
四、为所有用户设置命令别名
(一)命令别名回顾
基本用法
alias 别名=‘实际执行的长命令’
别名的局限性
当前定义的别名,只在当前bash环境有效
每次都重新定义会非常不方便
[root@localhost ~]# alias myls='ls -lhd'
[root@localhost ~]# myls /opt
drwxr-xr-x. 3 root root 16 7月 13 04:03 /opt
(二)配置全局生效的别名
解决办法
将别名设置操作保存到/etc/bashrc文件中
这样对所有用户有效,每次开bash 都会自动执行
[root@localhost ~]# vim /etc/bashrc
# /etc/bashrc
alias myls='ls -lhd'
# System wide functions and aliases
# Environment stuff goes in /etc/profile
……
[root@localhost ~]# su - harry
上一次登录:日 7月 30 21:21:54 CST 2023pts/0 上
[harry@localhost ~]$ myls /opt
drwxr-xr-x. 3 root root 16 7月 13 04:03 /opt