一、用户信息存放文件/etc/passwd
以冒号:分隔成7段
1、用户名
2、X表示密码,实际密码在/etc/shadow
3、UID
4、GID
5、注释说明
6、用户家目录
7、shell (/bin/shell, /bin/false, /sbin/nologin, )
二、密码存放文件/etc/shadow
以冒号 : 分隔成9个字段
(1) 用户名
(2) 密码,用SHA-512加密过,不可逆
(3)上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’.
(4)要过多少天才可以更改密码, 0 不限制
(5)密码多少天后到期,默认是99999,可以理解为永远不需要改
(6)密码到期前的警告期限
(7)账号失效期限,到期后过多少天锁定帐号
(8)账号的生命周期
(9)作为保留用的,没有什么意义
$6$ 表示sha-512加密
$5$表示sha-256加密
$1$表示MD5加密
密码前有一个!或者两个!!表示被锁定
!!未设置密码
* 表示锁定
三、新增、删除用户和组
groupadd groupname 创建组
-g 指定GID
groupdel 删除组,前提是组里没有任何成员
useradd username
-u 指定UID 默认500起
-g 指定加入的属组
-G 指定加入附属组,可以用逗号,分隔同时加入多个附属组
-M 创建用户时不创建家目录
-d 指定家目录
-s 自定义shell
-c 注释说明
userdel username 删除用户,-r 连带家目录一起删除
usermod 修改用户参数
-u 修改UID
-s 修改shell
-d 修改家目录
-g 修改属组
-G 修改附属组 退出附属组 -G “”
-L 锁定用户 也可以使用passwd -l username
-U 解锁 也可以使用passwd -u username
chfn username 设置用户注释说明
如果用户家没有目录环境量,可以在/etc/skel/目录下拷贝
关键文件 .bash_profile 、.bashrc 、 .bash_logout
四、修改密码
passwd username 修改用户密码
passwd --stdin 不进行交互修改密码,只需要输入一次
在脚本中常见使用 echo "123" | passwd --stdin username
echo -e "123456\n123456\n" //换行输出 \n:换行
mkpasswd 密码生成工具
安装包 expect
mkpasswd
-l 指定密码长度
-s 指定特殊字符
五、用户身份切换
su - username 完全切换用户 环境变量$PATH, $HOME
su username 不完全切换用户,环境变量还是当前用户的
su -c "touch 1.txt /tmp" username 使用其他用户身份来执行命令,再回到当前用户
su - root 需要知道密码,这样不安全
sudo 临时以另一个用户的身份来使用某些或者全部预先设定的命令
配置文件:/etc/sudoers
可能通过visudo命令编辑这一行
root这个位置表示 :用户名,如果是组名,要在前面加百分号%
第一个ALL位置:表示来源主机(ip)
第二个ALL位置:表示以哪个用户身份来执行命令,如果不填默认为root
第三个ALL位置:能够使用或者禁止的命令
例1
user1 ALL=(root) /bin/ls, /bin/su
命令位置使用技巧
多个命令使用逗号,分隔
星号* 可以通配
命令前加一个!号表示禁止使用该命令
NOPASSWD: 使用前不需要输入自己的密码
User_Alias USER_SU = test, test1, aming //做用户的别名,可以写多个用户
Cmnd_Alias SU = /bin/su //做命令的别名,可以写多个命令
六、限制root远程登陆
修改配置文件/etc/ssh/sshd_config
把#PermitRootLogin yes 这一行去掉井#号,yesn改为 no保存退出
远程登陆不检查DNS:把#UseDNS yes 改为no
阅读(374) | 评论(0) | 转发(0) |