7.1 创建用户和修改用户属性
Sample:
[root@mytest001-18-56 ~]# useradd angus
[root@mytest001-18-56 ~]# passwd angus
Changing password for user angus.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@mytest001-18-56 ~]# tail -1 /etc/shadow
angus:$6$aApHjUOWJJ6KE7qQ$FjoPy4dr3GcD8jO62ZpNEywKeij886Jt2Nz7XJQORoXIVU0/4sXephfCV2IWwTXxjrNAij4imNqUDrt6jp/HB.:19907:0:99999:7:::
[root@mytest001-18-56 ~]# id angus
uid=1505(angus) gid=1506(angus) groups=1506(angus)
[root@mytest001-18-56 ~]# usermod -u 1111 angus
[root@mytest001-18-56 ~]# id angus
uid=1111(angus) gid=1506(angus) groups=1506(angus)
[root@mytest001-18-56 ~]# usermod -s /sbin/nologin angus #修改shell
范例分析:
这段命令序列在Linux系统上执行了以下功能:
-
创建新用户:
useradd angus这条命令创建了一个名为
angus的新用户账户。默认情况下,这会为用户创建家目录,并根据系统的配置文件设置一些基本的用户环境。 -
设置用户密码:
passwd angus接着,为用户
angus设置了密码。第一次尝试设置的密码因少于8个字符而被系统拒绝。之后,成功设置了符合要求的密码,并得到消息“all authentication tokens updated successfully.”,表明密码设置成功。 -
查看shadow文件的尾部记录:
tail -1 /etc/shadow此命令显示了
/etc/shadow文件的最后一行,这里包含了用户angus的密码散列信息。密码前的$6$表示使用的是SHA-512加密算法。这条记录还包含了密码的最近更改信息、最小密码年龄、最大密码年龄、警告周期、失效后的宽限期以及保留字段等信息。 -
查询用户ID信息:
id angus首次查询了用户
angus的ID信息,显示其初始用户ID(uid)为1505,组ID(gid)为1506,并且属于同名的基本组。 -
修改用户ID:
usermod -u 1111 angus使用
usermod命令修改了用户angus的用户ID(uid)为1111。 -
再次查询用户ID信息:
再次使用id angus命令,确认用户angus的用户ID(uid)已经被改为1111,组ID(gid)和所属组保持不变。 -
修改用户登录Shell:
usermod -s /sbin/nologin angus最后,使用
usermod命令修改了用户angus的默认登录Shell为/sbin/nologin。这意味着用户angus将不能登录系统,通常用于服务账户或需要禁用登录权限的情况。
总结起来,这些命令完成了创建用户angus、设置密码、查看密码策略与用户ID信息、调整用户ID以及禁止用户登录系统的操作。
7.2 修改用户注释和锁定用户
Sample2:
[root@mytest001-18-56 ~]# usermod -c 'Sunia old name' angus
[root@mytest001-18-56 ~]# grep angus /etc/passwd
angus:x:1111:1506:Sunia old name:/home/angus:/sbin/nologin
[root@mytest001-18-56 ~]#
[root@mytest001-18-56 ~]# clear
[root@mytest001-18-56 ~]# usermod -c 'Sunia old name' angus
[root@mytest001-18-56 ~]# grep angus /etc/passwd
angus:x:1111:1506:Sunia old name:/home/angus:/sbin/nologin
[root@mytest001-18-56 ~]# usermod -L angus
[root@mytest001-18-56 ~]# ssh angus@192.168.18.56
angus@192.168.18.56's password:
Permission denied, please try again.
angus@192.168.18.56's password:
Permission denied, please try again.
angus@192.168.18.56's password:
angus@192.168.18.56: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
命令分析:
这段命令序列主要执行了以下几个功能:
-
更新用户注释信息:
usermod -c 'Sunia old name' angus这条命令修改了用户
angus的注释字段(通常用于描述用户的信息),将其改为Sunia old name。这可以通过查看/etc/passwd文件来验证,其中每个用户记录的第5个字段即为注释信息。 -
验证用户信息变更:
grep angus /etc/passwd运行此命令后,显示出
angus用户在/etc/passwd文件中的条目,确认了注释信息确实被更新为了Sunia old name。 -
锁定用户账号:
usermod -L angus这条命令将用户
angus的账号锁定,意味着用户无法通过密码认证登录系统。在Linux系统中,这是通过在/etc/shadow文件中,在用户密码hash前添加一个感叹号(!)或在某些系统中使用特殊日期来实现的。 -
尝试SSH登录:
ssh angus@192.168.18.56尝试使用SSH协议从当前主机远程登录到IP地址为192.168.18.56的主机上的
angus用户。由于angus账号已被锁定,即使提供了正确的密码,系统也会拒绝登录,显示“Permission denied”。此外,由于未提供密钥认证,公钥认证、GSSAPI认证等其他方式也均未通过,最终导致登录失败。
综上所述,这段命令首先修改了用户angus的注释信息,然后验证了修改结果,接着锁定了angus的账号,最后尝试通过SSH登录验证账号确实被锁定无法登录。

2万+

被折叠的 条评论
为什么被折叠?



