摘要

服务器上运行程序,考虑到安全问题,通常不会以root身份运行,最常见的就是web服务器,同事上面装的web服务器中间件(比如Nginx、PHP等)都会新建www用户(不给登录权限),然后以www用户身份运行web服务程序。本文将介绍如何使用无登录权限的www用户启动程序。

0x01 前言

服务器上运行程序,考虑到安全问题,通常不会以root身份运行,最常见的就是web服务器,同事上面装的web服务器中间件(比如Nginx、PHP等)都会新建www用户(不给登录权限),然后以www用户身份运行web服务程序。

www:x:1000:1000::/home/www:/sbin/nologin

1

www:x:1000:1000::/home/www:/sbin/nologin

如上面的www用户,配置了nologin,所以是无法直接登录的,那怎么使用www用户身份执行程序呢?下面揭晓。

0x02 su命令的-s选项

先看下su命令的帮助

Shell

root@ktwo:~# su -h

Usage: su [options] [LOGIN]

Options:

-c, --command COMMAND pass COMMAND to the invoked shell

-h, --help display this help message and exit

-, -l, --login make the shell a login shell

-m, -p,

--preserve-environment do not reset environment variables, and

keep the same shell

-s, --shell SHELL use SHELL instead of the default in passwd

1

2

3

4

5

6

7

8

9

10

11

root@ktwo:~# su -h

Usage:su[options][LOGIN]

Options:

-c,--commandCOMMANDpassCOMMANDtotheinvokedshell

-h,--helpdisplaythishelpmessageandexit

-,-l,--loginmaketheshellaloginshell

-m,-p,

--preserve-environmentdonotresetenvironmentvariables,and

keepthesameshell

-s,--shellSHELLuseSHELLinsteadofthedefaultinpasswd

su www命令允许我们暂时以www用户登录,但是当www用户无登录权限的时候会直接爆出以下错误:

root@ktwo:~# su www

Cannot execute /sbin/nologin: No such file or directory

1

2

root@ktwo:~# su www

Cannotexecute/sbin/nologin:Nosuchfileordirectory

因为我们对www设置的shll是/sbin/nologin,但是这个shell是不存在的,所以找不到。

su命令的-s选项允许我们指定一个shell路径,而不是用配置中的默认值,所以我们只要执行以下命令就可以给www用户一个shell权限:

root@ktwo:~# su www -s /bin/bash

www@ktwo:/root$ whoami

www

1

2

3

root@ktwo:~# su www -s  /bin/bash

www@ktwo:/root$whoami

www

可以看到此时身份已经变成了www用户

linux登录命令无法使用吗,Linux以www(无登录权限)身份执行命令 | kTWO-个人博客相关推荐

  1. linux 新建用户没有权限使用sudo命令以root身份执行命令 解决方法

    问题来源: 我们使用sudo命令,让huazi用户使用root身份执行命令时报错: 我们信任您已经从系统管理员那里了解了日常注意事项. 总结起来无外乎这三点: #1) 尊重别人的隐私. #2) 输入前 ...

  2. 以root身份执行命令:sudo

    转自:以root身份执行命令:sudo sudo命令用来以其他身份来执行命令,预设的身份为root.在/etc/sudoers中设置了可执行sudo指令的用户.若其未经授权的用户企图使用sudo,则会 ...

  3. linux无root权限不用sudo命令安装软件

    [转载自linux无root权限安装软件 - 玉开 - 博客园 (cnblogs.com),自留用.方括号部分为博主的笔记内容,其余为原文.] 在有些公司是不会给开发人员root权限的,但是开发人员有 ...

  4. linux启动本地远程服务,如何使用SSH在本地控制远程服务器执行命令

    通过SSH在本地控制远程服务器执行命令,如果每次都要登录到远程服务器真的好麻烦,起始通过SSH就可以远程执行 在本地使用 ssh $RemoteNode    可以在执行远程机器上的命令,例如 ssh ...

  5. Linux 命令之 env -- 显示系统的环境变量,定义执行命令时的环境变量

    文章目录 一.命令介绍 二.选项参数 三.命令示例 (一)显示系统的环境变量 (二)从当前环境中删除指定的变量 (三)定义指定的环境变量 (四)在一个修改后的环境下执行命令 一.命令介绍 env命令用 ...

  6. 用命令行在局域网内斗地主_上课划水上班摸鱼_chenjie的博客

    上班无聊?上课无趣?本篇博客教你怎么使用命令行在局域网内跟你的朋友进行斗地主:当然,也可以单机.话不多说,咱们开始操作! 一.环境准备 由于本程序是用JAVA语言开发的,所以运行.jar文件需要安装J ...

  7. Linux下临时以非root身份执行命令

    有时会遇到linux下的某些命令不能以root身份运行,比如vlc命令是不能以root身份运行的.这时,如果不想切换到非root身份并且执行完了以后再切换回来,可以在root下这样做: su yasi ...

  8. Linux命令大全【转载】_追逐梦想的顾咏丰_新浪博客

    1.显示日期的指令: date 2.显示日历的指令:cal 3.简单好用的计算器:bc 怎么10/100会变成0呢?这是因为bc预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=n ...

  9. linux 管理员身份执行命令,如何快速以管理员权限运行Linux命令?

    我们知道,一些 Linux 命令是要通过 sudo 权限才能运行的,这需要我们每次使用这些命令时在前面加一个 sudo ,十分繁琐.今天给大家介绍一个好用的工具 SUDO ,它只需要我们用大写字母键入 ...

最新文章

  1. ICANN敦促业界使用DNSSEC,应对DNS劫持攻击
  2. UVA11400 照明系统设计 Lighting System Design(线性DP)
  3. java 32位授权码_Java实现OAuth2.0授权码方式
  4. 每个Java开发人员都应该阅读的10本书
  5. [课程相关]homework-06
  6. 泳池里到底有多少排泄物?
  7. php爬取js对象,php如何用正则解析html中的js对象
  8. Java调用发微博API_编写调用新浪微博API的Java程序来发送微博
  9. 美联储加息落地 题材股继续活跃创业板大涨1.85%
  10. 进击的WebRTC:我们为什么需要它?
  11. span标签之间的空隙如何解决
  12. 提升计算机科学素养,中职学生计算机科学与技术专业素养提升策略
  13. 基于模板替换的word文档自动生成
  14. C# webbrowser文本框的键盘和鼠标模拟输入和模拟鼠标点击
  15. html背景图片自适应窗口大小
  16. 德累斯顿工业大学计算机学院,德累斯顿工业大学
  17. 带宽与码元的关系_数据速率、载波频率和带宽的关系
  18. cinta作业7:同态同构商群正规子群
  19. 中北大学朔州校区计算机科学与技术分数线,2020山西中北大学朔州校区研究生推免名额分配公示...
  20. [生存志] 第112节 义军起山东

热门文章

  1. 中国国家授时中心的时间服务器IP地址及时间同步方法
  2. 如何搭建企业知识库?看完这篇文章你就懂了
  3. MT7688 初步探索
  4. 有些英文 不要不懂装懂
  5. 诺顿(Norton)免杀账号
  6. 京东CTO五轮面试真是太刺激了,Java高级工程师一二三四五面面经(已拿到offer)...
  7. 数据仓库系统开发设计
  8. C语言实现根据体重计算可以喝汽水的罐数
  9. 微信文章支持html,妙用书签,将微信文章装进 Drafts
  10. 2022-09-20 mysql列存储引擎-问题定位-去除索引逻辑后引发crash