Linux用户的基本操作
程序员文章站
2023-08-12 12:57:39
[TOC] linux 用户管理 用户的基本操作 用户管理 1.什么是用户? 2.那Linux与windows系统的用户有什么区别? python 本质都是登录系统的,只不过Linux支持多用户同时登录,windows默认不支持,但是修改 的情况下也是可以多用户登录的。 python 1)系统中的进 ......
目录
linux 用户管理 - 用户的基本操作
用户管理
1.什么是用户?
用户指的是能够正常登录linux或windows系统
2.那linux与windows系统的用户有什么区别?
本质都是登录系统的,只不过linux支持多用户同时登录,windows默认不支持,但是修改`组策略`的情况下也是可以多用户登录的。
3.用户的作用
1)系统中的进程(运行的程序),都是需要特定的用户来运行的 2)管理文件的权限,每一个文件都有特定的用户拥有,所以访问一个文件或者目录受到用户的限制 3)进程能够以何种方式访问某一个文件或目录,和进程所关联的用户有关
4.如何查看系统中所存在的用户?
1)查看当前系统用户信息
[root@db04 ~]# id uid=0(root) gid=0(root) 组=0(root) [root@db04 ~]# id zls uid=602(zls) gid=602(zls) 组=602(zls)
2)每一个文件都有所有者
[root@db04 tmp]# ll 总用量 12 drwxr-xr-x 2 zls zls 4096 6月 2 20:44 zls drwxr-xr-x 2 oldboy oldboy 4096 6月 2 20:44 oldboy drwxr-xr-x 2 student student 4096 6月 2 20:44 student
3)每一个进程都有用户运行
[root@db04 ~]# ps -ef|less
5.用户相关配置文件
用户的信息存放在/etc/passwd
用户的密码都保存在/etc/shadow
这两个文件是linux
系统中最重要的文件之一。
如果没有这两个文件或者这两个文件出问题,会导致无法正常登录linux
系统。
1)/etc/passwd
账户文件
[root@zls ~]# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash 1 2 3 4 5 6 7 注释: /etc/passwd由 ':' 为分割符, 分为7个字段,每个字段的具体含义如下: 字段名称 注释说明 1.用户名称 #用户的账号名称 2.密码占位符 #存放账户的口令,暂用x表示,密码保存在/etc/shadow 3.用户的uid #用户标识号 4.用户基本组gid #组标识号 5.用户注释 #用户详细信息 6.用户家目录 #root家目录是/root普通用户家目录存在/home/username(可自定义) 7.用户登录shell #用户登录linux使用的shell #cat /etc/shells
2)/etc/shadow
用户密码文件
[root@zls ~]# tail -1 /etc/shadow zls1:!!:16312:0:99999:7::: 注释: /etc/shadow由 ':' 为分割符, 分为9个字段,每个字段的具体含义如下: 字段名称 注释说明 1.用户登陆名 #用户的账号名称 2.加密后的密码 #用户密码,这是加密过的口令(未设密码时为!!) 3.最近一次密码更改时间 #从1970年到最近一次更改密码时间之间过了多少天 4.密码最少使用几天 #密码最少使用几天才可以更改密码(0表示无限制) 5.密码最长使用几天 #密码使用多少天需要修改密码(默认99999永不过期) 6.密码到期前警告期限 #密码过期前多少天提醒用户更改密码(默认过期提前7天警告) 7.密码到期后保持活动的天数 #在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定 8.账户到期时间 #从1970年起,账户在这个日期前可使用,到期后失效。 9.标志 #保留
6.用户分类(约定,规范)
用户uid | 系统中约定的含义 |
---|---|
0 | 超级管理员(拥有最高权限) |
1-200 | 系统用户,系统自建,由系统分配给系统进程使用 |
201-999 | 系统用户,咱们创建,用来运行服务账户,不需要登陆系统(动态分配) |
1000+ | 常规普通用户 |
- 注意: 在centos7系统之前, uid1-499用于系统用户, 而uid 500+则用于普通用户
用户的相关命令
#### 1.`useradd`
使用useradd
和adduser
这两个命令,来创建用户
添加用户前需要确定: 确定用户的默认组是否有特殊要求 确定用户是否允许登陆 确定用户的密码策略 确定用户的有效期 确定用户的uid是否有特殊要求
1)使用useradd
命令新增用户, 注意: adduser
命令软链接指向useradd
命令
-u | 指定用户的uid,不能和现有id冲突 |
---|---|
-g | 指定用户用户默认基本组 |
-g | 指定用户附加组,用逗号隔开添加多个附加组 |
-d | 指定用户家目录 |
-c | 指定用户注释信息 |
-m | 不建立家目录 |
-s | 指定用户默认shell |
-r | 创建系统账户, 没有家目录 |
-a | 附加组,都留下,配合-g,追加 |
#创建zls用户,指定uid5001,基本组students 附加组sa,dba 注释信息:one newb user, 登陆的shell:/bin/bash [root@zls ~]# groupadd sa [root@zls ~]# groupadd dba [root@zls ~]# groupadd students [root@zls ~]# useradd -u 5001 -g students -g sa,dba -c "one newb user" -d /home/zls -s /bin/bash zls [root@zls ~]# tail -1 /etc/passwd zls:x:5001:505:one newb user:/home/zls:/bin/bash //创建系统用户,不建立用户家目录 指定nologin使其用户无法登陆系统 [root@zls ~]# useradd mysql -m -s /sbin/nologin [root@zls ~]# useradd -r dba -s /sbin/nologin
2)使用usermod
命令修改用户组
-u | 修改用户的uid |
---|---|
-g | 修改用户所属的基本组gid |
-g | 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组 |
-a | 追加更多的附加组, 必须和-g使用: -ag 追加附加组 |
-m | 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置 |
-d | 指定用户的家目录新位置 |
-c | 修改用户的注释信息 |
-s | 更改用户使用的shell |
-l | 更改用户登录名 |
-l | 锁定用户 |
-u | 解锁用户 |
[root@zls ~]# grep "zls" /etc/passwd zls:x:5001:505:2018 new student:/home/zls:/bin/bash //修改用户uid,gid, 附加组, 注释信息, 用户家目录, 登录shell, 登录名 //建立组,指定组gid [root@zls ~]# groupadd -g 5008 network_sa [root@zls ~]# groupadd -g 5009 devops //修改用户属性 [root@zls ~]# usermod -u 6001 -g5008 -a -g 5009 -c "2019 new student" -md /zls -s /bin/sh -l zls_zls zls //检查是否修改成功 [root@zls ~]# grep "zls" /etc/passwd zls_zls:x:6001:5008:2019 new student:/zls:/bin/sh [root@zls ~]# id zls_zls uid=6001(zls_zls) gid=5008(network_sa) groups=5008(network_sa),503(sa),504(dba),5009(devops) //验证家目录 [root@zls ~]# ll -d /zls drwx------. 2 zls_zls network_sa 4096 2014-09-23 00:13 /zls 锁定用户 [root@zls ~]# echo "123" |passwd --stdin zls_zls [root@zls ~]# usermod -l zls_zls //无法正常登录系统 ➜ ~ ssh zls_zls@192.168.56.11 zls_zls@192.168.56.11's password: permission denied, please try again. 解锁用户 [root@zls ~]# usermod -u zls_zls //正常登录系统 ➜ ~ ssh zls_zls@192.168.56.11 zls_zls@192.168.56.11's password: welcome to aliyun esc linux -sh-4.1$