Linux用户和组管理
3月21日课后笔记
一、/etc/passwd文件存储用户的配置文件详细信息。有7个部分构成,以分隔符分隔。
[root@ftp ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
1、用户名
2、存放用户密码的地方,但是现在把密码存在了etc/shadow配置文件了,所以这里用x代替。
也可以称之为密码占位符
3、用户的id号
4、用户的组id
5、注释说明,就是给用户做一个备注而已,让自己以后看到这个用户的时候知道这个而用户是做什么的。
6、用户的家目录
7、用户登陆之后使用的sehll
二、/etc/shadow配置文件中每个字段的含义
[root@ftp ~]# cat /etc/shadow
root:$6$uYLZf8bxYGB5evuK$4ime.gbbT158/C3e.xM4d21D/kcL8yHwq1Ur0XPrY7NJk7kdq/wSrJqxl5nq1yAC4L9unTfh74f.2BjQi9fMh/:16468:0:99999:7:::
1、用户名
2、用户密码
第二个字段的解释:
$6:密码是以sha-512加密的
$5:密码是以sha-256加密的
$1:密码是以MD5加密的
!!:表示这个用户还没有设定密码
*:表示用户被锁定了
3、用户距上次更改密码的日期,是以1970年1月1日期到上次更改密码的时间来计算的
date :查看系统时间
date -s "2015-03-22 20:12:20":修改时间,后面的数字是时间的格式,年、月、日、时、分、秒来排的
ntpdate time.windows.com:时间同步命令,后面直接更时间服务器。time.windows.com是微软的时间服务器
hwclock:显示硬时间,也就是计算机bios的时间
-h:将系统时间调整为与硬件时间一直
-s:将硬件时间调整为与系统时间一直
4、表示要过多少天才可以更改你自己的密码。
0:表示没有天数限制
5、密码的失效时间,以天为单位
6、密码到期前的警告时间
7、表示账号的失效时间,也就是说在这个位置可以自己设定天数,例如设定的是7天,那么在账号到期之后再过7天,
如果你没有修改密码,那么这个账号就会被锁定
8、生命周期,就是说一个账号可以活多久
9、保留段
三、用户和组的创建及删除
1、groupadd:创建组,后面直接跟组名就可以
[root@ftp ~]# groupadd cheng
tail /etc/group:查看组的配置文件
tail /etc/gshadow:查看组的密码配置文件
创建组,并且指明了组的ID号
[root@ftp ~]# groupadd -g 1000 cheng
2、groupdel:删除组,后面直接跟组名
[root@ftp ~]# groupdel cheng
删除组时,一定要先删除组里面的用户才可以把组删除,不然无法删除
3、useradd:新增用户,也可说成是创建用户,后面直接更用户名
[root@ftp ~]# useradd cheng
创用户,并且指明用户的ID号
[root@ftp ~]# useradd -u 560 cheng
创建用户并指明用户的id号,且把用户加入到id为800的组中,加入组的的前提这个id为800的组是要提前存在的
[root@ftp ~]#useradd -u 800 -g 800 cheng
-g:指定用户的组,并且这个组是要提前存在的,才可以加入,否则不可以
-G:是附属组,就是说一个用户可以属于多个组,主组只一个,附属组可以用多个
-M:不创建用户的家目录
[root@ftp ~]#useradd -M cheng
-d:指定用户家目录
[root@ftp ~]# useradd -u 600 -g 601 -d /home/cheng123 cheng
-s:指定用户登录所使用的shell
如果不想让用户登录可以写成这样,nologin
useradd cheng -s /sbin/nologin
如果因为某些原因把用户的家目录和其他文件删除了或者说没有创建,现在需要了,那么需要做一下步骤:
给用户创建家目录
mkdir /home/cheng
将/etc/skel/配置文件中以.b开头的文件拷贝到创建的家目录中用户就可以登了
cp -v /etc/skel/.b* /home/cheng
4、userdel:删除用户,后面直接跟用户名
[root@ftp ~]# userdel cheng
-r:删除用户的家目录和邮件目录
[root@ftp ~]# userdel -r cheng
id:查看用户属于那些组,直接在id后面跟用户名
[root@ftp ~]# id cheng
5、usermod:修改用户的基本信息
把用户cheng的登录shell修改成bash
usermod -s /bin/bash cheng
修改用户的加目录,把cheng改成cheng168
usermod -d /home/cheng168 cheg
修改了用户的家目录之后,需要使用mv命令来移动一下才可以
mv /home/cheng /home/cheng168
修改用户的uid
usermod -u 5002 cheng
锁定账户
usermod -L [用户名]
解锁用户
usermod -U [用户名]
chfn:修改用户的注释信息
root@ftp ~]# chfn cheng
Changing finger information for cheng.
Name []: #这里是你要备注的名称
Office []: #你的办公室
Office Phone []: #办公室电话
Home Phone []: #住宅电话
Finger information not changed.
6、passwd修改密码
修改用户cheng的密码
root@ftp ~]#passwd cheng
mkpasswd:密码生成工具
默认没有,需要安装
root@ftp ~]#yum install -y expect
[root@ftp ~]# mkpasswd #直接输入命令
krv4=OTm8 #生成的密码
指定密码的长度和使用的字符
mkpasswd -l 15 -s 0
-l:指定密码的长度
-s:指定密码中特殊字符的最少位数,默认是1
keepas:密码保存工具
7、用户身份的切换:su
su cheng:切换到cheng这个用户,但是没有切换用户的家目录
su - cheng;切换到cheng这个用户,并且切换到家目录下
-c选项的用法:
su -c "touch /tmp/cheng.txt" -cheng:以用户cheng的身份去执行一条命令
验证刚才执行的命令是否成功
ls -l /tmp/cheng.txt
8、sudo命令的用法
sudo的作用:让普通用户临时拥有root的权限
让普通用户用执行roo通用户命令的权限,而不需要拥有root的密码
打开visudo
[root@web ~]# visudo #直接输入visudo这个命令就可以打开编辑
在打开 visudo配置文件中找到一下内容,并且根据一下的格式来写入:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
root:表示的就是用户名,就是你希望那个用户拥有另外一个用户的权限
ALL=(ALL):表示登录来源=表示切换过去你拥有哪一个用户的权限
ALL:可以执行的命令,这里要写绝对路径
例如:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
cheng ALL=(root) /bin/ls
这个就是说明cheng这个用户拥有了以root身份来执行ls命令的权限,并且不需要输入
root账号和密码
使用cheng来执行:
[cheng@ftp ~]$ sudo /bin/ls /root/就可以成功的查看root的家目录下的文件
在visudo的配置文件中,如果是这个格式的,前面的%号表示的是组:
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
NOPASSWD: ALL :这个的意思是不用输入密码就可以直接登录
四、远程登录root设定
1、不允许root用户远程登录
打开vim /etc/ssh/sshd_config 配置文件,
在配置文件中加入PermitRootLogin no,退出并保存
重启service sshd restar
2、禁止root用户远程登录之后,如何用普通用户切换到root用户
在visudo配置文件中修改:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
cheng ALL=(root) /bin/ls, /bin/su #这个的意思就是说可以在cheng用户使用root权限下的su命令
远程登录到cheng这个用户,然后在用su -命令切换到root用户就可以了。
tail /var/log/secure:查看日志
3、远程登录时,输入账号之后会等待几秒钟,解决的办是:
[root@web ~]# vim /etc/ssh/sshd_config #打开这配置文件
#UsePAM no
UsePAM yes #将yes改为no之后就可以了
重启服务
/etc/init.d/sshd restart
4、使用--stdin来修改用户密码,但是只能用于普通用户,不能用于root用户
修改用户密码是需要输入一次密码
passwd --stdin cheng
echo "123456" |passwd --srdin cheng
使用管道命令来一次修改密码
echo -e "123456\123456\n" |passwd cheng
一次修改密码,不需要确认
"123456\123456\n":这个的意思就是连续敲了两次回车键的,其中123456是密码
小白学习笔记,如果错误之处,还请大神指正
博客链接:http://www.aminglinux.com/bbs/thread-7622-1-1.html
本文出自 “交流” 博客,请务必保留此出处http://sxct168.blog.51cto.com/824373/1623189
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。