3 Linux 用户管理与权限设置

Linux

1 用户管理

Linux系统是一个支持多用户管理的操作系统,多个用户可以同时管理操作系统。

1.1 用户分类
超级管理员用户	root	uid=0		属于最高级的存在,几乎不受任何限制
普通用户			 		uid=1000+	只在家目录中不受限制,其它目录中默认只能查看
虚拟用户			nobody	uid=1~999	没有家目录,不能登录系统,用于管理系统服务进程
1.2 用户相关的文件和目录
文件
/etc/passwd		--- 记录所有用户信息
/etc/shadow		--- 记录所有用户密码信息,其中密码信息是密文的
/etc/group		--- 记录所有用户组信息
/etc/gshadow	--- 记录所有用户组密码信息

目录
/etc/skel/		--- 普通用户家目录的样板房	
cat /etc/passwd

用户名:uid:组id:用户介绍别名:/用户家目录:是否能登录
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
test01:x:1000:1000:test01:/home/test01:/bin/bash
1.3 用户管理相关命令
useradd			--- 创建新用户
	-u			--- 创建用户时设置id
	-M			--- 不创建家目录
	-s 			--- 设置用户登录系统方式,即是否能登陆系统	/bin/bash  /sbin/nologin
	-g 			--- 设置用户所属主要组
	-G			--- 设置用户所属附属组
	-c          --- 给用户添加注释信息
eg1:创建一个用户,uid为666,所属主要组是oldboy,附属组是oldgirl,用户名为pyuser1。
1. 判断用户是否存在
id pyuser1
2. 新建用户
useradd -u 666 -g oldboy -G oldgirl pyuser1
	
eg2:创建一个虚拟用户,uid为888,用户名为pyuser2。
1. 判断用户是否存在
grep 888 /etc/passwd
2. 新建用户,虚拟用户不能有家目录,不能登陆系统
useradd -u 888 -M -s /sbin/nologin pyuser2 -c 虚拟用户
usermod			--- 修改用户信息
	-u			--- 修改用户id
	-s 			--- 修改用户登录系统的方式	/bin/bash  /sbin/nologin
	-g 			--- 修改用户所属主要组
	-G			--- 修改用户所属附属组
	-c          --- 修改注释信息

userdel			---	删除用户
    -r          --- 将用户所有信息彻底删除

groupadd		--- 创建用户组

groupdel		--- 删除用户组

passwd			--- 设置或修改用户密码信息
	交互方式设置密码:passwd oldboy
	免交互方式设置密码:echo 123456|passwd --stdin oldboy

chown			--- 修改属主和属组
    -R			--- 以递归的方式修改目录及其子目录下所有数据的属主和属组信息
eg01:修改目录或文件的属主和属组信息
chown oldboy.oldboy 目录名/文件名
.或:前面为属主信息,后面为属组信息。

eg02:修改目录内所有数据的属主和属组信息
chown -R oldboy.oldboy 目录名
id				--- 查看用户属组和id
su				--- 切换用户 
    su - 用户名

2 系统权限设置

2.1 权限介绍
  1. 对于数据文件:
    r:可以查看文件
    w:可以编辑文件
    x:可以运行脚本文件

对于普通用户,文件的读权限r是最重要的,其它权限如果想正常使用,必须结合读权限r进行设置:rw / rx;
对于root用户,只需要设置文件的执行权限x,其它权限的有无不影响查看/编辑/执行文件。

  1. 对于目录
    r:可以查看目录下的文件和子目录
    w:可以在目录中进行创建、删除、重命名操作
    x:是否可以切换进入这个目录
    对于普通用户,访问权限x是最重要的,其它权限如果想正常使用,必须结合访问权限x进行设置:rx / wx;
    对于root用户,即使没有任何权限,也可以进行操作。
2.2 权限设置命令使用

给指定用户设置权限

chmod  u+/-/=r|w|x   --- 给属主用户添加/删除/设置指定权限
chmod  g+/-/=r|w|x   --- 给属组用户添加/删除/设置指定权限
chmod  o+/-/=r|w|x	 --- 给其他用户添加/删除/设置指定权限

实现批量全局设置权限

chmod  a+/-/=r|w|x	 --- 对属主、属组、其他用户统一设置权限
chmod  750  目录或文件名 --- 更灵活地设置目录或文件权限,属主7、属组5、其他用户0

以递归方式对目录下所有权限进行设置

chmod  -R  750  目录名
2.3 系统权限计算方式

文件

666 - umask数值 = 文件权限
666 - 022 = 644(文件默认权限)

666 - 033 = 633,对于奇数,对应奇数位需要加1
= 6(3+1)(3+1) = 644

目录

777 -  umask数值 = 目录权限
777 - 022 = 755(目录默认权限)
777 - 033 = 744

umask数值是来自系统配置文件。

cat -n /etc/profile

59	if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
60	    umask 002
61	else
62	    umask 022
63	fi
2.4 系统用户提权操作

提权操作可以让指定用户具有root用户的部分能力。

提权操作

  1. 编写用户提权配置文件
visudo
oldboy  ALL=(ALL)       /bin/cat /etc/shadow						--- 对指定命令进行提权配置
oldboy  ALL=(ALL)       /bin/cat /etc/shadow, /usr/sbin/useradd		--- 对多个命令进行提权配置
oldboy  ALL=(ALL)       /bin/*, /usr/sbin/*, !/user/sbin/userdel	--- 使用感叹号!对指定权限userdel进行回收
oldboy  ALL=(ALL)       NOPASSWD: /bin/*, /usr/sbin/*				--- 进行免密码提权操作
vim|vi 快捷操作
	gg			--- 将光标移动到文件第一行
	G			--- 将光标移动到文件最后一行
	66gg/66G	--- 将光标快速移动到指定行
	0|^			--- 将光标快速移动到所在行的行首
	$			--- 将光标快速移动到所在行的行尾
	yy			--- 复制指定行内容   nyy 复制多行
	p           --- 粘贴指定行内容   np  粘贴多行
	dd 			--- 删除指定行内容   ndd 删除多行
  1. 检查是否提权成功
sudo -l
  1. 进行提权操作测试
sudo cat /etc/shadow

sudo表示以提权的方式执行后面的命令。

2.5 系统特殊权限

问:系统中有哪些权限?
答:系统总共有12个权限位,分别对应 r w x setuid setgid 粘滞位。

  1. setuid
    让普通用户可以像命令文件的属主用户那样去操作命令。
chmod u+s(2) 命令文件
chmod u+s /bin/cat
ll /bin/cat

-rwsr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
  1. setgid
    让普通用户可以像命令文件的属组用户那样去操作命令。
chmod g+s(2) 命令文件
  1. 粘滞位
    粘滞位用于创建共享目录,并且共享目录中数据只能被数据属主用户进行管理,其他用户只能查看。
chmod o+t /dev_share/
ll /dev_share/ -d

drwxrwxrwt 2 root root 43 Aug 12 11:01 /dev_share/

3 总结

当用户在系统中的操作受到制约,可以从以下几个方面进行调整。

  1. 可以切换用户 su - root
  2. 可以修改文件或目录的权限 chmod chown
  3. 可以对用户进行提权操作 sudo
  4. 可以设置命令特殊权限 setuid 粘滞位
  5. 需要关注服务里面的配置,例如用户上传数据被拒绝。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值