网站首页 > 开源技术 正文
学习路线
用户的概念和分类
1.用户指的是Linux操作系统中用于管理系统或者服务的人,用户管理的是相应的文件
2.用户的分类:
1) 超级用户:也叫管理员,root。该用户具有所有权限,UID并且绝对只能是0.
2) 系统用户:也叫程序用户。一般都是由程序创建,用于程序或者服务运行的身份;
默认不允许登陆系统。
注:Centos6/RHEL6中,系统用户UID范围:1<=UID<=499;
Centos6/RHEL6中,系统用户UID范围:1<=UID<=999
3) 普通用户: 一般都是由管理员创建,用于对系统进行有限的管理维护操作。
默认可以登录系统。UID小于60000
特别说明:
1. 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息
2. 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等
用户创建及相关配置文件
1.创建用户
useradd [option] username
-u:表示自定义UID
示例: [root@localhost ~]# useradd -u 888 jf2
[root@localhost ~]# tail -1 /etc/passwd
jf2:x:888:888::/home/jf2:/bin/bash
-g:表示使新增用户属于已经存在的某个组,后面可以跟组id,也可以跟组名。
示例: [root@localhost ~]# useradd -g test jf3
[root@localhost ~]# tail -1 /etc/passwd
jf3:x:889:503::/home/jf3:/bin/bash
-G:表示使用附加组
示例: [root@localhost ~]# useradd -G test jf4
[root@localhost ~]# cat /etc/group
test:x:503:jf4
-c:表示添加注释内容
示例: [root@localhost ~]# useradd -c lianxi jf5
[root@localhost ~]# tail -1 /etc/passwd
jf5:x:891:891:lianxi:/home/jf5:/bin/bash
-d:表示自定义用户的家目录
示例: [root@localhost ~]# useradd -d /home/test jf9
[root@localhost ~]# tail -1 /etc/passwd
jf9:x:895:895::/home/test:/bin/bash
-M:表示不创建家目录
示例: [root@localhost ~]# useradd -M jf10
[root@localhost ~]# su - jf10
su: 警告:无法切换到目录/home/jf10: 没有那个文件或目录
-s:表示自定义shell
示例:[root@localhost ~]# useradd -s /sbin/nologin jf11
[root@localhost ~]# tail -1 /etc/passwd
jf11:x:897:897::/home/jf11:/sbin/nologin
-r:添加系统用户
示例: [root@localhost ~]# useradd -r apache
[root@localhost ~]# tail -1 /etc/passwd
apache:x:498:498::/home/apache:/bin/bash
2.用户信息的保存文件
[root@localhost ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
/etc/paswd由:分割成7个字段。
·第一字段为用户, 它代表用户账号的字符串。
·第二字段存放的是该账号的口令。
·第三个字段为一个数字,这个数字代表着用户标识号,也称uid。系统通过这个数字识别用户身份的。这里的0就是root,也就是说我们可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。uid的取值范围是0-65535.Centos7的普通用户标识号从1000开始。
·第四个字段也是数字,标识组标识号,也称gid。这个字段对应着/etc/group中的一条记录。
·第五个字段为注释说明,没什么意义
·第六个字段为用户的家目录,当用户登录时,就出在这个目录下。
·最后一个字段为用户的shell。
[root@localhost ~]# head -5 /etc/shadow
root:$6$sO4k9N7S/4.hzm1G$hylKE5GxsZMN42kY1CkWi/qB03./1IvlwCJKGl/hQpb3uJnnsCYEdbfQlQ2v5Efmyjgt4BbcKyvi5Kfzwns.M.:17602:0:99999:7:::
bin:*:17246:0:99999:7:::
daemon:*:17246:0:99999:7:::
/etc/shadow由:分割成9个字段。
·第一个字段为用户名
·第二个字段为用户密码,是该账号的真正密码。
·第三个字段为上次更改密码的日期,这个数字以1970年1月1日和上次更改密码的日期为基准计算而来。
·第四个字段为要过多少天才可以更改密码,默认是0,即不受限制。
·第五个字段为密码多少天后到期,即在多少天内必须更改密码。默认是9999
·第六个字段为免到期前的警告期限。
·第七个字段为账号失效期限。
·第八个为账号的生命周期。
·最后一个字段作为保留用的。
用户信息的修改
1.usermod(更改用户的)
usermod [option] [参数]USERNAME
-u;更改用户ID
-g GID:更改用户的基本组
-a -G:不使用-a选项,会覆盖原有的附加组
-c:“注释内容”
-d -m:指定用户的家目录,如果用户登录过,则加上-m选项,移动其此前的文件到新的家目录
-s;更改用户的shell
-l:更改用户的登录名(Login)
-L:锁定账号
-U:解锁账号
2.chage(更改用户的账号信息)
chage -operation USERNAME
-d 修改用户最后一次更改密码的时间(为0时,登录系统时强制更改密码)
-m 修改密码的最小存活期(几天后才能修改密码)
-M 修改密码的最大存活期(每隔多少天更新一次密码)
-W 修改密码过期前警告(过期前几天发出警告)
-I (大写I)修改允许密码过期几天
-E 修改账户过期时间
-l(小写l) 列出账户的信息
删除用户
usermod -operation USERNAME
-r: 删除用户并且移除其家目录和邮箱
-f: 强制删除正在登陆的用户
组管理
1.核心功能:方便管理用户
用户是操作系统上管理维护系统或服务的人 组是用户的一个属性信息
任何一个用户默认都会有一个主组(默认组)
一个用户除了主组也可以有多个其他组(附加组)
2.组的创建和删除
groupadd [-g GID] groupname
示例: [root@localhost ~]# groupadd test
[root@localhost ~]# groupadd -g 888 test1
[root@localhost ~]# tail -2 /etc/group
test:x:503:
test1:x:888:
3.删除组命令groupdel
groupdel groupname
示例: [root@localhost ~]# groupdel test1
[root@localhost ~]# tail -2 /etc/group
jf1:x:502:
test:x:503:
3.组成员管理
gpasswd -operation GROUPNAME
常见选项:
-a 添加用户到组
-d 从组中删除成员
-A 指定管理员
-M 指定组成员,可以批量添加用户到组中
-r 删除密码
gpasswd 组名 给组设置密码
用户信息的查看
1.查看属性信息:id
id [option] [username]
-u:显示用户的ID号
-g:显示用户所在的基本组的组ID号
-G:显示用户所在的附加组的组ID号
-un gn Gn:显示ID号相对应的名字
示例: [root@localhost ~]# id jf5
uid=891(jf5) gid=891(jf5) 组=891(jf5)
[root@localhost ~]# id -u jf5
891
[root@localhost ~]# id -un jf5
jf5
2.查看用户账号信息:finger
[root@localhost ~]# finger alice
Login: alice Name: alice oscar
Directory: /home/alice Shell: /bin/bash
Never logged in.
No mail.
No Plan.
用户的密码管理:passwd
passwd [option] [USERNAME]
--stdin:标准输入,即passwd从标准输入(键盘)读取密码
用途:Linux中为了安全尽量避免捕获用户接口,即尽量不和用户交互
当用脚本批量创建用户和密码时不能自动执行(半夜时候)此时会用到--stdin
实例:[root@ns1 ~]# echo "aaa...111" | passwd --stdin jf
更改用户 jf 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
-l:锁定用户
示例:[root@ns1 ~]# passwd -l jf
锁定用户 jf 的密码 。
passwd: 操作成功
-u:解除用户
其他的用户相关指令
1.检查用户账号完整性:pwck
[root@ns1 ~]# pwck
用户“adm”:目录 /var/adm 不存在
用户“uucp”:目录 /var/spool/uucp 不存在
用户“gopher”:目录 /var/gopher 不存在
用户“ftp”:目录 /var/ftp 不存在
用户“rpc”:目录 /var/lib/rpcbind 不存在
用户“saslauth”:目录 /var/empty/saslauth 不存在
用户“oprofile”:目录 /home/oprofile 不存在
pwck:无改变
2.显示当前登录到系统的用户名:whoami
[root@ns1 ~]# su - jf
[jf@ns1 ~]$ whoami
jf
- 上一篇: C++性能优化指南:让你的程序飞起来!
- 下一篇: Linux内核目录文件和最新内核版本升级
猜你喜欢
- 2024-10-13 技嘉发布NVIDIA GeForce GTX 1630系列显卡
- 2024-10-13 超神的队友——MSI Z370 GODLIKE GAMING 评测
- 2024-10-13 KF无比稳定?英特尔i9-14900KF试玩《黑客神话:悟空》
- 2024-10-13 利用systemtap 分析c/c++函数调用耗时
- 2024-10-13 openGauss的可维护性:支持WDR诊断报告
- 2024-10-13 Linux内核目录文件和最新内核版本升级
- 2024-10-13 C++性能优化指南:让你的程序飞起来!
- 2024-10-13 程序员必备Linux性能分析工具和方法
- 2024-10-13 秒懂大模型:算子开发、算子融合、评估算子的性能
- 2024-07-06 华硕推出RTX 4060 LP半高显卡:双槽三风扇设计
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)