黑马程序员技术交流社区
标题: 【上海校区】Linux中用户和用户组的管理 [打印本页]
作者: 冯程程 时间: 2018-12-19 11:36
标题: 【上海校区】Linux中用户和用户组的管理
本帖最后由 上海分校-小影 于 2018-12-21 09:53 编辑
在Linux中,任何文件都有’User Group Others ’三种身份的权限
用户与用户组的配置文件
(1) 用户信息文件:/etc/passwd
每一行表示一个用户,通过使用冒号分成7列。
feng:x:501:501:备注: /home/php1: /bin/bash
php1:x:501:501:备注(默认没有):/home/php1:/bin/bash
用户名:密码占位:用户编号:用户组编号:用户备注:用户家目录:shell -----------------------------------
第一列:用户的名称
第二列:用户的密码,一般用x占位
第三列:用户的id,,如果是0,则是超级管理员,1-499是系统创建的用户(伪用户)的id。500-65535是我们自己创建的用户的id,如果把一个普通用户的id改成0,则该用户变成了超级管理员了。注意:伪用户不能登录,不能删除。
第四列:用户所属用户组id,在创建一个用户时,如果没有指定该用户的主组,则会自动生成一个和用户名同名的组,该组就该用户的主组。
第五列:用户的备注信息。
第六列:用户的家目录
第七列:如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。
(2)用户密码文件详解
vi /etc/shadow
注意:这里面都是以:分割
1列:用户名
2列:密码
3列:密码最后修改时间
4列 :密码不可变更的天数
5列:密码需要重新变更的天数,(密码的有效期)
6列: 开始提示密码需要变更的时间
7列:密码过期失效之后,几天之内还可以登录
8列:账号的失效日期,过了之后密码无法使用
9列:预留的,新功能添加使用
(3)用户组信息文件:/etc/group
每一行表示是一个组,分成四列来显示。
feng:x:500:
feng: x: 500:
用户组名称:密码占位:用户组编号:隶属于该附属组的用户
------------------------
第一列是:组的名称
第二例是:是一个组密码的占位符,真实的密码是存储到gshadow配置文件里面的。
第三列是:是组的id,1-499是系统组的组id,500以后是我们自己定义组的id.
第四列:隶属于该附属组的用户
多学一招:
每一次创建一个新的用户,系统就会自己增加一个新的同名用户组和同名的家目录.
(4) 用户组密码文件解释
vi /etc/gshadow
file:///C:\Users\盈\AppData\Local\Temp\ksohtml\wps1428.tmp.jpg
1列:组名
2列:组密码(空或者!都表示没有密码)
3列:组的管理者
4 组内成员的列表
2 用户相关管理命令1 添加用户 useradd [选项] 用户名
选项 -g group_name 组名
-d 添加用户时,指定用户的家目录(主目录
如果不指定任何参数,就会自动生成同名的用户组和家目录
2 修改用户 语法: usermod [选项] 用户名 指定选项(名称,家目录,所属组)
选项:
-l 新的名字
-d 新的家目录
-g 新的所属组
3删除用户语法:userdel [选项] 用户名
注意:在删除用户时,加-r选项则同时删除用户的家目录。
4. 为添加的用户设置密码语法:passwd [选项] 用户
-S :查看用户密码状态(S需要大写)
-l :(lock)锁定用户的密码(禁止登录)
-u :(unlock)解除用户密码锁定
-d :删除用户密码,删除密码之后,只能在本地登陆。
例1: 为java设置密码
查看密码的状态: passwd -S java
多学一招:
禁止所有的普通用户登录
vim /etc/nologin 打开保存关闭即可
问题: 比如我们有50个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业,这个怎么解决?
5 批量添加用户: 思路:a 新建一个用户保存文件users.txt.
b 按照/etc/passwd中的格式,将想要新加的用户写进user.txt中.
c 新建用户密码保存文件passwd.txt. 按照/etc/shadow格式将用户对应的密码写在passwd.txt中
此处的密码字段只需要两个值即可,名字与密码明文即可
d 执行newusers < user.txt 将用户信息文件加到/etc/passwd中
查看执行完成之后的结果
e执行chpasswd <passwd.txt 将密码文件追加到/etc/shadwn中
f 查看家目录已经多了和用户名字一致的目录
多学一招:
如果登录的用户出现:bash-4.1# 说明家目录中丢失了配置文件
直接找到对应的目录进行复制即可 cp /etc/skel/.bash* /home/zhou
6用户组的管理添加用户组
语法:groupadd [选项] 组名
-g 添加组并指定ID
例1:添加一个用户组itcast,并且指定其id为888
groupadd -g 888 itcast
查看设置效果cat /etc/passwd
修改用户组信息
语法:groupmod [选项] 组名
-n 修改组名
-g 修改组ID
例:修改itcast用户组的名字为shanghai,组id为999
groupmod -n shanghai -g 999 itcastfile:///C:\Users\盈\AppData\Local\Temp\ksohtml\wps14CE.tmp.jpg
删除用户组
语法:groupdel 组名
注意:如果一个组下有用户,是不能删除这个组的。
案例1
新建一个songjiang用户,初始组为liangshan组,
并设置密码为 songjiang123
groupadd liangshan
useradd -g liangshan songjiang
passwd songjiang
︴案例2
把songjiang用户锁定(相当于禁止账号登陆),
passwd -l songjiang
passwd -u songjian
6 赋予没有普通用户特殊权限 sudo介绍:可以让你以其他用户的身份执行命令(通常是以root的身份运行命令),执行一些只有root才可以操作的命令,比如关机 shutdown.
但是若要使用该命令,必须将其加入/etc/sudoers中.
命令:sudo -u 用户名 shell命令 -u 可以不写.默认为root账号
a 切换到cheng账号执行shutdown -h 1
b 使用vi /etc/sudoers(必须使用root账号,否则提示权限不够)
参数解释:
cheng ALL=(root)/sbin/shutdown
cheng 表示用户名
ALL 登陆者来源主机名
(root) 可切换的身份
/sbin/shutdown 可执行的命令
c 测试cheng普通账号执行关机命令
sudo -u root shutdown -h 1 -u 可以省略
作者: 小影姐姐 时间: 2018-12-19 15:57

作者: 不二晨 时间: 2018-12-20 17:19

作者: 放荡的人生 时间: 2019-12-5 17:45
just do it
作者: xiaowang66 时间: 2020-4-23 16:25
加油啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |