首页 > 系统相关 >laravel:得到linux平台当前脚本的执行用户

laravel:得到linux平台当前脚本的执行用户

时间:2024-08-06 10:17:32浏览次数:17  
标签:laravel 脚本 www root app 用户 linux 执行 data

一,代码:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;


class IndexAllCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'app:index-all-command';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Execute the console command.
     */
    public function handle()
    {
        echo "开始执行命令:\n";

       // 获取当前执行用户的用户ID
        $uid = posix_geteuid();

        // 获取用户信息
        $user_info = posix_getpwuid($uid);

         // 打印用户名
        echo "当前用户:".$user_info['name']."\n";

        //得到当前脚本的所有者即owner
        $scriptOwner = get_current_user();
        echo 'Current script owner: ' .$scriptOwner."\n" ;

    }

 

二,执行结果:

用root用户执行时:

root@lhdpc:/data/api# php artisan app:index-all-command
开始执行命令:
当前用户:root
Current script owner: liuhongdi

用runuser换一个用户执行:

root@lhdpc:/data/api# runuser -u www-data php artisan app:index-all-command
开始执行命令:
当前用户:www-data
Current script owner: liuhongdi

可以看到执行用户和脚本所有者不一定是一个人,要区分开来

 

标签:laravel,脚本,www,root,app,用户,linux,执行,data
From: https://www.cnblogs.com/architectforest/p/18344629

相关文章

  • laravel:从linux命令行运行command
    一,创建command1,执行命令liuhongdi@lhdpc:/data/api$phpartisanmake:commandIndexAllCommand2,查看创建的文件:<?phpnamespaceApp\Console\Commands;useIlluminate\Console\Command;classIndexAllCommandextendsCommand{/***Thenameandsignatu......
  • Linux 下 perf 的使用
    目录一、概述1、perf作用2、常用的工具集二、perf工具的使用1、perflist2、perfstat3、perftop4、perfrecord/report4.1perfrecord4.2perfreport5、perfannotate一、概述1、perf作用perf是一个性能分析工具(基于Linux内核提供的性能事件perf_eve......
  • Linux 下 ag 命令的使用
    目录一、概述1、功能2、下载二、常用参数说明三、实例四、帮助文档一、概述1、功能在Linux系统中,ag命令是用于文本搜索的高效工具。它具有快速、灵活的搜索功能,并支持正则表达式匹配。2、下载在下面是各个系统安装ag的命令:sudoapt-getinstallsilversea......
  • Linux 下 objdump 命令的使用
    目录一、概述二、常用参数说明三、实例四、实例分析一、概述objdump工具是用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。该命令常用于Linux下反汇编目标文件或者可执行文件。什么是反汇编反汇编(disassembly)是......
  • Java调用Linux命令行SpringBoot
    原文链接:https://blog.csdn.net/u014628771/article/details/108308337需求在Linux服务器上的SpringBoot程序中,调用gitclone,之后遍历git仓库中的所有文件。遍历git仓库可以使用File类实现,现在的问题是需要在SpringBoot程序中调用gitclone命令。实现方式使用Javanative的Proc......
  • Linux网络编程2
    TCP编程顺序图socket()函数socket()函数用于创建一个新的套接字。它是进行网络编程的第一步,因为所有的网络通信都需要通过套接字来进行。原型:#include<sys/socket.h> intsocket(intdomain,inttype,intprotocol);   domain:指定协议族,对于TCP/IP网络,它通常......
  • linux运维一天一个shell命令之tcpdump详解
    一、tcpdump的概念tcpdump是一个数据包捕获工具,能够拦截和显示通过网络接口的数据包。它可以实时捕获数据包,也可以将捕获的数据保存到文件中以便后续分析。tcpdump支持基于多种条件(如IP地址、端口号、协议等)来捕获特定的数据包。二、主要功能和特点1.数据包捕获:tcp......
  • Linux——线程互斥与同步
    一、线程互斥1.1线程间互斥的概念在学习管道的时候,管道是自带同步与互斥的。而在线程中,当多个线程没有加锁的情况下同时访问临界资源时会发生混乱。在举例之前,先了解几个概念。临界资源:多个线程执行流共享的资源叫做临界资源临界区:每个线程内部访问临界资源的代码叫做临界......
  • Kali Linux 安装
    KaliLinux安装前言1、KaliLinux基本介绍(1)KaliLinux的起源和前身(2)Debian系与Redhat系区别(3)下载和安装kali1.下载Kali2.解压压缩包3.打开kali镜像4.修改root密码(4)修改语言为中文(5)替换ATP源(6)配置远程连接(7)启动SSH服务(8)更新kali下期前言本期主要学习了Kali的基......
  • 驱动开发系列09 - Linux设备模型之设备,驱动和总线
    一:概述     Linux设备模型(LDM)是Linux内核中引入的一个概念。用于管理内核对象(那些需要引用计数的对象、例如文件、设备、总线甚至驱动程序),以及描述它们之间的层次结构,以及这些内核对象之间绑定关系。Linux设备模型引入了对象生命周期管理、引用计数、以及面向对象......