你们最喜欢的一章,很好理解相当于创建游戏账号和密码,只不过是让你自己来创并且稍微复杂亿点,但整体还是很好理解,接下来跟着主播一起来康康如何操作
目录
一.用户账号和组账号的概述
首先给大家讲用户账号这很好理解吧,相当于创个游戏账户
用户账号分为:
超级用户:(相当于系统里面的最高权限)root用户是Linux操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于Windows操作系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。 root 拥有对系统的最高的管理权限ID=0。
普通用户:(指的是管理员用户,它的权限没有超级用户那么高但也能管理)普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限
ps:系统用户UID:1-999(centos7版本)1-499(centos6版本)
程序用户:(最低级的用户,它啥权限都没,最多就是维持某个系统或程序进行正常运作)在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不介许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail等
伪用户一般不会用来登录系统的,它主要是用于维持某个服务的正常运行如:ftp,apache
1.管理员组:root,0
2.普通组:GID
1.系统组:1-499(Cent0S6)1-999(CENTOS7)
2.普通组:500+(CentoS6),1000+(CENTOS7)
表示该账户需要密码才能登录,为空时,账户无须密码即可登录
组账号:
基本组(私有组):指的就是把多个用户集合起来组成一个用户组
附加组(共有组):指的是该用户在自己组的同时还包含在其他的组中。
UID和GID:
UID:(User IDentity)就是指每个用户的身份标识,相当于身份证啦
GID:(Group IDentify)组标识号。
小总结:
用户和组的关系
用户是员工,组是职位,员工可以兼职多个岗位
总有一个最重要的身份,主要组和附加组
主要组:必须要一个,组有且唯一。
附加组:可有可无,可以有多个
二,用户账号文件/etc/passwd
保存用户名称,宿主目录,登录Shell等基本信息 文件位置:/etc/passwd
很好理解就是查看一个用户的基本信息,举个例子:
以上给大家解释下意思:
root:x:0:0:root:/root:/bin/bash | |
第一段 | 用户账号名 |
第二段 | 用户密码占位符“x”(x表示用户设置密码) |
第三段 | 用户账号的UID号 |
第四段 | 所属基本组账号的GID号 |
第五段 | 描述信息(用户全名) |
第六段 | 用户的宿主目录 |
第七段 | 登录Shell信息(/bin/bash为可登录系统,/sbin/nologin和/bin/false为禁止用户登录系统) |
三. 用户账号文件/etc/shadow
保存用户的密码,账号有效期等消息 文件位置:/etc/passwd
很好理解就是对用一个用户的密码记录,举个例子:
liu:$6$lzSpn/rJ$PhBhVvkr6Es6pekpBEwAXLxJK/VN1RB271cqqRkK7tV /L9oRluH4SgFhoOUfQ.BbwKgliSBnr5.3YftpA6zkK.:19077:0:99999:7::: | |
第一段 | 指的是该用户 |
第二段 | 指的是加密的密码 |
第三段 | 指的是我上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数 |
第四段 | 指的是密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制. |
第五段 | 指的是密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制 |
第六段 | 指的是提前多少天警告用户密码将过期,默认值为7 |
第七段 | 指的是密码过期后的宽限天数 |
第八段 | 指的是 帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空表示账号永久可用。 |
第九段 | 保留字段(未使用) |
ps:”*“:代表没有密码是不能登录,当我用新创建的用户不设定密码,那么它的密码项也是
”!,!“:代表这个用户没有密码,不能登录
四.chage命令
用来修改账号和密码的有效期限,针对目前系统已经存在的用户
格式:chage【选项】用户名
-m | 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 |
-M | 密码保持有效的最大天数。chage -M 60 root |
-W | 用户密码到期前,提前收到警告信息的天数。 |
-E | 帐号到期的日期。过了这天,此帐号将不可用。 |
-d | 上一次更改的日期。 |
-i | 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 |
-l | 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 |
--M(密码有效期)与--L(具体点)
--W(密码变更前的警告天数)
--I(密码过期后的宽限天数)
--E(这个要写具体的日期)
ps:其中chage -E 2022- 04-06日为过期时间
chage -d 2019-06-30 guan//设置guan用户最后一次修改密码的日期为2019年6月30日
chage -d 0 guan/则代表该guan用户需立即修改密码
date -d “+45days” -u//如果不知道时间可以用date查看
五.添加用户账号--useradd
格式:useradd【选项】。。用户名
-d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)。 |
-e | 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。 |
-g | 指定用户的基本组名(或使用GID号)。 |
-G | 指定用户的附加组名(或使用GID号)。 |
-s | 指定用户的登录Shell。 |
-u | 指定用户的UID号,要求该UID号码未被其他用户使用。 |
-M | 不建立宿主目录,即使/etc/loqin.defs系统配置中已设定要建立宿主目录。 |
给拐友们举个例子
1.创建用户():
2.给用户指定宿主目录,设置基本组为wheel,附加组为root(-d,-g,-G)
(给admin设置一个宿主目录,基本组是wheel,附加组是root)
3.给wangwu设置过期账户的时间,但不能登录账户(-e,-s)
4.liucheng不建立宿主目录,在home里面找不到(-M)
5. 指定UID给用户xiaolong(-u)
六.设置/更改用户口令--passwd
passwd命令格式:passwd 【选项】。。用户名
-d | 清空指定用户的密码,仅使用用户名即可登录系统。 |
-l | 锁定用户账户。 |
-S | 查看用户账户的状态(是否被锁定)。 |
-u | 解锁账户(是否被锁定)。 |
给拐友们举个例子:
1.批量给用户设置密码(echo “123456” | passwd --stdin xiaolong)
2.清除密码 (passwd -d)
3.查看用户的状态(passwd -S)
4.锁定账户(passwd -l)
5.解锁账户(passwd -u)
七.修改用户账号的属性--usermod
usermod命令: usermod【选项】。。用户名
-l | 更改用户账号的登录名称(login Name) |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
以下选项与useradd命令中的含义相同
-u:指定用户的uid号
-d:指定用户的宿主目录位置
-e:指定用户的账户失效时间
-g:指定用户的基本组名
-G:指定用户的基本组名
-M:不建立宿主
-s:指定用户的登录shell
八.删除用户账号的命令---userdel
userdel格式:userdel 【-r】用户名
1. 添加-r选项时,表示脸用户的宿主目录一并删除
2. 如果不加-r,删除之后在创建用户时会报错
很简单就把用户名删除,举个例子:
九.用户账号的初始配置文件
1.文件来源:新建用户账号时,从**/etc/skel**目录中复制而来
2.主要的用户初始配置文件:
- ~/.bash_profile
- ~/.bashrc
- ~/.bash_logout
ps:ls -a才能查看这些隐藏的文件
(1) .bash_profile
示例代码中为用户添加了2个环境变量(JAVAHOME和CLASSPATH),并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)
CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath.
(2).bashrc
例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。
每次修改.bashrc后,使用source/.bashrc(或者。/.bashrc)就可以立刻加载修改后的设置,使之生效。
一般会在bashprofile文件中显式调用bashrc。登陆linux启动bash时首先会去读取~/.bash profi le文件,这样~/bashrc也就得到执行了,你的个性化设置也就生效了。
关于环境变量的读取顺序:
用户登录->>加载~/bash profile --> bash profile中配置了首先是使~/.bashrc生效
(3).bash_logout
用途:用户登出时执行的命令
#~ /.bash_logout
#在当前用户登出时,打印出Logout 和当前时间
echo “Logout, ‘date’”
总结:
主要就是讲解账户与权限的命令,没什么好讲的,拐友们多打打就行