1,用su,當我們需要以其他身份執行 command,或者shell指令碼。一般命令如下:
a. 切換使用者只執行一條命令的可以用: su - oracle -c your_command
b. 切換使用者執行乙個shell檔案可以用:su - oracle -s/bin/bash your_shell.sh
2,在某些軟體安裝過程中,要建立獨立使用者,然後以該使用者執行某些安裝操作,如gitolite安裝過程,建立git使用者並執行安裝
方法1:sudo -u user ...
sudo -u git -h <<-code
ls ~
cat test
#other cmds
code
後面的相繼命令在code之前的會是以切換後的使用者執行。
方法2:su
su命令
#!/bin/sh
echo ~/
su - test 《可以用sudo命令,它的作用是「excute a command as another user",預設為root使用者,可以用 -u 指定使用者名稱(假設要以user身份執行prog程式):sudo -u user prog就可以了。
另乙個命令su,是用另乙個身份執行shell,再用新的shell執行指定程式(su只能執行在shell終端裡面,雖然可以把命令寫成類似sudo的樣子[su -c user prog],但它的實現原理實際上還是先執行乙個shell,再通過shell執行其他程式)。
shell中通常將eof與 << 結合使用,表示後續的輸入作為子命令或子shell的輸入,直到遇到eof為止,再返回到主調shell。如下:
export nls_lang='simplified chinese_china.zhs16gbk'
sqlplus $userid @$out_file << eof
exit
eof當把這段**放在shell中時,會在shell指令碼執行完畢後自動退出sqlplus的命令提示符狀態。
《可以把eof替換成其他東西,
意思是把內容當作標準輸入傳給程式。這裡再簡要回顧一下< 《的用法。當s h e l l看到< 《的時候,它就會知道下乙個詞是乙個分界
符。在該分界符以後的內容都被當作輸入,直到s h e l l又看到該分界符位於單獨的一行)。這個
分界符可以是你所定義的任何字串。提示,最好在行首,不要加空格。
方法1.需要,自動登入mysql(root:root,passwd:123456),查詢test庫,test1表裡的user=aa的記錄.
#!/bin/sh
mysql -uroot -p123456 eof在shell中:
$0: 獲取當前指令碼的名稱
$#: 傳遞給指令碼的引數個數
$$: shell指令碼的程序號
$1, $2, $3...:指令碼程式的引數
方法2:用expect指令碼
expect用法:參考
開機自啟動可以將指令碼放到/etc/rc.d目錄下的rc.local中即可
其他使用者操作
使用者連線方式 mysql user 使用者名稱 password 密碼 資料庫名 mysql u 使用者名稱 p 資料庫名 mysql u 使用者名稱 p密碼 資料庫名 注 p和密碼中間無空格,u和使用者名稱之間也可以無空格 設定使用者資源限制 建立並設定 mysql create user 使用...
linux 其他使用者工具命令
其他使用者工具命令 userdel 刪除使用者,預設情況下userdel命令只會刪除 etc passwd檔案中的使用者資訊,而不會刪除系統中屬於該帳戶的任何檔案 加 f引數,無論此使用者是否正在登入,都乾掉,加 r引數刪除此使用者的home目錄和mail目錄,其他需要手動刪除。usermod命令 ...
linux 其他使用者密碼失效
雲機器或者說linux機器,其新建使用者密碼的有效期預設是180天,可以在 etc login.defs中檢視pass max days變數,預設是180天,並且執行chage m days user生效。llt安全集群安裝過程中,使用ant進行ssh執行命令,不光使用了securedn 使用者,還...