-
/etc/passwd
-
/etc/shadow
-
/etc/login.defs
-
/etc/pam.d/system-auth
-
/etc/ssh/sshd_config
PasswordAuthentication yes
第一节:用户管理配置文件
/etc/passwd 用户信息文件
# man 5 passwd
wc -l /etc/passwd
account:password:UID:GID:GECOS:directory:shell
GID:缺省组id
GECOS:注释性描述,例如存放用户全名等信息
directory:宿主目录
命令解释器:用户使用的shell,默认bash
password: # echo "1234556" | md5sum
Linux用户分为三种:
1) 超级用户 (UID=0,如:root)
2) 普通用户 (UID 500-60000)
3) 伪用户 (UID 1-499){
Linux中任何一个进程操作都必须有一个用户身份
a) 伪用户与系统和程序服务相关
bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户
mail、new、games、apache、ftp、mysql及sshd等,与Linux系统的进程相关
b) 伪用户通常不需要或无法登录系统
c) 可以没有宿主目录
}
/etc/group 用户组信息
1.每个用户都至少属于一个用户组
2.每个用户组可以包括多个用户
3.用一用户组的用户享有该组共有的权限
/etc/shadow 密码文件
用户名:用户登录系统使用的用户名
密码:加密密码 //该字段内容删除后,用户可以免密码登录系统
最后一次修改时间:用户最后一次修改密码的天数 //从1970-1-1起
最小时间间隔:两次修改密码之间的最小天数
最大时间间隔:密码保持有效的最多天数
警告时间:从系统警告到密码失效的天数
账号闲置时间:
失效时间:密码失效的绝对天数
标志:一般不使用
# pwunconv //密码回写
# pwconv
/etc/gshadow 用户组密码管理
非组内成员访问属于该用户组的资源
新建用户
# vim /etc/passwd
hosander::502:502:project qiaoxiaoguang:/home/hosander:/bin/bash
# mkdir /home/hosander
# chown hosander /home/hosander
# vim /etc/shadow
hosander::14966:0:99999:7:::
# cp -rf /etc/skel/.* /home/hosander
用户配置文件
useradd 新添加用户,缺省的设置
/etc/login.defs
/etc/default/useradd
shell 选择: more /etc/shells
/etc/skel //新用户信环境变量文件
/etc/issue //登录前,终端声明信息
/etc/motd //登录成功后,给出的显示信息
优于:wall mail
问题:
/etc/passwd 非root用户只读
/etc/shadow 非root用户不可访问
为什么普通用户可以修改密码?
ll /usr/bin/passwd
-rwsr-xr-x
SetUID=4
第二节:用户管理命令
useradd
# useradd -D //查看缺省参数
# cat /etc/default/useradd
# useradd 设置选项 用户名
u:UID
g:缺省所属用户组GID //重要 1
G:指定用户所属多个组
d:宿主目录
s:命令解释器Shell
c:描述信息 //重要 2
e:指定用户失效时间
# useradd -u 6666 -g ointall -G sys,apache -d /home/samlee -s /bin/bash -c "project qiaoxiaoguang" -e 2016-09-01 samlee
# grep samlee /etc/passwd
# passwd samlee
# usermod -G softgroup samlee //将用户samlee添加到softgroup用户组中
# useradd oracle //不合理
#useradd -g oinstall -G dba -d /home/oracle oracle
#userdel -r oracle //连同目录一起删除
pwck //检测/etc/passwd 语法错误 //linux命令
vipw //编辑/etc/passwd文件(锁定文件编辑)vi并不锁定
id //查看当前用户id和组信息
# finger
# finger samlee //查看用户登录详细信息
who、w //查看当前所有登录用户的信息
su //切换用户(su - oracle 环境变量切换)
# passwd -S xily //查看用户密码状态
# passwd -d xily //删除用户密码
//禁用一个用户(两种方法)
# usermod -L username
# passwd -l username
# usermod -L ftp
# cat /etc/shadow | grep ftp
//恢复一个用户(两种方法)
# usermod -U username
# passwd -u username
//删除用户
userdel
# userdel -r oracle //删除用户及宿主目录
# userdel oracle -r /home/oracle
# find /home -user oracle
chage{ //设定密码 修改/etc/shadow里面的任何内容
-l username //查看用户密码设置
-m //密码修改最小天数
-M //密码修改最大天数
-d //密码最后修改日期
-I //密码过期后,锁定账户的天数
-E //设置密码的过期日期。如果为0,代表密码立即过期;如果为-1,代表密码吗永不过期
-W //设置密码过期前,开始警告的天数
启动或停用shadow功能
pwconv/pwunconv
grpconv/grpunconv
authconfig /etc/sysconfig/authconfig
system-config-users //x-window
//==========================
root分发权限
visudo
sudo ls /root
sudo操作会被审计
sudo -i //拥有sudo权限的用户切换为root用户
第三节:用户组管理命令
groupadd
# groupadd dba
# groupadd -g 888 webadmin //创建用户组 webadmin, GID=888
// # grep webadmin /etc/group
groupdel
# groupdel softadmin //删除组
groupmod
# groupmod -n apache(new_name) softadmin(old_name) //修改组名
gpasswd 设置组密码及管理组内成员
-a 添加用户到用户组
-d 从用户组中删除用户
-A 设置用户组管理员
-r 删除用户组密码
-R 禁止用户切换为该组
# gpasswd -A jackzhang webadmin //设置jackzhang为组webadmin的管理员
# grep webadmin /etc/group
$ sudo gpasswd -a 用户名 组名
$ sudo gpasswd -d 用户名 组名
$ newgrp docker #更新用户组
# gpasswd webadmin //设置组密码信息
# grep webadmin /etc/gshadow
# gpasswd -R webadmin //禁止用户切换到webadmin组($newgrp webadmin)
# gpasswd -r webadmin //删除组密码
groups
$ groups xily //查看当前用户隶属哪些组
$ newgrp webadmin //切换当前用户所属组(需要输入用户组密码)
# chgrp softadmin /software //修改文件或目录所属组
组softadmin的用户对目录/software的读写权限
# mkdir /software
# groupadd softadmin
# chgrp softadmin /software //改变目录所属组
# chmod g+w /software // 或者 # chmod 1775 /software
# usermod -G softadmin jack
# gpasswd -a mary softadmin //linux命令
# grpck //检测用户组配置文件/etc/group /etc/gshadow
# vigr //编辑/etc/group (锁定编辑)
第四节:批量添加用户
newusers命令 导入用户信息文件
pwunconv命令 取消shadow password功能
chpasswd命令 导入密码文件(格式 用户名:密码)
pwconv命令 将密码写入shadow文件
实例:一次批量添加10个用户
5.用户授权