赞
踩
目录
Linux用户被分为三种类型:管理员用户、系统用户、普通用户
管理员用户
权限最大,限制最小
系统用户
默认情况下不能登录服务器,只能去调用某个服务程序
系统用户可以避免两个问题
黑客破解系统用户密码后,不能够登录服务器
当黑客入侵了网站服务之后,由于系统用户的权限特别小,黑客造成的范围也会降低很多
普通用户
用来日常完成工作的用户(普通用户下不能够新建普通用户)
系统用户和普通用户的区别
系统用户和普通用户登录终端不同
普通用户的登录终端是 /bin/bash,能够正常使用这个账户登录服务器
系统用户的登录终端是/sbin/nologin,不能够正常登录登录到服务器(只能管理某些服务)
UID 用户的身份证号码(uid user identification),具有唯一性
不同用户的UID范围
管理员用户
UID 为0 (唯一的,不可更改的,UID为0就代表是管理员用户)
系统用户
UID在RHEL5、6系统下为1-499;在RHEL7-8系统下为1-999
普通用户
UID在RHEL5、6为500-65535;在RHEL7、8系统下为从1000开始,没有上限
注意事项
UID=0一定代表的是管理员用户,其余的UID不能确定
即除了管理员用户的UID外,其余用户的UID都可以手工指定(所以无法只通过UID来判断其是系统用户还是普通用户)
系统用户和普通用户是通过功能和作用来区分的,不是通过UID来区别(即UID只是做个参考)
用户组只有一个组ID,就是用户组ID,其基本组ID和扩展组ID是对于用户来说的
可以将不同的用户加入到用户组,使得不同的用户都拥有这个用户组所有的权限
不用过多的去区分基本组和扩展组,要想用户获得某个用户组的权限,直接将这个用户加入到这个用户组就可以了
基本组ID(gid)
当创建用户时会自动生成一个组,组名和用户名一致,这个组对于用户自己来说就是基本组
扩展组ID
当用户加入到其它用户的基本组时,其它用户的其本组对于自己来说就是扩展组
一个用户的扩展组可以有多个(最多31个扩展组)
扩展组组要用于权限管理
注意事项(groups)
一个用户只可以有一个基本组,一个用户可以加入到多个扩展组
文件属性的所属组就是用户组,只要是这个用户组的用户,就可以享用此用户组对这个文件的权限,不区分此用户组对用户来说是基本组还是扩展组
ls -l 可以查看
文件属性 文件所有者 文件所属组
此时文件所属组并不区分基本组和扩展组,只要文件有所属组就可以
vim /etc/passwd 此文件时用来存储用户信息的(不包括密码)
字段1:root——用户名称
字段2:x————是否有密码(有为x,真正的密码存放在shadow中)
字段3:1————UID
字段4:1————初始用户组ID(只包含基本组;扩展组的信息在/etc/group文件中可以查询到)
字段5:root———用户的描述信息
字段6:/root———用户的家目录
字段7:/bin/bash—解释器终端(用户登录shell;为/bin/bash表示可以登录系统,为/sbin/noligin表示不被授权登录系统-也就是系统用户)
vim /etc/group 此文件报文的是用户组信息(包含基本组和扩展组的信息)
字段1:linux2——用户组名(此组为与该组名称相同的用户的基本组)
字段2:X————是否有密码
字段3:1002———用户组ID
字段4:admin1——组内其它用户列表(对于该列表内的用户来说,此组就是自己的扩展组)
vim /etc/shadow 文件保存的是用户的密码信息
字段1:admin1——用户名
字段2:!! ————加密密码(!!表示不设置密码)
字段3:19401 ——最后一次修改日期距离1970年1月1日的天数
字段4:0 ————最小时间间隔(修改密码最小间隔天数)
字段5:99999——最大时间间隔(密码保存的最大有效天数)
字段6:7————警告时间(密码过期前进行警告)
字段7:空————不活动时间(密码失效后账号能够保持有效的最大天数)
字段8:空————失效时间(密码无效时间,记录的是账号失效时间距离1970年1月1日的天数--使用这个字段需要给出账号的生存日期,期满后此账号无法登录)
字段9:标志———未分配的功能
注意事项
密码是通过SHA-512加密出来的(该加密为二次加密,在经过第一此加密之后,第二次加入随机数再此加密;因此相同的密码每次加密的结果都不一样)
如果要输入密码,可以通过机密软件将密码加密,然后复制进来
/etc/skel 用于存放shell的环境变量,当使用命令创建新用户的时候,这个目录下的所有文件会自动复制到新用户的家目录下
当我们使用文件建立用户,我们需要手动将此文件复制到用户的加目录下
cp -r /etc/skel 用户家目录
vim /etc/group 创建用户组名为linuxjp,组ID为521
linuxjp:x:521
vim /etc/passwd 创建用户名为linuxj,uid为520,用户组id为521,家目录为/home/linuxj,终端解释器为/bin/bash
vim /etc/shadow 为linuxj编写密码,此处表示暂时不写密码
linuxj:!!::::::
此时登录用户发现虽然也可登录进去,但是用户没有家目录
cp -r /etc/skel /home/linuxj 为linuxj创建家目录
id linuxj查看用户信息
su 用户名 切换到用户名(会保留先前用户的变量信息)
su - 用户名 完整的身份变更(不会保留先前用户的变量信息,变量信息都变为自己的了)
注意事项
管理员可以切换到普通用户 此时无需密码
普通用户可以切换到管理员、也可以切换到其它普通用户 此时需要密码
sudo 是服务程序,也是命令
可以让某个用户执行某个工作,进行单独的权限设定(类似于精准的SUID)
让执行sudo命令的用户临时获取到更高的权限(但是仅限于某个用户)
配置sudo服务
可以通过visudo配置sudo服务(visudo 也是调用vim编译器来实现编译的,推荐)
也可以编辑文件目录来实现 vim /etc/sudoers
root 谁可以使用sudo服务(要为哪位用户进行命令授权)
ALL 哪些主机可以使用sudo命令(填写网段表示从此网段登录的主机才可以使用sudo命令,ALL表示不限制主机来源)
(ALL) 以谁的身份执行sudo命令(输入用户名表示为通过其它用户来执行命令,ALL表示最高权限,)
ALL 可以执行的命令(命令必须使用命令路径的方式来写,ALL表示不限制命令)
命令路径可以通过which 命令 来进行查找
执行sudo命令
只有/etc/sudoers文件有用户的名字,用户才可以使用sudo命令
sudo 命令1 执行命令1(此主机需满足/etc/sudoers文件定义的要求,需要进入被sudo授权的用户)
sudo -u 用户名 命令1 使用sudo服务允许的用户身份来执行命令1(不需要进入被sudo授权的用户)
sudo -l 查看此用户被sudo授权了哪些命令
配置举例
visudo 配置sudo服务(或者vim /etc/sudoers)
admin ALL=(root) /usr/bin/ls
表示不限主机来源,当主机登录admin用户后,可以通过root的身份执行ls命令
执行sudo命令(两种方式)
方式一:sudo –u admin ls 通过admin用户身份执行ls
方式二:或者登录到admiin用户(被sudo授权的用户)下执行sudo 命令
sudo -l 查此用户被sudo授权的命令
注意事项
在满足工作的前提之下,权限越少越好
尽量不要给用户一个能够编写文件的命令的权限(vim echo)
id [用户名]——查看用户的信息(UID、基本组ID、扩展组ID)
id 查看当前用户的信息
id 用户名 查看指定用户的信息
gid 基本组ID(用户组)、groups 扩展组ID(用户组)
who 【参数】 【用户名】——查看系统中当前用户的信息
字段含义
第一列:登录的登录名
第二列:用户连接的方式(tty2指的是直接连接方式,pts 指的是远程连接方式)
第三、四列: 登陆到系统的时间
第五列:也就是括号内的字段,显示用户登录所使用的ip地址;tty表示本地直连
w 【参数】 【用户名】————查看系统中当前用户信息,比Who多了部分信息,比较明显的是可以查看到正在运行的命令
部分参数讲解
LOGIN@:登录时间
IDLE:用户空闲的时间
ICPU:该用户连接的所有进程所占用的时间
PCPU:当前进程所占用的时间
WHAT:当前用户正在运行的命令
这个信息有滞后性,需要在下一次重启或者某个用户注销之后才会同步一次,这可能会导致,某些正在登录的用户或者已经离线的用户显示不出来
由于用户登录信息可以更改(通过touch -am修改),所以不要完全相信此命令的显示结果,以实际为准
vim /var/log/lastlog 下可以更改用户登录信息
useradd 【参数】 【用户】——创建用户
useradd -u 1000 用户 创建uid为1000的用户
-u 指定该用户的用户ID
-c 为用户加上备注(备注文字会保存在passwd的备注栏位中)
-d 指定用户的家用户(默认为/home/username)
-e 指定账户的到期时间(格式为YYYY-MM-DD)
-g 指定一个用户组(包括基本组和扩展组)
-G 指定一个或多个用户的扩展组
-N 不创建于用户同名的基本用户组(默认创建)
-s 指定该用户默认的shell解释器(即指定该用户是否能够登录终端)
-m 自动建立用户的登录目录
-M 不自动建立用户的登录目录
-n 取消建立以用户名的名称为名字的群组
usermod 【参数】 用户名——修改用户的属性
-u 修改用户的UID
-s 修改用户登录终端,将用户的登录终端修改为/sbin/nologin,此用户就无法登录服务器了
-d 修改用户登录时的家用户(当-d 和 -m 一起使用时,可以将旧的数据移动到新的家目录中)
-c 填写账户的备注信息
-e 修改账户的到期时间,格式为(YYYY-MM-DD)
-g 变更用户组(包括基本组和扩展组)
-G 变更扩展组
-L 锁定用户,禁止其登录系统(可以通过passwd -S 用户名 查看该用户的状态)
-U 解锁用户,允许其登陆系统
userdel 【参数】【用户 删除用户名称
注意事项
当删除用户后,只是删除了用户名称(只删除passwd、shadow、group文件中的用户信息),用户的家目录/home信息没有删除,用户的邮件/var/spool/mail没有删除
关于此用户的重要数据还存放在/home文件下,当再次创建此用户后会自动关联家目录等信息
userdel -r 用户 删除用户的同时并删除用户的家目录
-f 强制删除用户
passwd 【参数】 用户 修改用户的密码、过期时间等
passwd 修改当前用户的密码
passed 用户名 修改此用户的密码
passed -e 用户名 强制用户在下一次登录时修改密码
--stdin 允许用户通过标准输入修改用户密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
-l 锁定用户,禁止其登录
-u 解锁锁定,允许用户登录
groupadd 【参数】 组名 创建新的用户组
groupadd admin 创建名为admin的普通用户组
groupadd -g 123 linux 创建用户组linux,并指定工作组的id为123
-k/--key 创建用户时不允许使用/etc/login.defs中的默认值(/etc/login.defs定义创建用户时需要的一些用户配置信息-例如是否需要创建家目录、UID范围等)
-o/--non-unique 允许创建有重复GID的组
-p/--password 为新组使用此加密过的密码
-r/--system 创建一个系统用户组
groupdel 【参数】 用户组 删除用户组(只可以删除扩展组组,不能删除主组)
-r/--remove 删除主目录和邮件池
groupmod 【参数】 用户组 修改用户组的属性
-g 修改用户组的组ID
-n 修改用户组的名称
groupmems 【参数】用户名 【参数】 组名 修改组中的用户
groupmems -a admin1 -g admin2 将用户admin1加入到admin2组中
groupmems -d admin1 -g admin2 将用户admin1从admin2组中移除
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。