Linux进程的几个用户ID转换方法
不是很理解你的意思。你应该是想说把程序的运行权限给同一个用户么? 如果是这样的可以修改一下程序文档的权限就可以,chmod 777 xxx(程序的路径) 权限说明在这里可以自己看一下,在linux 下只有给了x权限才可以运行。更多学习资料,你可以参考《Linux就该这么学》。
使用ps命令时,发现部分用户显示的是用户名,有些用户显示的是UID,例如nmon程序的运行时webmaster,但是ps显示的不是直接显示uid 500。
通过man发现:8位用户名的账户能够显示完整的用户名,9位用户名的账户就显示了UID使用下面的命令来解决;
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
注意:“userForLongName”是随便填写的,Linux会自动检查此字符串的长度,为15,则15位以下的用户名都可以正常显示。
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。
ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
Linux为每个进程设置了3个ID:实际用户id,有效和用户id和保存的设置id
关于这3个id,需要注意以下几个方面:
1.只有root才能改变进程的实际用户id。例如,用户从终端login程序登陆,此时login程序的3个id都是root。然后正确输入用户名密码之后,login程序于是setuid到注册的id。于是3个id都被改成了注册的用户id。然后exec shell程序。非root用户注册进入shell之后,他的实际用户id是绝对不会被更改的。除非logout之后,重新注册shell。一些su改变用户的操作实际上都是改变shell进程的有效用户id,并不是shell进程的实际用户id。
2.exec程序时,可执行文件有一个设置id位,该位的设置与否与进程的有效用户id和保存的设置id有很大关系。可以用ll命令查看,如果有s标记的话说明设置了,否则没有。首先没有设置的情况,3个id均不会改变和调用者的进程的id一样。现在是设置了的情况,实际用户id仍然不会改变,有效用户id则设置为可执行文件的属主用户,保存的设置id设置成有效用户id一样。这样的程序有很多,比如passwd,su等。例如,passwd程序,一个普通用户foo通过shell执行passwd,首先shell进程fork产生一个子进程,然后子进程exec passwd程序。由于passwd设置了设置id位,并且passwd是属于root用户。于是子进程设置有效用户id位为root,保存的设置用户id也设置成了root。passwd执行完毕时,再改变有效用户id和保存的设置用户id为以前的实际用户id的值。
3.保存的设置-用户- ID 是由exec从有效用户I D复制的。在exec按文件用户I D设置了有效用户I D后,即进行这种复制,并将此副本保存起来
linux进程的几种状态
Linux中进程分类 ①交互进程:由一个shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。②批处理进程:这种进程和终端没有联系,是一个进程序列。③监控进程:也称守护进程,是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。进程的状态 ①可运行状态:此时进程正在运行...
linux进程的种类
Linux操作系统包括3种不同类型的进程,每种进程都有自己的特点和属性。•交互进程:由一个Shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。•批处理进程:这种进程和终端没有联系,是一个进程序列。•监控进程:也称守护进程,Linux系统启动是启动的进程,并在后台运行。
linux 进程的几种状态
Linux内核中定义了以下几种状态:define TASK_RUNNING 0 define TASK_INTERRUPTIBLE 1 define TASK_UNINTERRUPTIBLE 2 define TASK_ZOMBIE 4 define TASK_STOPPED 8 其中:TASK_RUNNING是就绪态,进程当前只等待CPU资源。TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE都是阻塞态,进程当前正在等待除CPU外的其他系统资...
Linux内核进程有几个系统?
Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。1.进程调度(SCHED):控制进程对CPU 的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进 程是不可运行进程。Linu...
在LINUX内核中,进程标识符PID为1,2 ,3,4,5的进程的名称是什么?基本功 ...
pid=1 :init进程,系统启动的第一个用户级进程,是所有其它进程的父进程,引导用户空间服务。pid=2 :kthreadd:用于内核线程管理。pid=3 :migration,用于进程在不同的CPU间迁移。pid=4 :ksoftirqd,内核里的软中断守护线程,用于在系统空闲时定时处理软中断事务。pid=5 :watchdog,此进程是看门狗...
linux环境下一个进程最多能有多少个线程
以下是对在linux环境下一个进程最多能有多少个线程进行了介绍,需要的朋友可以过来参考下 默认情况下:主线程+辅助线程 +253个自己的线程=255 含主线程和一个辅助线程,最多255个,即你自己只能生成253个线程。据说可以设置线程数目:据说是可以设置的,但本人还没有验证!不知道可否。在你的shell中键入...
linux父进程子进程linux父进程子进程
linux下什么叫父进程和子进程?1、父进程 指已创建一个或多个子进程的进程。在UNIX里,除了进程0以外的所有进程都是由其他进程使用系统调用fork创建的,这里调用fork创建新进程的进程即为父进程,而相对应的为其创建出的进程则为子进程,因而除了进程0以外的进程都只有一个父进程,但一个进程可以有多...
linux查看内存进程linux查看内存进程
3、Linux上的VNC服务端,比较常用的就是tigervnc和x11vnc。x11vnc可以让远程访问者控制本地的实际显示器,而tigervnc既可以远程控制实际显示器,还可以控制平行独立于当前物理显示器的虚拟显示器。详解Linux如何查看当前占用CPU或内存最多的几个进程?可以使用一下命令查使用内存最多的5个进程ps-aux|sort-...
Linux系统中的ps进程查看命令使用实例集锦
要杀死进程,使用kill命令,例:kill 12345 (12345为进程的pid)linux进程有5种状态 1.运行(正在运行或在运行队列中等待)2.中断(休眠中,受阻,或等待某个条件的形成或接受到信号)3.不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)4.僵死(进程已终止,但进程描述符存在,直到父进程...
unix\/linux系统有几类进程,试说明后台进程的作用或执行过程
2. Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal 3. Linux进程状态:D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态, 可处理signal, 有延迟 4. Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态, 不可处理signal, 因为根本没有时间片运行代码 5....
占浩美安: 1.只有root才能改变进程的实际用户id.例如,用户从终端login程序登陆,此时login程序的3个id都是root.然后正确输入用户名密码之后,login程序于是setuid到注册的id...
乌尔禾区19729695286: 如何为多个程序给一个相同的linux用户ID - ?
占浩美安: 不是很理解你的意思.你应该是想说把程序的运行权限给同一个用户么? 如果是这样的可以修改一下程序文档的权限就可以,chmod 777 xxx(程序的路径) 权限说明在这里可以自己看一下,在linux 下只有给了x权限才可以运行 :
乌尔禾区19729695286: linux系统默认的用户名有哪些,各有什么作用 - ?
占浩美安: 1. 设置用户:用户名是系统中一个独一无二也叫登陆名.以及和它相对应的password由6-8位组成.以使用户可以通过 password来登陆系 统.同时,还有用户的家目录.是用户登陆以后的主目录.还有用户的shell包 括:Bourne shell Korn shell ...
乌尔禾区19729695286: linux怎么查询进程和进程的id - ?
占浩美安: 输入top 命令 pid就是进程id 如果查看某进程 可以 ps axu|grep 进程名称 或者id
乌尔禾区19729695286: Linux进程表包含哪几部分 - ?
占浩美安: 上面是ps -f 之后的内容, UID是指用户的ID,指的是哪个用户的进程;PID是指进程ID,指的是进程的ID(linux里的ID相当于我们身份证号码);PPID指的是该进程的父进程ID(也就是说这个进程是从原来进程里衍生出来的);C是什么我一下子忘记了;STIME指的是创建进程时间;TTY指的是用户使用的终端号;TIME指的是进程运行时间;CMD是指该进程的命令.如果还有什么疑问可以继续提问,如果你想知道C代表什么的话,我回家帮你查下书
乌尔禾区19729695286: Linux id是什么 - ?
占浩美安: id是识别码,linux系统里有很多id,用户属性相关的重要id有uid、gid.另外,id还是linux系统里的一个命令,用于查看用户属性信息.
乌尔禾区19729695286: linux 获取进程id 函数?? - ?
占浩美安: linux C中,获取当前进程id 函数为getpid() ; 头文件:#include <unistd.h>函数原型:pid_t getpid(void);函数说明:getpid ()用来取得目前进程的进程id,许多程序利用取到的此值来建立临时文件, 以避免临时文件相同带来的问题.返回值:目前进程的进程id范例 #include <stdio.h> #include <unistd.h> main() {printf("pid=%d\n", getpid()); }执行: pid=1494 /*每次执行结果都不一定相同 */
乌尔禾区19729695286: linux中如何将系统上id号最大的用户转换成大写 - ?
占浩美安: cat /etc/passwd| awk -F: '{print $3" "$1}'|sort -n|tail -1 | awk '{print "usermod -l " toupper($2)" " $2}'| bash
乌尔禾区19729695286: 进程的附加组ID具体是指什么??
占浩美安: 回复 5# 井蛙夏虫 但是决定进程操作权限的是effective user/group ID,而不是real user/group ID啊,按这个思路来推断的话,应该是effective user ID所属的附加组但是又想不出可以用程序来验证的方法,网上也找不到对于supplementary group ID的详细描述,现在仍在继续google中..
乌尔禾区19729695286: linux的用户身份更换 - ?
占浩美安: 你可以用ctrl+alt+f1然后输入用户名 密码就可以 同理ctrl+alt+f2是进入第二个用户 redhat 企业4可以支持应该是7个用户同时登陆.