linux问题:写出执行shell脚本的三种方式,写出samba服务器的四种安全级别,并写出他们的

linux问题:写出执行shell脚本的三种方式,写出samba服务器的四种安全级别,并写出他们的,第1张

执行shell脚本的三种方式

#sh scriptssh

#/dir/scriptssh   或者 /scriptssh      脚本得有执行权限。

#source scriptssh

samba服务器的四种安全级别

security = user 设置安全级别,即客户端访问Samba服务器的验证方式。此部分中只能设置以下三种参数,参数设置:share(不推荐)、user、server(不推荐) 网页链接

参数说明:

security = share /user / server /domain /ads

以下三种安全级别用在Standalone Server Options部分,其中user级别也用于Domain Controller Options部分。

(1)share:访问Samba服务器共享资源时不需要输入用户名和密码,属于匿名访问。

(2)user:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为Samba服务器本机。

(3)server:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为另一台Samba服务器或Windows服务器。

以下两种安全级别用在Domain Members Options部分:

(4)domain:Samba服务器在一个基于Windows NT平台的Windows域中,访问共享资源需要输入用户名和密码,认证用户来源为Windows域。

(5)ads:Samba服务器在一个基于Windows 200X平台的Windows活动目录中,访问共享资源需要输入用户名和密码,认证用户来源为Windows活动目录。

#!/bin/bash
tmptty=`tty`
tmptty=`basename $tmptty`
tmpname=`whoami`
ip="xxx" #目标主机地址
inp1="xxx^M" #主机的用户名,,注意必须有^M
inp2="xxx^M" #主机的密码,注意必须有^M
inp3="ls^M"
inp4="pwd^M"
inputfile=in
outputfile=outlog
rm -fr $inputfile
rm -fr $outputfile
mknod $inputfile p
touch $outputfile
#file description 7 for out and 8 for in
exec 7<>$outputfile
exec 8<>$inputfile
telnet $ip <&8 >&7 &
sleep 2; echo $inp1 >> $inputfile
sleep 2; echo $inp2 >> $inputfile
sleep 2; echo $inp3 >> $inputfile
sleep 2; echo $inp4 >> $inputfile
tail -f $outputfile &
while true
do
read str
if [[ $str = "quit" || $str = "exit" ]]
then echo $str >> $inputfile exit
else echo $str >> $inputfile
fi
done
ps -ef | grep telnet | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9", $2}' | sh
ps -ef | grep tail | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9", $2}' | sh

bash脚本里有三种方式访问PostgreSQL数据库

但前提是要设置密码文件。当然对于有系统对应账户的数据库角色可以绕过密码登录环节,如

1

$sudo-upostgrespsql

1

2

$sudosu-postgres

$psql

但是对于没有系统账户对应的数据库角色,如要使用脚本登录则必须使用PostgreSQL密码文件

heredoc方式

heredoc是一种很常用的方式,在bash环境下还可以使用变量替换,用法示例

1

2

3

psql-U${role}-h${host}-dmydb

CREATESCHEMA${role};

EOF

也可以在循环语句中,向数据库批量插入数据,类似

1

2

3

4

5

6

for

do

psql-U${role}-h${host}-dmydb

INSERTINTO${table}VALUES(${value1},${value2},);

EOF

done

但这种方式,每次插入一条语句都重新登录一次数据库,效率肯定不咋地。

UPDATE(05/05/2014):既然可以使用变量替换,可以将所有插入语句组合到一个变量中,然后就可以在一次登录中批量插入数据了。

还可以用以下方式来获取查询结果

result=`psql-Urole-hlocalhost-dmydb

SELECTFROMprocts;

EOF`

echo${result}

使用psql命令行选项-f执行sql脚本文件

1

psql-U${role}-h${host}-dmydb-f${scriptname}

使用psql命令行选项-c执行SQL语句或psql命令

psql的-c选项可以指定SQL语句或者psql命令,但二者不能混合,除非使用管道。如果命令参数中有多条SQL语句,则它们在一个事务里执行,除非使用BEGIN/COMMIT明确的指定事务。这与交互式使用psql终端不同,如果不明确指定事务,则每条SQL属于一个单独的事务并自动提交。只有最后一条SQL语句的结果被返回。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12968358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存