第四课 用户和组管理 3.1~3.9

3.1用户配置文件和密码配置文件

3.2用户组管理

3.3用户管理

3.4usermod命令

3.5用户密码管理

3.6mkpasswd命令

3.7su命令

3.8sudo命令

3.9限制root远程登录

{1}用户配置文件和密码配置文件

  • passwd 配置密码文件

  • 每一个用户是一行,用号分割为七段

  • 第1个字段是用户名(第1行的root就是用户名)

  • 第2个字段中都是x,存放的是用户的密码

  • 第3个字段是一个数字,表示uid

  • 第4个字段也是数字,表示gid

  • 第5个字段为注释信息,没有实质意义

  • 第6个字段是用户的家目录,root的家目录是/root,普通用户的家目录是/home/aming

  • 最后一个字段是用户的shell,/bin/bash表示可以登录,/sbin/nologin表示不能登录

  • 专门存密码的文件 /etc/shadow/etc/passwd类似, 由冒号分成9个字段。

  • 如果想在一行输入两条命令,中间可以用分号隔开如:head -n1 /etc/shadow: tail -n2 /etc/shadow

  • 第1个字段为用户名

  • 第二字段为用户密码,该密码是加密的 不能反明文密码。

  • 第3个字段为天数,上次更改密码的日期(从1970-1-1开始计算)

  • 第4个字段为要过多少天可以更改密码,默认为0

  • 第5个字段为密码多少天后到期,即在多少天内需要更改密码。

  • 第6个字段为密码到期前的警告期限

  • 第7个字段为账号失效期限

  • 第8个字段为账号的生命周期;最后一个字段作为保留用的,无实际意义

{2}用户组管理

  • 带减号结尾的文件是系统自动做的备份。

  • groupadd:增加组命令

  • 加上-g,就可以指定gid,自定义的话最好还是一千以上的数字,  Centos7默认是从1000开始的;(Centos7以下默认是从500开始)

  • groupdel 删除组命令 。

  • 当组里面有用户我们就不能删除这个组,想删除一个组前提是这个组里没有用户,

{3}用户管理

  • useradd 增加用户的命令。

  • -u:表示自定义uid

  • -g:表示指定所属组

  • -d:表示自定义用户的家目录。

  • -s:表示自定义shell

  • -M:表示不建立家目录 不创建不代表没有。

  • uid会跟着上面的数字增加

  • gid并不会跟着上面数字增加

  • 命令adduser和命令useradd一样,都是用来创建用户的

  • userdel 删除用户命令

  • 格式为userdel [-r] username  其中-r选项的作用是,当删除用户时,一并删除该用户的家目录

{4}usermod命令

  • usermod 更改用户属性的命令

  • -u: 更改用户的uid

  • -g: 更改用户的gid或组名

  • -d: 更改用户的家目录

  • -s: 更改用户的shell

  • -G:添加扩展组;把用户追加到某些组里,可以追加到多个组中,每个组之间用“,”隔开

{5}用户密码管理

  • passwd 更改用户密码的命令,格式 passwd {用户名}

  • 改完查看tail /etc/shadow/

  • 没有密码是两个叹号 !!,空密码不能登录

  • 密码是加密字符串

  • 查看 head /etc/shadow/

  • 星号代表用户密码是被锁定的,不能用的

  • -l: 锁定用户密码(被锁定的密码前面会有个感叹号  !! );passwd -L aming

  • usermod -L aming也能锁定密码,前面只会有一个叹号,不管是一个还是两个都是锁上了。

  • -u: 解锁用户密码

  • -L 也可以解锁用户密码

  • --stdin 修改密码的时候可以明文显示密码,且直接输入密码就可以,在写脚本的时候可能会用到。

  • echo -e 可以实现换行

  • 在使用echo -e 命令时,后面跟的有两组字符串,并且两组字符串用“\”隔开,在“\”后加n执行后会换行显示,在“\”后面加t ,会隔开显示

{6}mkpasswd命令

  • 命令mkpasswd(make passwd)用于随机生成密码,Linux中默认没有这个命令,需要安装expect软件包,yum install -y expect

  • -l:生成指定长度的密码

  • -s:指定密码中有几个特殊字符

{7}su命令

  • su 切换用户

  • - 表示彻底切换用户,包括自己的配置、环境变量。

  • 格式su [-] aming,命令后面不加aming,就是切换到root用户

  • 假如我们以root的身份去执行一条命令,但是不登陆到aming用户上去也是可以的

  • 假如我们创建用户时没有创建用户的家目录,所以当我们切换到这个用户的时候,就会显示成

  • 以下操作我们可以让他恢复正常

  • 先创建它的加目录,然后更改属组合所有者,拷贝skel的配置文件,在更改所有者和所属组。

  • 只要知道root的密码,普通用户也可以suroot

{8}sudo命令

  • sudo 它可以让普通用户临时执行一条命令,以指定用户的身份去执行。通常情况下都是给普通用户执行root用户的权利。

  • 要使用这个命令,需要编辑配置文件,etc/sudoers,但是直接编辑这个文件出错后系统不会报错,所以我们用visudo命令来编辑,如果编辑有问题,系统会提示错误

  • 往下翻,一直找到root    ALL=(ALL)   ALL这一行,表示允许root用户在任何地方允许所有命令

  • 在这条命令下面添加命令aming   ALL=(ALL)    /usr/bin/ls,  /usr/bin/mv,  /usr/bin/cat,保存退出:wq;注意这里要使用命令的绝对路径并且要用空格隔开小用法" :set nu"可以查看文件的行数。小括号里面的ALL指的是用户,后面的ALL指所有的命令。

  • 如果发生内容错误,它会显示成如图:

  • 编辑之后,aming 就可以拥有rootls,cd,cat ,的权限了,需要输入用户的密码,第二次就不需要了使用方式如下

  • 继续编辑visudo ,在加一个user5,嫌输入密码麻烦就加一个 NOPASSWD, 可以在使用sudo命令时,不需要再输入密码。

  • visudo中还有可以给命令做别名的用法,比如说 Cmnd_Alias AMING_CMD =  /usr/bin/ls, /usr/bin/mv, /usr/bin/cat aming哪里把/usr/bin/ls, /usr/bin/mv, /usr/bin/cat换成AMING_CMD

{9}限制root远程登录

  • 使用root用户登录服务器有一定的危险,为安全起见,我们可以禁止root远程登录,只允许普通用户登录。首先输入#visudo,给普通用户做别名,然后设定规则,让普通用户拥有任何身份,执行su命令无需密码

  • 限制root远程登录,首先修改配置文件/etc/ssh/sshd_config,输入/Root搜索,将#PermitRootLogin yes修改为PermitRootLogin no,保存配置文件,重启sshd服务# systemctl restart sshd.service,这样我们就成功的限制了root远程登陆

猜你喜欢

转载自blog.csdn.net/weixin_42604768/article/details/81322910