shell指定用户执行命令(SHELL脚本切换用户需输入密码)

本文目录
- SHELL脚本切换用户需输入密码
- Linux创建用户如何指定shell,有什么权限
- linux 限制用户执行命令
- Shell脚本中切换用户执行命令
- python 以特定的用户身份执行命令
- 用批处理命令以某个用户来运行程序
SHELL脚本切换用户需输入密码
先确认一下su
-c
能否解决问题,语法
su
-
-c
以指定用户执行命令
[root@fw98
/]#
whoami
root
[root@fw98
/]#
su
-
mao
-c
whoami
mao
不能满足需求的话,可以用expect,我的环境上没有expect,不能帮你试了,大致是下面的感觉,详细你百度查一下
#!/usr/bin/expect
su
-
mao
#你要执行的命令
expect
"Password:"
#执行后终端回显的交互信息
send
"admin_123\r"
#当终端出现上面的交互详细后,模拟键盘输入的内容
#此例,执行su
-
mao
切换mao用户,终端提示输入密码后,模拟键盘输入mao用户的密码
Linux创建用户如何指定shell,有什么权限
用法如下示useradd username -s /bin/楼主想指定的shell例如useradd username -s /bin/bash注:/bin/false,如果指定该参数,那么该用户就无法登录系统(该用户无shell)。-s /bin/bash 或者 -s /bin/csh用户通过shell 与计算机沟通bash 和 csh 是两个类型的shell.指定不同的shell 用户可以使用的命令有些就不一样简单的说就是选择一种语言供用户使用,每种语言对应的命令有些区别,默认bash也可以指定
linux 限制用户执行命令
只要用户能登录到系统的shell,就可以执行shell集成的若干命令,如export, set等,另外他还可以通过在环境变量PATH中添加/bin目录,获得/bin下的所有执行文件的执行权(系统已放开给所有用户执行)。
所以要限制他只能执行一条命令,只有将用户登录的shell换成这个命令(telnet):
vim /etc/passwd
test:x:1006:1008::/temp/test:/usr/bin/telnet
从而使他登录到系统只能执行一次此命令,便退出。
Shell脚本中切换用户执行命令
Shell脚本中切换用户执行命令起因:由于将新项目添加到内网、外网创建git版本库及gitosis管理比较繁琐,于是写个脚本来实现,需要git用户组的用户才能进行git相关操作。解决方法:Shell代码
su
-
www
-c
cd
gitosis-admin
&&
git
add
.
使用su
-u
yourusr
-c
命令,默认的目录是在/home/yourusr/
目录的,执行的命令需要切换目录要注意
python 以特定的用户身份执行命令
这种功能应该是在更底层一点的操作系统层面去实现的,在拥有root权限的情况下,你可以知道以何种身份去执行脚本,当然,脚本本身所拥有的系统权限,是由你运行它的用户来决定的.
打个比方,有个test.py的python脚本,你希望以guest用户权限去运行
那么你完全可以写一个shell脚本以root权限来调用它:
例如:
#!/bin/bash
sudo -u guest python test.py
#可以更多,例如
sudo -u userA php a.php
用批处理命令以某个用户来运行程序
用vbs 的createobject("wscript.shell").sendkeys "{Tab}"
"密码/帐号"
createobject("wscript.shell").exec("请输入完整路径\Bin\QQ.exe")’QQ安装目录
wscript.sleep 5000
createobject("wscript.shell").sendkeys "%{Tab}"
createobject("wscript.shell").appactivate "用户名"’用户名
wscript.sleep 1000
createobject("wscript.shell").sendkeys "{Tab}"
wscript.sleep 1000
createobject("wscript.shell").sendkeys "密码"’密码
createobject("wscript.shell").sendkeys "{Tab}"
createobject("wscript.shell").sendkeys "{Tab}"
createobject("wscript.shell").sendkeys "{Tab}"
createobject("wscript.shell").sendkeys "{enter}"
’这样就可以了
’是根据新版QQ写的,加分吧!全手写的!
---------------------------------
懂了,你的意思是说,根据用户名来启动指定的QQ号?
就20分,想要这样的效果???
---------------------------------
a=inputbox("请输入用户名")
b=inputbox("请输入密码")
set veryluck=createobject("wscript.shell")
veryluck.run "cmd /c echo @echo off^&runas /user:"&a&" "完整路径\QQ\Bin\QQ.exe"》》1.bat"
veryluck.run "1.bat"
veryluck.sendkeys ""&b&""
wscript.sleep 5000
veryluck.sendkeys "%{Tab}"
veryluck.AppActivate "QQ账号"
wscript.sleep 1000
veryluck.sendkeys "{Tab}"
wscript.sleep 1000
veryluck.sendkeys "QQ密码"
veryluck.sendkeys "{Tab}"
veryluck.sendkeys "{Tab}"
veryluck.sendkeys "{Tab}"
veryluck.sendkeys "{enter}"

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10




