用户密码配置文件(核心配置文件)
# cat /etc /passwd
每创建一个用户,都会在里面多出一行
密码配置文件的结构:
每一个用户一行,冒号分割为七段
第一段为用户名,第二段为早期linux密码保存地点 第三段表示uid,第四段表示gid,第五段为注释信息,无实质作用,第六段表示此用户的家目录 第七段表示shell,可以与用户交互的窗口,较常见的bin/bash sbin/nologin
密码保存在 etc/shadow目录下
# etc shadow
与配置文件割断一一对应
第二段为密码(加密,加密方式:SHA-512)
第三段数字为天数
#man shadow查看各段解释:
为aming用户设置一个密码:
(密码与root的密码一样)
(在一行里同时执行多个命令,可以用;分割)
两个同样密码的用户的加密的字符串,是不一样的
3.2 用户组管理
组密码配置文件
# cat etc/group
# cat /etc/gshadow(组密码配置文件)
带减号的文件使系统自动备份的文件
原文件不小心删掉,可拷贝此文件成为原文件,回复删除文件,可能会有区别,可能还没有及时更新
# groupadd
增加组grp1
# groupaddgrp1
# tail -n1/etc/group 查看组
增加组的同时制定id:一千以上
# groupadd-g 1005 grp2
# tail -n3/etc/group
删除组:
# groupdelgrp1
# groupdeluser1
提示不能删除这个组,因为这个组里有一个用户user1,当里面存在用户时不可以删除
3.3 用户管理
创建一个用户:
# useradd user2
查看passwd
# tail -n2 /etc/passwd
创建的普通用户的uid是从1000开始的,
创建一个用户的同时并指定他的uid 和组
# useradd -u 1004 -g grp2 user3
可以看到新建的user3用户的uid是1004,gid是1005(grp2)
创建一个用户的同时,指定他的家目录/home/aming111和bash /sbin/nologin
# useradd -u 1006 -g grp2 -d /home/aming111-s /sbin/nologin user4
查看home目录验证是否存在
# ls /home/
创建用户的同时可以不创建家目录(并不代表没有家目录)
# useradd -M user5
可以看到home目录下没有user5
(创建用户的时若不指定uid,那么会默认接着着上一个用户的uid排列1005 1006)
创建一个组,并制定他的组id为1010,并创建一个用户user6 制定他的组为grp3
# groupadd -g 1010 grp3
# useradd -g grp3 user6
接下来创建一个新用户user7
# useradd user7
可以发现,不指定组id的情况下,创建的用户默认设置的组id是根据uid增加的
(adduser与uaeradd是一样的)
删除用户:
# userdel user8
会把user8相关信息删掉,但保留此用户的家目录不被删除
默认保存用户文件,保留给管理员,可以手动删掉
#rm -rf /home/user8
删除用户的同时删掉他的家目录
# userdel -r user7
home里面的user7已被删除
3.4 usermod命令
usermod 是一个更改用户属性的命令 (之前讲过chmod)
修改用户的uid
# usermod -u 111 username
更改组id
# usermod -g grp2(gid)username
指定用户的shell
# usermod -s /sbin/nologin username
扩展组 -G
usermod -G
查看所有id 以及其他扩展组的id
# id aming
一个用户可以属于多个组,但是gid只有一个
为aming用户定义一个扩展组,并加入到grp2组里,也就是说aming用户不但属于aming组也属于grp2组
# usermod -G grp2 aming
再次讲她加到user5组里面
# usermod -G user5 aming
但是发现他替换掉了grp2组
同时加入grp2 user5组
# usermod -G grp2,user5aming
-g 只能指定一个组 -G多个
3.5 用户密码管理
passwd使用更改用户密码的命令
更改一个普通用户的密码,后面跟普通用户的名字
# passwd aming
更改密码之后可以看到/etc/shadow里面第二列增加了一行加密的字符串
# tail /etc/shadow
!!表示这个用户没有密码,也就无法登陆
# head /etc/shadow
*表示这个用户密码是被锁定的,也无法登陆
锁定一个用户的密码
# passwd -l user5
解锁用户的密码
# passwd -u aming
除了passwd -l外还有一个命令也可以锁定用户密码
# usermod -L aming
只有一个叹号,也为锁定状态
解锁
# usermod -U aming
passwd常用法
更改一个用户的密码
# passwd –stdin
只需要输入一次,而且为明文显示
(以后使用shell脚本的时候会用到,)
例如吧user5用户的密码设置成111222,可以一次性更改完成(管道符号,输出传递给~)
# echo “111222“ |passwd –stdin user5
在一行命令里面出现一个换行符
# echo -e“
\ 表示换行,不加-e则不换行
\t
# echo “123\tsss”
# echo “123\nsss”
更改密码
# echo -e “1231111\n1231111“ |passwd user3
(不需要输入两次密码)(老师建议密码设定尽量至少十位,数字大小写,特殊符号组合,才足够安全,也不要有规律性,不包含姓名,生日等)
3.6 mkpasswd命令
mkpasswd 生成密码的工具,需要先安装expect包
# yum install -y expect
生成一个密码
# mkpasswd
可以生成一个比较安全的密码,并记录在一个文本文档里
指定生成的密码的长度,和一个特殊符号
# mkpasswd -l 12
# mkpasswd -l 12 -s 3
零个特殊符号
# mkpasswd -l -s 0
3.7 su 命令
su 是用来切换用户的命令
在root用户下切换到其他用户下
# su – aming
(whoami 或者 id 查看当前用户)
# su – aming “-“是为了更彻底的切换用户(配置、环境变量)
如果不加“-“ 还在root用户下,没有完全切换过来
# su aming
以某个用户的身份执行命令,而不需要登录到这个用户下就可以完成
# su - -c “touch /tmp/aming.111“aming
新创建的文件所属折为aming,所属组为grp2,因为他的属组就是grp2
在普通用户下也可以切换到另一个普通用户下,
# su – uaer5
只需要输入密码就可以了
前缀不同,是因为没有/home/user5(家目录)
首次按创建一个家目录
# mkdir /home/user5
其次更改属组以及所有者
chown user5:user5 /home/user5/
依然 因为这个价目录下没有任何配置文件
增加配置文件:
系统有一个模板目录 # ls /etc/skel/
将三个.bash文件拷贝到user5 的配置文件内,并更改所有者以及所属组
# cp /etc/skel/.bash*/home/user5
# chown -R user5:user5!$(!$ 表示执行上一个命令的参数)
恢复正常
普通用户切换到root用户,只需要输入root用户密码就可以
# su –
3.8 sudo命令
sudu 可以让普通用户临时执行root命令 避免普通用户知道root用户密码
打开sudu的配置文件
# visudu visudo可以检测语法错误
最核心文件,表示允许root用户去运行所有命令
可以为普通用户加入一行,是普通用户可以用root身份使用ls,mv,cat等命令:
aming ALL=(ALL(用户)) ALL(表示所有命令)
aming ALL=(ALL) ls,mv,cat
用visudo提示在92行有错误
回车可查看选项
选择e
(:set nu 查看行数)
发现需要写绝对命令:
aming ALL=(ALL) /usr/bin/ls,/usr/bin/mv, /usr/bin/cat
切换到普通用户
# su- sming
# sudo /usr/bin/ls /root/
提示输入阿铭用户的密码,就可以查看root目录,第二次就不需要输入密码了
cat 不可以,,使用sudo可以
使普通用户使用sudo的时候不用输入用户密码
aming ALL=(ALL) NOPASSWD:/usr/bin/ls, /usr/bin/mv, /usr/bin/cat
测试后发现不需要输入用户密码
sudo也可以用绝对路径
# sudo /user/bin/ls /root/
visudo 内还有更多其他用法
cmd alias,将多个命令添加到里面
93行换为这个字符串,就可以代表这三个命令
用户组也可以做同样的限制,同时作用于组内的多个用户
3.9 限制root 远程登录
不知道root密码的情况下的切换到root用户怎么弄??
# sudo su –
需要输入密码
# visudo
做一个用户alias user alias
为这三个用户,使用su切换root用户是不需要密码
# sudo su – root(root可以省略)
限制远程登录root
# vi /etc/ssh/sshd_config
可以 /加要搜索的内容 找到要修改的内容
#permitRootlogin yes
将#去掉 yes改为no 即可
然后需要重启服务
已经不可以使用root远程登录,
使用putty可以登录普通用户
$ w 查看当前登录用户
这时想看root目录下文件,但权限是不可以的
$ su -root
但是不知道密码,要使用sudo
$ sudo -su -root 登陆成功
创建用户时,不创建家目录(任何用户都需要一个家目录,)
删除用户时,不删除此用户家目录:
1.禁止登陆root用户
2.su – root用户
3. NOPASSWD: /usr/bin/su 切换root不需要密码,,
跳板机(堡垒机) 审计 记录操作命令,输出结果,,使之有迹可循