You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux系统下按指定格式为所有用户创建可执行文件求助

为每个Linux用户创建序号命名的可执行文件

没问题,我来帮你搞定这个需求!要给每个已存在的Linux用户创建按序号递增命名的可执行文件(格式如file_1_stud01、file_2_stud02),我们可以用一个bash脚本高效实现,下面是具体方案:

核心思路

  1. 先筛选出系统中所有需要处理的用户(默认排除系统用户,只处理普通用户)
  2. 用计数器维护序号,遍历每个用户并创建对应命名的可执行文件

完整脚本实现

#!/bin/bash

# 初始化序号计数器,从1开始
user_count=1

# 遍历系统中的普通用户(UID >= 1000,适配大多数Linux发行版)
for username in $(getent passwd | awk -F: '$3 >= 1000 {print $1}'); do
    # 按照规则拼接文件名
    exec_file="file_${user_count}_${username}"
    
    # 创建空文件并赋予可执行权限
    touch "$exec_file"
    chmod +x "$exec_file"
    
    # 可选:给可执行文件添加基础内容(让它真正能运行)
    cat > "$exec_file" << EOF
#!/bin/bash
echo "This is executable file for user: ${username}"
echo "File name: \$0"
EOF
    
    # 序号自增
    ((user_count++))
done

关键部分解释

  • getent passwd:比直接读取/etc/passwd更可靠,能兼容LDAP等远程用户体系,获取系统所有用户信息
  • awk -F: '$3 >= 1000 {print $1}':以冒号为分隔符,筛选出UID≥1000的普通用户(系统用户UID通常小于1000),并提取用户名
  • touch "$exec_file":创建空文件;chmod +x "$exec_file":赋予文件可执行权限
  • 脚本里的cat > ... << EOF部分是给可执行文件添加默认的bash脚本内容,你可以根据需求修改这部分

自定义调整建议

  • 如果需要包含系统用户,去掉awk里的$3 >= 1000条件,改为awk -F: '{print $1}'
  • 若要让文件归对应用户所有,在chmod后添加chown ${username}:${username} "$exec_file"
  • 如果你的文件名前缀是fis而不是file,把脚本里的file_${user_count}_${username}改成fis_${user_count}_${username}即可

内容的提问来源于stack exchange,提问作者Stroescu Marius Petrisor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:41:56