A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 上海分校-小影 于 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是系统创建的用户(伪用户)的id500-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,并且指定其id888
      groupadd -g 888 itcast
   查看设置效果cat /etc/passwd

修改用户组信息
语法:groupmod  [选项]  组名
-n 修改组名
-g 修改组ID
:修改itcast用户组的名字为shanghai,id999
    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 可以省略


5 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
just do it
回复 使用道具 举报
加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马