linux用户、用户组、邮件相关
用户
/etc/passwd
帐号名、密码(显示x)、UID、GID、用户信息说明、shell
/etc/shadow
帐号名、密码、密码最近变动日期、密码不可被变动天数、密码需要重新更改天数、密码需要更改前的警告天数、密码过期后的账号宽限时间、账号失效日期、保留列(暂无功能呢个)
UID范围
0 系统管理员
1~99 distributions自行创建的系统账号
100~499 用户创建的系统账号
500~2^32-1 可登录账号
新增用户
useradd [-u UID] [-g 初始用户组] [-r] [-G 次要用户组] [-mM] [-c 说明栏] [-d 主文件夹绝对路径] [-c shell] [-e YYYY-MM-DD] 用户账号名
r 新建系统用户
m 强制创建用户主文件夹(一般账号默认)
M 强制不创建用户主文件夹(系统账号默认)
e 指定账号失效日期,shadow第八字段
f 后接密码失效日期,0/-1;0 立即失效,-1 永不失效,shadow第七字段
useradd默认值查看
useradd -D
UID、GID、密码参数等参考/etc/login.defs
修改密码
passwd [-l] [-u] [--stdin] 帐号
l Lock,会将/etc/shadow第二列最前面加上!,使密码失效
u unlock,与lock相反,使密码生效
--stdin 接受管道命令,作为密码输入
例:
echo "abc543cc" | passwd --stdin vbird2
修改帐号密码相关的更多参数
chage [-ldmMWIE] 帐号名
l 小写l,列出账号的详细密码参数
d 修改shadow的第3字段(最近一次修改密码的日期)YYYY-MM-DD
m 修改shadow的第4字段(密码最短保留天数)
M 修改shadow的第5字段(账号多久需要更改)
W 修改shadow的第6字段(密码过期前警告日期)
I 大写i,修改shadow的第7字段(密码失效日期)
E 修改shadow的第8字段(账号失效日)YYYY-MM-DD
例:
强制登陆后必须修改密码
chage -d 0 agetest
设置帐号密码的新建时间为1970/1/1,所以必须修改密码
更改UID、帐号名、用户组、用户使用的shell、用户主文件夹
usermod [-dgGalsu] username
d 修改账号主文件夹
g 修改用户初始用户组
G 修改用户次要用户组
a 与G何用,增加次要用户组的支持,而非设置
l 小写l,修改账号名称
s 修改shell
u 修改UID
用户删除
userdel [-r] [username]
r 连同用户主文件夹一起删除
注:删除前最好find / -user username
命令查看账号属性
finger [-sm] [username]
s 仅列出用户的账号、全名、终端机代号与登陆时间等
m 列出与后面接的账号相同者
注:可以查看公司、公司电话等
chfn [-foph] [username]
f 设置帐号的全名
o 设置公司名
p 设置公司电话
h 设置家庭电话
id [username]
查看用户与有效用户组、初始用户组的关系
用户组
/etc/group
用户组名称、用户组密码(显示x)、GID、此用户组支持的账号名称
/etc/gshoadow
用户组名称、用户组密码、用户组管理员的账号、该用户组的所属账号
注:开头无!表示改组无合法密码,无用户组管理员
初始用户组
在/etc/group中的同名用户组
有效用户组
后来加入到的其他用户组
查看用户所支持的用户组
groups user_name
切换用户组
newgrp group_name
新增用户组
groupadd [-g gid] [-r] groupname
g 指定GID
r 新建系统用户组
用户组属性修改
groupmod [-g gid] [-n new_groupname] groupname
g 修改GID
n 修改组名
删除用户组
groupdel groupname
用户组管理员
gpasswd groupname
gpasswd [-A user1,...] [-M user1,...] groupname
gpasswd [-rR] groupname
nil 不加参数,表示给予groupname一个密码
A 设置group的管理员
M 将后面的用户加入用户组
r 删除group的密码
R 使group的密码失效
用户身份切换
su
su [-lm] [-c] username
nil 不加参数,以non-login-shell的方式切换到root身份,但是环境变量不会变过来
l -l 等价于 - ,以login shell的方式切换到username,环境变量会切换
m -m等价于-p,表示使用目前的环境变量,不读取新的
c 仅使用username身份进行一次命令,不切换
sudo
sudo [-b] [-u 新用户账号]
b 后台执行后续命令
u 后接欲切换的用户,没有表示root
仅有/etc/sudoers内的用户才能够执行sudo这个命令
visudo设置/etc/sudoers文件的语法
用户帐号 登录者的来源主机名=(可切换的身份) 可执行的命令
用户帐号:那个账号可以使用sudo命令
登陆者的来源主机名:这个帐号可能是由哪一台网络主机连接到本机的
可切换的身份:这个帐号可以切换成什么身份来执行后续的命令
可执行的命令:这个命令务必使用绝对路径。
例:
vbird1 ALL=(ALL) ALL
%wheel ALL=(ALL) ALL # 百分号%表示用户组
%wheel ALL=(ALL) NOWASSWD:ALL # NOPASSWD表示不需要输入密码
%wheel ALL=(ALL) /usr/bin/passwd # 表示只能执行passwd命令
%whell ALL=(root) !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,
!/usr/bin/passwd root # 不允许其他用户修改root密码
命令别名设置多用户/多命令:
User_Alias ADMIN_GROUP=pro1,pro2,pro3
Cmd_Alias CMD_GROUP=ALL,!/usr/bin/passwd,!/usr/bin/passwd root
ADMIN_GROUP ALL=(root) CMD_GROUP
pro1 ALL=(root) /bin/su - # 使用自己的密码,就可以切换到root身份
查询用户
w 查询目前在系统上登陆的用户(详细)
who 查询目前在系统上登陆的用户(简略)
last 列出从系统新建后到目前为止的所有登陆者信息
lastlog 查询每个账号的最近登陆时间(包括没有登陆过的)
用户对谈
write username [用户所在终端接口]
write vbird1 pts/2
[ctrl]+d结束输入
mesg [y|n]
设置自己是否接收用户对谈。y|n
root发来的消息不可不接收
wall "I will shutdown my linux server ... "
向所有人发送信息
邮件
发信
mail username@localhost -s "邮件标题"
小数点 . 结束
收信
mail(详见《鸟哥》page442)