Linux使用nologin用户执行命令
发表于|更新于|基础运维
我们知道可以通过编辑
/etc/passwd给某些用户设置 shell 为nologin或false可以阻止这些用户登录
但某些时候需要特定的用户来执行命令,可以使用 sudo 或 su 来临时切换用户执行
使用 su
su -s 是指定 shell,这里 www 用户默认 shell 是 nologin 这里指定使用 /bin/bash, -c 后面接需要运行的命令
1 | su www -s /bin/bash -c "mkdir /tmp/111" |
使用 sudo
使用 www 用户来执行 mkdir /tmp/111
1 | sudo -u www mkdir /tmp/111 |
文章作者: 张理坤
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
相关推荐
2026-07-14
Linux终端复用器Screen和tmux
参考阮一峰的博客https://www.ruanyifeng.com/blog/2019/10/tmux.html 作用想象一下, 我在自己电脑远程 SSH 连接服务器, 正在命令行执行 mysqldump, 突然 (断网\电脑蓝屏) 了, 那么终端就断了, mysqldump 也就断了, 就需要重新来过. 终端复用器就是创建一个虚拟的终端, 可以挂在后台, 随时想进就进, 还有其他好用的功能, 比如将终端日志保存到文件内. 常用的工具有 tmux 和 screen, tmux 类似于 screen, 但是功能更强大, screen 的记录日志功能很好用, 两者各有千秋. 另外终端复用器对 rz/sz 这种工具的兼容性都不好, 建议不要用来进行 rz/sz 传文件 tmux安装 快速使用输入 tmux 即可启动, 在终端下面有一条状态栏, 显示当前的终端编号. 退出输入: exit 或者按下 Ctrl + d 或者直接关闭窗口查看后台运行的会话: tmux ls进入会话: tmux a -t 0 常用操作 操作 命令或快捷键 打开 tmux tmux 新建 tmu...
2026-07-14
Bash中双横线的作用
看个例子: 假设有个文件叫 -f, 我想把这个文件删除假设我要用 rm -f -f 来删除,会发现无法删除,bash 把第二个 -f 当作参数了 这个时候可以使用 --(当然有其他方法,这里先不讨论) 这里的 -- 表示这个程序的参数已经结束了,后面所有的内容都是参数的值了,比如第二个 -f 就不会认为它是 rm 的参数了 现在使用 kubectl exec 也会推荐你用 – 后面再接上命令
2025-01-07
常用shell组合命令
循环遍历{1..3} 这种格式 seq for 循环 while 循环 遍历列表 这个 list 也可以写成 list=(a b c) 这种形式 遍历换行字符串 条件判断shell条件判断 脚本里的交互命令修改密码 自动执行 fdisk 删除文件只保留最近 20 个 jar 版本 写入文件不处理变量 这样的可以处理变量 使用 sudo 写入 写入内容控制台看得见 tee -a 为追加, tee 前面可以加 sudo 或者 运行 5s 自动退出 脚本里获取目录或名字脚本里获取路径这种方法可能是绝对路径,也可能是相对路径: 绝对路径 脚本里获取脚本文件名 $0 在 bash 里表示执行脚本的命令,如 ./xx.sh 或 /opt/xxx.sh 批量启动服务 判断里面有变量,用双中括号 sudo 执行命令举个例子 截取文件名或路径名 去除字符串中间的空格 输入 yes 或 no 执行不同的选项 获取网卡 IP 获取网卡设备名 获取当前目录下的所有目录 使用 shell 生成随机 MAC 地址 以禁止登录的用户执...
2026-07-14
linux用户管理
增加用户useradd [选项] 用户名 选项 说明 -g 指定用户的用户主组,(查看用户属于哪个组直接从 passwd 文件查看) -G 指定用户的附加组 (查看用户属于哪个附加组直接从 group 文件查看) -u 指定用户 ID,即指定用户标识符 ((ID 是唯一的),不想使用系统默认指定的 ID 则可以使用 -u 指定 ID,默认 Centos6.x500 之后递增,Centos7.x 从 1000 之后递增 -d 自定义用户的家目录,不要系统默认创建的家目录 -m 创建用户的家目录 -M 不创建家目录 -c 备注信息,可写可不写 -s 指定用户登录的 shell,不写默认是/bin/sh,通常会给程序创建一个不允许登陆的账号 -s /sbin/nologin 或 -s /bin/false -r 创建一个系统账号,centos7 系统账号的 UID 是从 1-999 之间的,centos6 是从 1-499 之间的 常用格式: 修改用户信息usermo...
2026-07-14
shell脚本获取自身的信息
写 shell 脚本, 有时候需要获取一些信息, 比如这个脚本的名字,脚本所在的目录,脚本的绝对路径, 这个脚本的 pid, 参数等。 变量 说明 $0 脚本自身的路径(执行的时候调用路径) $1 第一个参数 $? 上一个脚本的返回值,0为正常 $* 所有的参数 $# 参数的个数 $$ 当前脚本的pid $_ 上一条命令的参数 获取脚本的文件名$0 是脚本的路径,这个路径有可能是相对路径,那么可以使用 dirname 和 basename 配合来获取脚本绝对路径 获取脚本的绝对路径 进入临时目录
2025-06-05
ubuntu常用配置记录
以 Ubuntu 的尿性,总是会搞一些奇奇怪怪的“创新”,所以本文只针对于我在使用的 Ubuntu 系统,当前版本是 24.04 LTS,版本相差太大就不具有参考意义了。 修改国内源 编译环境安装 切换语言环境 Ubuntu 网卡配置文件图形界面版 Ubuntu 修改网卡配置应该首选图形界面修改,服务器版优先使用 nmtui 来修改。 查看网卡硬件信息 网卡配置文件 ubuntu 从 17.10 开始,已放弃在 /etc/network/interfaces 里固定 IP 的配置,而是改成 netplan 方式,配置写在 /etc/netplan/01-netcfg.yaml 或者类似名称的 yaml 文件里 dhcp 配置 然后执行 netplan try 使配置生效,不用重启网卡。 临时修改网卡 DNS 地址 永久修改网卡 DNS resolv.conf 文件就是根据/etc/resolvconf/resolv.conf.d 目录中的这几个文件生成的。 查看现在正在使用的 DNS 启动速度慢等在 a start job...
公告
此博客为我记录运维工作总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
欢迎加博主微信,进微信运维技术交流群:


