本帖最后由 上海分校-小影 于 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 可以省略
|