3.1 权限管理、进程与网络操作在电商数据分析中的核心用处
这一章讲三个核心能力:
- 权限管理:控制谁能看哪些数据、谁能改哪些文件,直接对应《个人信息保护法》的“最小必要原则”
- 进程管理:让数据分析脚本稳定运行,跑崩了知道怎么救
- 网络操作:从平台下载数据、连接数据库、安全传输文件
这些操作,电商数据分析师每周甚至每天都会用到。
3.2 Linux权限管理核心认知
3.2.1 用户、用户组、权限标识(只讲实操要用的)
Linux的权限体系,核心就三个概念:
概念 | 说明 | 电商场景 |
用户 | 登录系统的人,比如zhangsan | 每个数据分析师有自己的账号 |
用户组 | 一组用户的集合,比如data_team | 数据小组成员都在一个组里,方便统一授权 |
权限 | 读®、写(w)、执行(x) | 订单明细只能读不能写,脚本需要有执行权限 |
查看文件权限:用ls -l
ls -l order_detail.csv输出:
-rw-r--r-- 1 zhangsan data_team 12345 Nov 28 10:00 order_detail.csv分解一下:
- -:文件类型(普通文件)
- rw-:所有者zhangsan的权限(读写)
- r--:所属组data_team的权限(只读)
- r--:其他用户的权限(只读)
3.2.2 权限数字表示法(快速记忆)
权限可以用数字表示:r=4, w=2, x=1,三组权限相加得到三位数。
数字 | 权限 | 含义 |
7 | rwx | 读写执行 |
6 | rw- | 读写 |
5 | r-x | 读执行 |
4 | r– | 只读 |
0 | — | 无权限 |
常见组合:
- 755:所有者全权限,组和其他只读执行(脚本文件常用)
- 750:所有者全权限,组只读,其他无权限(数据目录常用)
- 640:所有者读写,组只读,其他无权限(敏感数据文件常用)
- 600:所有者读写,其他人全无(最敏感数据)
《个人信息保护法》要求“最小必要原则”——谁需要什么数据,就给什么权限。订单明细里的手机号、地址,只给数据分析师本人和直属领导读权限,其他人都不能看。
3.3 权限管理高频命令
3.3.1 修改权限:chmod
基础用法
chmod 750 文件名 # 用数字法设置权限chmod u+x 文件名 # 给所有者增加执行权限chmod g-w 文件名 # 移除组的写入权限chmod -R 750 目录名 # 递归修改目录下所有文件电商场景:设置店铺数据目录权限
假设公司有多个店铺,每个店铺的数据只能让对应运营人员访问。我这样设置:
# 创建店铺A数据目录mkdir /data/shop_A# 修改所有者为运营小李,组为shop_Achown xiaoli:shop_A /data/shop_A# 设置权限:所有者全权限(7),组内成员只读(5),其他人无权限(0)chmod 750 /data/shop_A验证权限设置:
ls -ld /data/shop_A输出:
drwxr-x--- 2 xiaoli shop_A 4096 Nov 28 10:00 /data/shop_A只有小李和shop_A组成员能进入这个目录。
⚠️ 实操避坑提醒:我见过很多新手直接chmod 777给所有人开权限,图省事。这在电商公司是红线——用户数据一旦泄露,公司可能面临高额罚款。记住:权限能小就小,能关就关。
3.3.2 修改所有者和组:chown
基础用法
chown 用户名 文件名 # 修改所有者chown :组名 文件名 # 修改所属组chown 用户名:组名 文件名 # 同时修改所有者和组chown -R 用户名:组名 目录名 # 递归修改电商场景:员工离职后的权限交接
去年有个同事离职,他负责的店铺数据需要转给新人。我这样操作:
# 将订单目录所有者和组转给新同事chown -R wangwu:data_team /data/shop_B/这样新同事就能正常访问,同时保留数据组的权限。
电商场景:创建数据小组共享目录
# 创建共享目录mkdir /data/shared# 设置所有者为root,组为data_teamchown root:data_team /data/shared# 设置权限:所有者全权限,组内读写执行,其他无权限chmod 770 /data/shared现在所有data_team组的成员都可以在这个目录下读写文件。
3.3.3 特殊权限场景:脚本执行权限
电商场景:给数据处理脚本添加执行权限
# 查看脚本权限ls -l process_daily.sh# 输出:-rw-r--r-- ... 没有x权限# 添加执行权限chmod +x process_daily.sh# 验证ls -l process_daily.sh# 输出:-rwxr-xr-x ... 现在可以执行了很多人写好了脚本,忘记加执行权限,直接./script.sh运行会报“Permission denied”。记住:脚本文件需要chmod +x才能运行。
3.4 进程管理核心命令
3.4.1 查看进程:ps
基础用法
ps aux # 查看所有进程的详细信息ps aux | grep python # 查看所有Python进程ps -u 用户名 # 查看指定用户的进程电商场景:查看正在运行的数据处理脚本
618大促期间,我跑了一个订单清洗脚本,跑了一个小时还没结束。我需要确认它还在运行:
ps aux | grep clean_orders.py输出:
zhangsan 12345 2.5 1.2 123456 78900 ? S 10:23 0:45 python clean_orders.py- 12345是进程ID(PID)
- 2.5是CPU占用率
- S是状态(S=睡眠,R=运行,Z=僵尸)
3.4.2 终止进程:kill
基础用法
kill PID # 正常终止进程kill -9 PID # 强制终止(慎用)电商场景:终止卡死的脚本
有一次我写的脚本陷入死循环,CPU跑满。我这样处理:
# 1. 找到进程IDps aux | grep dead_loop.py# 看到PID 12345# 2. 先尝试正常终止kill 12345# 等几秒,检查是否还在ps aux | grep 12345# 3. 如果还在,强制终止kill -9 12345kill -9是最后手段。进程被强制终止时,可能来不及关闭文件、释放锁,导致数据不完整。优先用kill(不带-9),给进程几秒做清理工作。
3.4.3 动态查看资源:top
直接输入top,可以看到实时CPU、内存占用,按q退出。
电商场景:排查服务器负载
双11当天,我发现订单处理特别慢。用top一看:
- 某个Python进程CPU占用98%
- 内存用了80%
立刻定位到是脚本优化问题,不是服务器扩容能解决的。
3.4.4 后台运行任务:nohup
基础用法
nohup 命令 & # 后台运行,退出终端不中断nohup 命令 > output.log 2>&1 & # 输出重定向到日志文件电商场景:运行长耗时的大促数据脚本
618活动结束后,我需要跑一个统计脚本,可能要跑几小时。用nohup放在后台:
nohup python double11_stat.py > /data/logs/double11_stat.log 2>&1 &- > /data/logs/xxx.log:正常输出写到日志
- 2>&1:错误输出也写到同一个日志
- &:后台运行
然后可以关掉终端下班,第二天来查看日志就行。
查看后台任务:
jobs # 查看当前终端后台任务ps aux | grep python # 查看所有Python进程3.5 网络操作核心命令
3.5.1 网络连通性测试:ping
基础用法
ping 域名或IP # 持续测试,Ctrl+C停止ping -c 4 域名或IP # 测试4次后自动停止电商场景:检查数据库服务器是否通
ping 192.168.1.100如果能通,会显示响应时间;如果不通,会显示超时。这是排查数据连接问题的第一步。
3.5.2 端口查看:netstat
基础用法
netstat -tlnp # 查看所有监听端口netstat -an | grep 3306 # 查看3306端口连接情况电商场景:检查MySQL数据库端口是否开放
netstat -tlnp | grep 3306如果有输出,说明MySQL服务在监听3306端口;如果没有,可能是服务没启动。
3.5.3 下载文件:wget
基础用法
wget 下载链接 # 直接下载wget -O 新文件名 下载链接 # 指定保存文件名wget --limit-rate=500k 下载链接 # 限速下载电商场景:从平台下载行业数据报表
# 下载天猫行业数据报告wget https://dataplatform.tmall.com/reports/clothing_202511.csv电商场景:限速下载大文件,避免占满带宽
wget --limit-rate=1M https://bigdata.com/orders_2025_full.csv3.5.4 测试接口:curl
基础用法
curl 接口地址 # GET请求curl -X POST -d "参数" 接口地址 # POST请求curl -o 文件名 接口地址 # 保存响应到文件电商场景:测试订单接口是否正常
curl "https://openapi.shop.com/v1/orders?date=2025-11-28"返回JSON数据,说明接口正常。
电商场景:保存API返回数据到文件
curl -o /data/api/orders_20251128.json "https://openapi.shop.com/v1/orders?date=2025-11-28"用curl获取竞品平台数据时,注意查看平台的robots.txt和API使用协议。未经授权抓取数据可能违反《反不正当竞争法》和平台用户协议。建议优先使用平台官方开放的API接口。
3.5.5 安全文件传输:scp
基础用法
scp 本地文件 用户名@远程IP:远程路径 # 上传scp 用户名@远程IP:远程路径 本地路径 # 下载电商场景:从服务器下载报表到本地
在本地终端执行:
scp zhangsan@192.168.1.100:/data/reports/monthly_report.csv ~/Desktop/输入密码后,文件就下载到桌面了。
电商场景:上传脚本到服务器
scp ~/scripts/process_orders.py zhangsan@192.168.1.100:/data/scripts/3.6 综合实操案例:电商用户行为数据权限合规设置与安全传输
业务场景:公司新接入了一家服饰类目店铺的用户行为数据,包含user_id、device_id、行为时间、浏览商品ID。我需要:
- 创建数据目录并设置合规权限
- 将数据文件复制到目录
- 后台运行数据处理脚本
- 将结果报表安全传输给运营同事
步骤1:创建数据目录并设置权限
# 创建目录mkdir -p /data/user_behavior/fashion_shop# 设置所有者为数据分析组,组为data_teamchown -R analyst:data_team /data/user_behavior/fashion_shop# 设置权限:所有者全权限,组内只读,其他人无权限chmod 750 /data/user_behavior/fashion_shop预期结果:只有analyst用户和data_team组成员能访问该目录。
步骤2:复制数据文件
# 将原始数据复制到合规目录cp /data/raw/fashion_behavior_20251128.csv /data/user_behavior/fashion_shop/# 设置文件权限chmod 640 /data/user_behavior/fashion_shop/fashion_behavior_20251128.csv预期结果:文件所有者可读写,组内成员只读,其他人无权限。
步骤3:后台运行数据处理脚本
cd /data/scripts/nohup python behavior_analysis.py > /data/logs/behavior_$(date +%Y%m%d).log 2>&1 &预期结果:脚本在后台运行,日志保存到/data/logs/behavior_20251128.log。
步骤4:验证进程运行
ps aux | grep behavior_analysis.py看到进程存在,说明脚本正常运行。
步骤5:传输结果报表给运营 在本地电脑终端执行:
scp analyst@服务器IP:/data/reports/behavior_summary_20251128.csv ~/Desktop/预期结果:报表下载到本地桌面,可以发给运营同事。
3.7 本章踩坑清单与合规提示
3.7.1 权限管理踩坑
场景 | 错误操作 | 正确做法 |
数据目录权限 | chmod 777 /data/orders | 用750,只给必要的人权限 |
忘记加-R | 只改了目录权限,里面文件没改 | chmod -R 750 /data/orders |
离职交接 | 直接删账号,数据找不到了 | 用chown把文件转给新同事 |
脚本不执行 | 忘了加执行权限 | chmod +x script.sh |
3.7.2 进程管理踩坑
场景 | 错误操作 | 正确做法 |
脚本跑崩
| 直接关终端 | 用nohup后台运行,输出到日志 |
杀不掉进程 | 只用kill没反应 | 先kill,不行再用kill -9 |
找不到进程 | 手动翻进程列表 | ps aux | grep 关键词 |
3.7.3 网络操作踩坑
场景 | 错误操作 | 正确做法 |
下载慢 | 直接下载大文件占满带宽 | 加--limit-rate限速 |
接口不通 | 不知道怎么排查 | 先用ping测网络,再用curl测接口 |
数据传输 | 明文传输敏感数据 | 用scp(基于SSH加密)传输 |
3.7.4 电商数据合规总结
结合本章知识点,记住三条合规底线:
权限最小化:用户数据文件权限设640,目录设750。不需要读写权限的人,一律不给。这是《个人信息保护法》第6条“最小必要原则”的技术落地。
访问留痕:重要数据的访问、删除操作,尽量通过脚本执行并记录日志。合规审计时,你需要能说清楚“谁在什么时间操作了哪些数据”。
传输加密:涉及用户数据的文件传输,必须用scp或sftp,不要用明文协议。数据在传输过程中被截获,公司同样要担责。
下一章预告
下一章讲Shell脚本基础,包括变量、循环、条件判断,以及如何用脚本批量处理店铺报表,把重复工作自动化。”
