用户/拥有者UID UserRID 用户组ID GID GroupID
用户账号 /etc/passwd 账户名
develop:x:503:504::/home/develop:/bin/bash
账户名称:密码(移植到/etc/shadow):UID:GID:家目录(默认,空值,可以修改到其他路径):shell
UID 为0是 账户即为“系统管理员” 1-99 系统默认账户 100-499 保留服务使用 500-65535一般用户
/etc/shadow 用户密码
例 sysadm:$6$whmiOBZC:15201:7:30:3:5::
账户名称
:密码(如果是*或者!则说明这个用户不会用来登陆,可以用来暂时警告用户,同#)
:最近更改密码的时间(1970.1.1为第一天,依此后推)
:密码不可更改的天数
: 密码需要重新修改的天数
:密码更改期限前的警告天数
:密码过期的宽限时间(如果没有更改密码,密码失效之后在N天之内再不改则彻底失效)
:账户失效时间(以1970年开始算起的总日数,如果时间已过账户再无法使用)
用户组 /etc/group /etc/gshadow
/etc/group
nagcmd:x:508:nagios,apache
用户组名:用户组密码(x一般代表无密码):用户组GID:加入这个用户组的账户
有效用户组(effective group)与初始用户组 (initial group )
初始用户组:用户在/etc/passwd中第四栏的GID
有效用户组:在/etc/group中加入新的用户组
groups 第一个为有效用户组,所建文件、目录等拥有者均为有效用户组
newgrp (用户组名称) 切换有效用户组
/etc/gshdow
nagcmd:!::nagios,apache
用户组名称:密码栏(如果为!则无法登陆):用户组管理员的账户:该用户组的所属账户
账户管理
useradd
-u 接UID -g接用户组名称(初始用户组) -G 接可支持的用户组 -M强制不建家目录 -m 与-M相反
-d 指定某个目录为家目录 -r建立一个系统账户
UID/GID 设置 /etc/login.defs里面设置
主要的几个
PASS_MIN_LEN 10 密码最短长度设置
PASS_WARN_AGE 7 密码更改期限前的警告天数
设置密码 passwd
账户调账 usermod
usermod
-c 接账号的说明 -d接账户的家目录 -e接账户失效日期 YYYY-MM-DD -g 接group name
-G接group name修改能支持的用户组 -l 修改账号名称 -s接shell文件 -u接UID文件
-L暂时冻结用户密码不然他登录 -U将/etc/shadow密码栏的‘!’去掉 解冻
用户删除 userdel
userdel -r 连同用户家目录一起删除
个人用户功能
chsh [-ls]
-l 列出/etc/shells内容 -s 设置修改自己的shell
chfn
更改自己的用户信息
查看数据
finger -s username
查询别人或自己的相关GID/UID信息
id username
新增与删除用户组
建立用户组 groupadd
-d 接GID -r 建立系统用户组
修改用户组信息 groupmod 与usermod类似
-g 修改已有的GID -n 修改已有的用户组信息
删除用户组 groupdel
用户组密码 gpasswd
gpasswd groupname
无参数,则表示给groupname一个密码
-A 将groupname的主控权交给后面的用户管理
-M 将某些账号加入这个用户组
-r 将groupname的密码删除
-R 将groupname的密码栏失效
-a 将某用户加入groupname中 -d正好相反
密码管理 /etc/passwd里面修改或者
passwd -l 密码锁住 -u 解锁 -n 最短天数 -x最长天数 -w警告天数 -S显示username相关信息
用户身份切换
su
- 切换到root时 使用root的环境设置配置参数
-l 接用户,使用变换用户的所有相关环境设置文件
-m 和-p 一致,使用当前环境设置不动
-c 仅进行一次命令 su - -c "命令'"
sudo
sudo [-u [username|#uid] command 接用户账号名称或UID -u #500
vi /etc/sudoers
dmtsai ALL=(ALL)
用户账户 登录的主机=(可变换的身份) 可以执行的命令
%+用户账户 =用户组
用户特殊的shell和PAM模块
/sbin/nologin 给系统账户使用
PAM模块 作用:程序调用
/etc/securetty 登录环境的调用
系统用户会话与邮件使用
lastlog 检查用户登录情况 /var/log/lastlog
w 当前用户在线情况
write username 传递消息给username用户(仅一个用户) username不想接受 mesg n
wall "内容" 传递消息给所有用户
邮箱 Mail
寄信
mail username(用户例如sysadm) -s "内容"
mail -s "bashrc file content" sysadm < ~/.bashrc 将环境变量寄给自己
收信
mail 用?可以查看到更多信息
检查工具
pwck 检查/etc/passwd账户设置文件内的信息及实际家目录是否存在等
pwconv 将/etc/passwd内账户与密码移植到/etc/shadow中
pwunconv 将/etc/shadow协会/etc/passwd(禁用)
chpasswd 将未加密的密码加密后写入/etc/shadow
账户删除规范
暂时删除 passwd -l passwd -u
永久删除
1. find 、 -user account 找出所有账户文件并删除
2./etc/passwd /etc/shadow相关数据删除
3./etc/group /etc/gshadow相关数据删除
4./home下该账户的目录删除
5./var/spool/mail /var/spool/cron相关用户文件删除
用户安全设置
1./etc/passwd里面各栏设置
例 sysadm:$6$whmiOBZC:15201:7:30:3:5::
账户名称 sysadm
:密码(如果是*或者!则说明这个用户不会用来登陆,可以用来暂时警告用户,同#)
:最近更改密码的时间(1970.1.1为第一天,依此后推)
:密码不可更改的天数 7天
: 密码需要重新修改的天数 (30天,每月一次)
:密码更改期限前的警告天数 (3天,警告数据)
:密码过期的宽限时间(如果没有更改密码,密码失效之后在N天之内再不改则彻底失效 5天)
:账户失效时间(以1970年开始算起的总日数,如果时间已过账户再无法使用 参考实际计算)
2.系统设置 vi /etc/ssh/sshd_config
Port 修改为知识四位数 PermitRootLogin 去掉注释并把yes改为NO,禁止root直接远程登录
PermitEmptyPasswords 值为no 不允许空密码登录
3./etc/login.defs里面设置
PASS_MIN_LEN 10 密码最短长度设置
4. /etc/pam.d/system-auth 添加如下语句。
auth required /lib/security/$ISA/pam_tally.so deny=5
account required pam_tally.so
#密码最大联系登录4次,超过只能联系管理员。
5. 修改 /etc/pam.d/system- auth
#vi /etc/pam.d/system-auth
auth required pam_tally.so onerr=fail deny=4 unlock_time=3000
#设置为密码连续六次错误锁定,锁定时间3000秒
解锁用户 faillog -u <用户名》 -r
设置口令的复杂程度。
#vi /etc/pam.d/system-auth
找到pam_cracklib.so 在后面加一些参数,
例:password requisite pam_cracklib.so minlen=10 ucredit=-2 lcredit=-2 dcredit=-2 ocredit=-1
意思为最少有2个大写字母,2个小写字符,2个数字, 1个符号
6. suquan/etc/pam.d/su文件,增加如下两行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=isd
增加用户拥有权限 usermod -G10 (用户名)
7. /etc/shadow /etc/gshaow等一律700权限
我的方法是只保留一个sysadm用户作为可以su的用户,其他用户一律禁止
usermod -g wheel sysadm
vi /etc/pam.d/su
echo “SU_WHEEL_ONLY yes” >> /etc/login.defs
echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
阅读(1773) | 评论(0) | 转发(0) |